在我的nginx conf文件中,我有:
listen 80; server_name $hostname;
但是,如果我使用netstat,我会看到它正在监听0.0.0.0:80我想做的是nginx监听$hostname:80,有没有一种方法可以配置它来做到这一点?我尝试了不同的设置,到目前为止没有成功。感谢你的帮助。
lokaqttq1#
server_namedocs指令用于标识虚拟主机,它们不用于设置绑定。netstat告诉你nginx监听0.0.0.0:80,这意味着它将接受来自任何IP的连接。如果你想改变nginx绑定的IP,你必须改变listen docs规则。所以,如果你想将nginx设置为绑定到localhost,你可以将其更改为:
server_name
netstat
0.0.0.0:80
listen
localhost
listen 127.0.0.1:80;
通过这种方式,不是来自localhost的请求将被丢弃(它们甚至不会命中nginx)。
sauutmhj2#
如果有人不想为localhost或任何其他 internal IP(这是您唯一可以通过更改listen指令的地址来做的事情)这样做,您可以使用allow/deny规则。
allow
deny
allow some.public.ip.here; deny all;
2条答案
按热度按时间lokaqttq1#
server_name
docs指令用于标识虚拟主机,它们不用于设置绑定。netstat
告诉你nginx监听0.0.0.0:80
,这意味着它将接受来自任何IP的连接。如果你想改变nginx绑定的IP,你必须改变
listen
docs规则。所以,如果你想将nginx设置为绑定到
localhost
,你可以将其更改为:通过这种方式,不是来自localhost的请求将被丢弃(它们甚至不会命中nginx)。
sauutmhj2#
如果有人不想为localhost或任何其他 internal IP(这是您唯一可以通过更改
listen
指令的地址来做的事情)这样做,您可以使用allow
/deny
规则。