OSX 10.11我安装了最新的nginx 1.9.9(从源代码和编译)配置文件/usr/local/conf/nginx.conf语法没问题
当监听端口8080没有问题我可以请求http://example.local:8080
server {
listen 8080;
server_name example.local;
root HTML;
然后运行:
sudo lsof -i -P | grep -i "80"
nginx 8254 root 10u IPv4 0x643a3abbad7bf485 0t0 TCP *:8080 (LISTEN)
nginx 8392 yves 10u IPv4 0x643a3abbad7bf485 0t0 TCP *:8080 (LISTEN)
但是当我将端口更改为80时,我无法访问http://example.local:80
server {
listen 80;
server_name example.local;
root html;
sudo nginx -s reload
nginx 8254 root 10u IPv4 0x643a3abbad7bf485 0t0 TCP *:8080 (LISTEN)
nginx 8254 root 18u IPv4 0x643a3abbadbb9485 0t0 TCP *:80 (LISTEN)
nginx 8430 yves 10u IPv4 0x643a3abbad7bf485 0t0 TCP *:8080 (LISTEN)
nginx 8430 yves 18u IPv4 0x643a3abbadbb9485 0t0 TCP *:80 (LISTEN)
Safari无法打开页面,但我仍然可以请求http://example.local:8080
很奇怪.... Nginx正在听80...我能做什么?
3条答案
按热度按时间2ekbmq321#
您可以在1024以下的端口上运行服务,如sudo。
在旅途中奔跑:
从系统开始:
请注意,您必须在配置文件中设置服务器以侦听80,并确保没有其他进程在端口80上运行。
wooyq4lh2#
检查firwall或iptables。
端口80可能被阻止。请尝试停止防火墙或iptables服务。
如果它被阻塞,则添加允许端口80的条目
8nuwlpux3#
在终端中运行top,F3搜索NGINX进程,在top列表中找到正在运行的NGINX进程,复制PID号,粘贴到
/usr/local/nginx/logs/nginx.pid
中,只需要在nginx.pid
文件的第一行粘贴PID号即可。即使已经停止之前停止nginxsudo nginx -s stop
,然后再次启动sudo nginx
。Nginx无法停止进程,因为它不知道PID号,并且正在运行的示例绑定到相对端口,阻止第二个示例绑定到同一端口。
这是在MacOS Ventura上,一个全新的安装。它发生的原因是我在运行时更改了NGINX配置文件中PID文件的位置,因此它无法自行停止。