有一个nginx服务器同时监听80和443个端口。我想像往常一样处理所有的http请求,并将所有非http请求转发到另一个端口(例如,1234)。
我的问题非常类似于堆栈溢出中已经回答的一个问题:是否可以将非连接请求转发到nginx中的其他端口?。也许,我误解了多数人投票的答案,但当我在nginx.conf中添加这样的内容时:
stream {
upstream backend {
server example.com:1234;
}
server {
listen 80;
proxy_pass backend;
}
}
我得到了(预期的) bind() to 0.0.0.0:80 failed (98: Address already in use)
错误。
发布于 2017-06-26 02:58:40
nginx只能同时向一个端口提供一种服务。
因此,此配置将工作:
http {
server {
listen 80;
server_name example.com;
...
}
}
stream {
server {
listen 81;
proxy_pass backend;
}
upstream backend {
server 127.0.0.1:12345;
}
}
您不能在stream
和http
块上使用相同的端口,因为nginx无法区分流量类型。
https://serverfault.com/questions/857766
复制相似问题