【发布时间】:2015-06-16 23:47:13
【问题描述】:
配置 Nginx 以允许这样的 DOMAIN:PORT 请求的正确方法是什么:
http://example.com:8080/?a=xxx&b=yyy&c=zzz
over TCP or UDP
还有这样的 IP:PORT 请求:
http://1.2.3.4:8086/?a=xxx&b=yyy&c=zzz
over TCP or UDP
Nginx 还必须允许这样的域请求,这些请求已经在我的设置中正常工作:
http://example.com/home
http://example.com/work
over TCP
对于 IP:PORT 请求,我尝试了这个配置,但没有成功:
server {
listen 8080;
server_name 1.2.3.4:8080;
root /home/public_html/example.com;
location / {
client_max_body_size 10m;
client_body_buffer_size 20m;
proxy_connect_timeout 10s;
proxy_send_timeout 5s;
proxy_read_timeout 60s;
proxy_buffer_size 8k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_redirect off;
proxy_pass http://1.2.3.4:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
为史蒂夫·克莱恩添加
server {
# HTTP IP:PORT ...
# http://example.com:8080/app/?ip=1.2.3.4&pt=55555&do=things
# there's a listener on port 55555
#
listen 8080;
server_name example.com www.example.com;
root /home/public_html/example.com;
location /app {
client_max_body_size 128k;
client_body_buffer_size 256k;
proxy_connect_timeout 10s;
proxy_send_timeout 5s;
proxy_read_timeout 60s;
proxy_buffer_size 8k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_ignore_client_abort on;
proxy_pass http://$arg_ip:$arg_pt;
proxy_redirect off;
}
}
【问题讨论】:
-
您使用的操作系统是什么?请注意,如果您对此进行配置,则域不会是全局的:只有您的系统会将
foo.bar映射到正确的 IP 地址。 -
CentOS 6.6。而且,您能否通过一些示例进一步解释您所说的“域不会是全球性的”是什么意思?
-
好吧,如果您输入
example.com,它将被重定向到1.2.3.4,但其他人不会这样。唯一的“全局映射器”是 DNS 服务器。 -
我希望 Nginx 以我的 OP 中概述的方式映射来自 Internet 的请求。即
http://1.2.3.4:8080==>1.2.3.4:8080和http://example.com==>1.2.3.4:80 -
对不起,我的意思是上面显示的Nginx服务器部分,监听8080端口,而不是80端口,所以我把它改成了上面的8080端口。未显示监听端口 80 的服务器部分,但它是 Nginx 的标准端口 80 监听器。
标签: nginx