nginx反向代理到在本地主机上运行的后端

编辑 :事实certificate,我的设置下面实际工作。 以前,我得到了redirect到端口36000,但这是由于我的后端应用程序导致它的一些configuration设置。

我不完全确定,但我相信我可能想要使用nginx设置一个反向代理

我有一个应用程序运行在端口36000的服务器上。默认情况下,端口36000是不公开的,我的意图是让nginx监听一个公共URL,将任何请求的URL指向端口36000上运行的应用程序。整个过程中,用户不应该知道他/她的请求被发送到我的服务器端口36000上运行的应用程序。

更具体地说,假设我的url是http://domain.somehost.com/

在访问http://domain.somehost.com/时 ,nginx应该提取请求并将其redirect到端口36000上已经在服务器上运行的应用程序,应用程序会执行一些处理,并将响应传递回去。 端口36000不公开访问,不应该显示为任何url的一部分。

我试过一个设置,看起来像:

server { listen 80; server_name domain.somehost.com location / { proxy_pass http://127.0.0.1:36000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 

并将其包含在我的主要nginx.conf中

但是,这需要我将36000端口公开,我试图避免这种情况。 端口36000也显示为Web浏览器中转发的url的一部分。

有什么办法可以做同样的事情,但是没有使36000端口可以访问?

谢谢。

编辑:下面的配置是从一个工作的nginx配置,主机名和端口改变。

您需要能够将侦听端口36000的服务器设置为upstream服务器(请参阅http://nginx.org/en/docs/http/ngx_http_upstream_module.html )。

 server { listen 80; server_name domain.somehost.com; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_set_header X-NginX-Proxy true; proxy_pass http://localhost:36000/; proxy_redirect http://localhost:36000/ https://$server_name/; } }