【发布时间】:2013-05-16 04:57:30
【问题描述】:
编辑:事实证明我下面的设置确实有效。以前,我会重定向到端口 36000,但这是由于我的后端应用程序上的一些配置设置导致的。
我不完全确定,但我相信我可能想要使用 nginx 设置反向代理。
我有一个应用程序在端口 36000 的服务器上运行。默认情况下,端口 36000 不可公开访问,我的目的是让 nginx 监听公共 url,将对该 url 的任何请求定向到在端口 36000 上运行的应用程序. 在整个过程中,用户不应该知道他/她的请求被发送到运行在我服务器端口 36000 上的应用程序。
更具体地说,假设我的网址是http://domain.somehost.com/
在访问http://domain.somehost.com/ 时,nginx 应该接收请求并将其重定向到已经在服务器上运行的端口 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 reverse-proxy