我有 1 个主 IP 和 1 个辅助 IP。辅助 IP 是为一个特殊的 Go 网络服务器准备的,该服务器只监听这个 IP,原因与本问题无关。
不幸的是,它不起作用,因为 Nginx 决定监听全部IP,所以我的自定义网络服务器无法绑定到该 IP 和端口。我不能使用其他端口,必须使用这个端口……这就是为什么我购买了第二个 IP 地址,仅用于此目的。
如何让 Nginx 只监听主 IP 而不是所有 IP?
我在 Ubuntu 18.04 上。
答案1
以下是仅适用于 http 的示例配置。Https 并没有什么不同:
server {
#This is the important listen block to specify:
listen <ip-address>:80;
server_name example.com;
root /var/www/html;
index index.html index.php;
location / {
try_files $uri $uri.html $uri/ /index.html;
}
error_page 404 /404.html;
}
如果您的配置中有这个,您可以将其删除以禁用 ipv6(如果您愿意的话):
listen [::]:80 default_server
然后如果你用 netstat 测试它:
test@computer:/etc/nginx/conf.d# netstat -na | grep -i "Listen" | grep ":80"
tcp 0 0 <ip-address>:80 0.0.0.0:* LISTEN