2014-09-22 60 views
1

我嘗試創建一個持續集成服務器,我有很多工具來安裝,但我想爲它使用一個DN。 所以我試圖在我的DN的子位置(例如:my-domain.org/sonar,my-domain.org/packages等)下託管每個工具。Nginx子位置下的SonarQube

作爲託管新手,我正面臨一個非常無聊的問題,使用SonarQube訪問。 該工具安裝的,我可以用my-domain.org:9000

訪問它可是我的Nginx的配置似乎並不方便,已預期SonarQube頁給了我一個SonarQube 404

這裏是我的Nginx虛擬主機配置:

server { 
    listen *:80; 
    server_name my-domain.org; 

    #some other tools configuration 

    location /sonarqube { 
    proxy_pass    http://localhost:9000; 
    proxy_redirect   http://localhost:9000 /sonarqube; 
    } 
} 

任何幫助將不勝感激。謝謝

+0

我們使用nemo.sonarqube.org類似的反向代理配置,所以這應該工作。你能否在SonarQube服務器返回的錯誤信息附加到這個線程? – 2014-09-22 19:57:44

+0

當然: 您正在查找的頁面不存在。 您可能錯誤地址或頁面可能已移動。 回到主頁 並鏈接到:http://www.my-domain.org – 2014-09-23 07:02:11

+0

這也是訪問日誌的摘錄: 127.0.0.1 - - [23/09/2014:10 :19:20 +0200]「GET/sonarqube HTTP/1.0」404 1039「 - 」「Mozilla/5.0(Windows NT 6.1; WOW64)AppleWebKit/537.36(KHTML,如Gecko)Chrome/37.0.2062.120 Safari/537.36」 – 2014-09-23 08:20:40

回答

4

我今天面對完全相同的問題,並用下面的配置解決它。這個問題雖然,這取決於你的sonarqube的配置,這可能會略有不同,但在這裏我們去:

sonar.properties

sonar.web.context=/sonarqube 
sonar.web.port=9000 

網站可用/ default.conf

location /sonarqube { 
    proxy_pass http://localhost:9000; 

    # set header 
    proxy_set_header  Host $host; 
    proxy_set_header  X-Real-IP $remote_addr; 
    proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_connect_timeout 150; 
    proxy_send_timeout  100; 
    proxy_read_timeout  100; 
    proxy_buffers   4 32k; 
    client_max_body_size 8m; 
    client_body_buffer_size 128k; 

    proxy_redirect http://localhost:9000 http://$yourlan$/sonarqube; 
} 

Nginx的服務器應偵聽端口80,並且server_name應該是$yourlan$

0

更改sonar.properties context.path:

sonar.web.context=/sonarqube 

而且只需使用nginx的CONF:

location /sonarqube { 
    proxy_pass http://localhost:9000/sonarqube; 
}