Nginx反向代理多个位置未加载

时间:2019-08-29 12:13:05

标签: nginx sonarqube nginx-reverse-proxy

在我的CentOS-7.6上,我有两个运行在不同端口上的SonarQube Web应用程序。

$SONARQUBE_HOME/conf/sonar.properties file updated like below.

For Application:1
sonar.web.context=/application 
sonar.web.port=9090

For Application:2 
sonar.web.context=/application-old
sonar.web.port=9089

对于反向代理,我已经安装了nginx version: nginx/1.12.2

要在具有单个IP地址的80端口上运行两个应用程序,我的/etc/nginx/conf.d/application.conf文件应具有以下代码。

    server {
        listen 80;
        server_name 65.66.67.68;

        location /application {
            proxy_pass http://65.66.67.68:9090;
        }

        location /application-old {
            proxy_pass http://65.66.67.68:9089;
        }
}

这里的问题是通过80端口访问以下端口。

1) http://65.66.67.68/application 
2) http://65.66.67.68/application-old

port – 9090上运行的应用程序在IE,Chrome和firefox浏览器上显示page loading。屏幕截图如下。

enter image description here

与端口-http://65.66.67.68:9090/application一起运行。

另一个位置应用程序(http://65.66.67.68/application-old)正在加载并运行。

我的应用程序在下面两个不同的位置运行。

1) http://65.66.67.68:9090/application 
2) http://65.66.67.68:9089/application-old

那么如何在80端口和单个IP地址上运行两个应用程序。

1 个答案:

答案 0 :(得分:0)

您应该使用proxy_header定义反向代理,并在每次更改配置文件时应用它们。

location /application/ {
    proxy_pass http://65.66.67.68:9090;
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  Host  $http_host;
    #proxy_connect_timeout 3600;
    #proxy_send_timeout 3600;
    #proxy_read_timeout 3600;
    #send_timeout 3600;
}

location /application-old/ {
    proxy_pass http://65.66.67.68:9089;
    proxy_set_header  X-Real-IP  $remote_addr;
    proxy_set_header  Host  $http_host;
    #proxy_connect_timeout 3600;
    #proxy_send_timeout 3600;
    #proxy_read_timeout 3600;
    #send_timeout 3600;
}

然后:

$ nginx -t (test if syntax is OK)
$ nginx -s reload (apply new changes)

现在,从Web浏览器访问您的应用程序

http://65.66.67.68/aplication
http://65.66.67.68/aplication-old

logs目录中,您可以检查任何错误/信息消息。

更新:确保已正确加载nginx。有时,它会出现故障,并且无法正确更新。重新启动/杀死Nginx,然后重新启动