我的 nginx.conf 中有这个
server {
listen 80;
server_name localhost;
root /opt/myapp/public;
passenger_enabled on;
}
问题是我可以从运行 Web 应用的计算机访问该应用,但无法从网络中的任何其他计算机访问。有什么想法吗?
在 CentOS 5.6 上运行
答案1
'server_name localhost' 使 nginx 要求 Host 标头为 'localhost',即要求客户端尝试使用'http://本地主机' 因此只能在本地主机本身上工作 :-)。
不要输入 server_name,或者使用其他主机可以识别的名称(fqdn、IP 等)。
http://wiki.nginx.org/VirtualHostExample
答案2
它应该监听所有具有该配置的接口,您可以使用以下命令检查它是否确实监听所有接口
netstat -aln | grep 80
结果应该是这样的(取自我的一个服务器)
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN
如果匹配,您应该检查服务器上是否启用了防火墙,如果是,则需要打开服务器上的 TCP 端口 80。