Nginx反向代理配置

vvppvyoh  于 2022-11-22  发布在  Nginx
关注(0)|答案(4)|浏览(402)

我在使用nginx进行简单配置时遇到了问题。我有一个服务器托管了docker容器,所以nginx是在一个容器中。所以我们将url命名为foo.com。我希望url foo.com/service1实际上只是foo.com在另一个端口上转到www.example.com。因此实际上是将foo.com:4321foo.com/service2拉入foo.com:5432,以此类推。下面是我遇到问题的配置。

http {
    server {
        listen 0.0.0.0:80;

        location /service1/ {
            proxy_pass http://192.168.0.2:4321/;
        }

        location /service2/ {
            proxy_pass http://192.168.0.2:5432/;
        }

    }
}

所以服务和nginx的地址是192.168.0.2。什么是更好的方式来做到这一点?提前谢谢你!
作为一个侧记,这是运行在一个码头集装箱。谢谢!

rqcrx0a6

rqcrx0a61#

我认为你应该检查你的foo.com是否指向正确的ip地址或不首先通过删除反向代理配置。

http {
    server {
        listen 80;
        server_name foo.com;

        location / {
        }
    }
}

然后,如果你的ip地址已经有一个服务运行在端口80上,你应该为每个服务指定server_name,就像我的例子一样。Nginx只能通过server_name来区分哪个服务响应哪个域。

  • 我猜您忘记了server_name选项。
y4ekin9u

y4ekin9u2#

http {
    server {
        listen 80;
        server_name foo.com;

        location /service1/ {
            proxy_pass http://192.168.0.2:4321/;
        }

        location /service2/ {
            proxy_pass http://192.168.0.2:5432/;
        }

    }
}
z9smfwbn

z9smfwbn3#

我猜你的问题与Nginx本身无关,而是与Docker网络有关。你提供的信息不足以得出详细的结论,但这里有几点建议:
1.在运行nginx container的同一主机上运行一个简单的Docker容器,并在该容器内尝试curl(我看到您的回答是,您可以从运行Nginx的服务器调用curl,但实际上并不相同)
1.例如,如果运行nginx容器的服务器是OSX或Windows,则它可以使用具有其自己的网络堆栈、IP地址、路由等的中间Linux虚拟机。

ercv8c1e

ercv8c1e4#

这是我发送到内部glassfish的配置文件。请查看如何使用proxy_redirect关闭& proxy_set_header X-NginX-Proxy true;

#Glassfish
    location /MyService/   {

            index index.html;

            add_header Access-Control-Allow-Origin $http_origin;

            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-NginX-Proxy true;
            proxy_ssl_session_reuse off;
            proxy_set_header Host $http_host;
            proxy_redirect off;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://127.0.0.1:18000/MyService/;

    }

相关问题