2014-09-22 40 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; 
}