2013-08-01 41 views
0

我最近買了一塊linode 1GB的計劃。安裝了Apache,讓我的網站運行起來。 但是我在服務器上安裝了gitlab並將其映射到子域。由於安裝指南建議使用Nginx作爲服務器,所以我安裝了它並運行在80端口上。目前我的apache沒有運行,因爲存在端口衝突。 但我通過編輯/etc/apache2/ports.conf文件並指示apache服務於不同的端口來修復它。 現在,當我訪問指向端口(8000)的主域並且使用apache不顯示時。 gitlab安裝在http://gitlab.myserver.com,我能夠訪問它,但如果我嘗試導航到http://myserver.com,我得到的http://gitlab.myserver.comApache上的主域和Nginx上的一些子域

內容我的Nginx下服務gitlab配置如下:。

# GITLAB 
# Maintainer: @randx 
# App Version: 5.0 

upstream gitlab { 
server unix:/home/git/gitlab/tmp/sockets/gitlab.socket; 
} 

server { 
    listen my_server_ip default_server; # e.g., listen 192.168.1.1:80; In most cases *:80 is a good idea 
    server_name gitlab.myserver.com;   # e.g., server_name source.example.com; 
    server_tokens off;  # don't show the version number, a security best practice 
    root /home/git/gitlab/public; 

# individual nginx logs for this gitlab vhost 
access_log /var/log/nginx/gitlab_access.log; 
error_log /var/log/nginx/gitlab_error.log; 

location/{ 
    # serve static files from defined root folder;. 
    # @gitlab is a named location for the upstream fallback, see below 
    try_files $uri $uri/index.html $uri.html @gitlab; 
} 

# if a file, which is not found in the root folder is requested, 
# then the proxy pass the request to the upsteam (gitlab unicorn) 
location @gitlab { 
    proxy_read_timeout 300; # https://github.com/gitlabhq/gitlabhq/issues/694 
    proxy_connect_timeout 800; # https://github.com/gitlabhq/gitlabhq/issues/694 
    proxy_redirect  off; 

    proxy_set_header X-Forwarded-Proto $scheme; 
    proxy_set_header Host    $http_host; 
    proxy_set_header X-Real-IP   $remote_addr; 

    proxy_pass http://gitlab; 
} 
} 

我的Apache配置爲myserver.com如下:

# domain: myserver.com 
# public: /home/me/public/myserver.com/ 

<VirtualHost *:8000> 
# Admin email, Server Name (domain name), and any aliases 
ServerAdmin [email protected] 
ServerName www.myserver.com 
ServerAlias myserver.com 

# Index file and Document Root (where the public files are located) 
DirectoryIndex index.html index.php 
DocumentRoot /home/me/public/myserver.com/public 

# Log file locations 
LogLevel warn 
ErrorLog /home/me/public/myserver.com/log/error.log 
CustomLog /home/me/public/myserver.com/log/access.log combined 
</VirtualHost> 

我要去哪裏錯了?

回答

0

我解決了這個問題。這個問題是在我gitlab配置如下一行:

server { 
    listen my_ip default_server; 
    server_name gitlab.myserver.com;   # e.g., server_name source.example.com; 
    server_tokens off;  # don't show the version number, a security best practice 
    root /home/git/gitlab/public; 
    ...... 
} 

我改變了這一爲以下內容:

server { 
     listen 80; 
     server_name gitlab.myserver.com;   # e.g., server_name source.example.com; 
     server_tokens off;  # don't show the version number, a security best practice 
     root /home/git/gitlab/public; 
     ...... 
    } 

我用proxy_pass

其次在服務上通過nginx的阿帕奇網站上的說明

非常感謝.. 乾杯....

+0

Hi,do你有任何想法如何在Apache上解決這個問題? –

1

一個好的解決方案是繼續在端口80上運行Nginx,同時向Nginx添加代理指令以充當在Apache上運行的特定域的代理。一個Nginx配置的例子:

server { 
    server_name www.myserver.com; 
    server_name myserver.com; 

    location/{ 
     proxy_pass http://127.0.0.1:8000; 
    } 
} 

我自己做這個,它的效果很好。

+0

我有一個名爲文件/ etc/nginx的/網站可用/ gitlab 那麼你的意思是說我需要創建一個文件/etc/nginx/sites-available/myserver.com並在其中包含上面的代碼? – swaroopsm

+0

是的,我認爲這應該工作。 –

+0

不起作用。每當我導航到myserver.com時,它都會顯示gitlab的內容。例如,gitlab的默認頁面是登錄頁面。因此,當我點擊http://myserver.com時,它會將我帶到http://myserver.com/users/sign_in – swaroopsm