nginx不听80端口
我刚刚安装了Ubuntu 12.04服务器和nginx 1.2.7,从启用了网站的站点中删除了default
,并将我自己的文件添加到站点 – 启用sites-available
链接和符号链接。 然后重新启动nginx。
问题:然而去URL不会加载网站。 netstat -nlp | grep nginx
netstat -nlp | grep nginx
和netstat -nlp | grep 80
netstat -nlp | grep 80
都返回没有结果! lsof -i :80
也不返回任何内容。 从另一台服务器dig
返回正确的IP地址,所以它不应该是一个DNS问题。 我能够连接到我已经停止其服务的Apache。 nginx日志也没有显示。
我应该如何解决这个问题?
/etc/nginx/site-available/mysite.com
server { listen 80; server_name www.mysite.com mysite.com *.mysite.com; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; root /var/www/mysite/public; index index.php index.html; location / { try_files $uri $uri/ /index.php?$args ; } location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_read_timeout 300; } }
我有这个相同的问题,解决scheme是我没有symlink我的siteconf文件正确。 尝试运行vim /etc/nginx/sites-enabled/mysite.com
– 你可以得到它吗? 我得到了“权限被拒绝”。
如果没有运行:
rm /etc/nginx/sites-enabled/mysite.com ln -s /etc/nginx/sites-available/mysite.com /etc/nginx/sites-enabled/mysite.com
如果您的日志在这个问题上保持沉默,您可能不包括启用了站点的目录。 一个简单的方法来告诉站点正在被加载的是设置您的服务器块内的错误/访问日志path到一个唯一的path,重新加载nginx,并检查是否创build文件。
确保/etc/nginx/nginx.conf中的http上下文中存在以下include指令。
http { ... include /etc/nginx/sites-enabled/*; }
你可能绑定nginx到端口80两次。 这是你的完整的configuration文件? 你有没有听到80端口的另一个声明?
我遇到了同样的问题,当通过HTTP连接时,我得到了一个Failed to load resource: net::ERR_CONNECTION_REFUSED
错误,但罚款通过HTTPS。 冉netstat -tulpn
,看到nginx不绑定到端口80的IPv4。 完成这里描述的一切。 原来是非常愚蠢的东西:
确保使用default_server
的sites-available
文件实际上已启用。
希望这可以在一段时间内拯救一些其他可怜的白痴。
你有没有检查你的nginx二进制文件是否真的存在? 请检查是否
#whereis nginx
输出二进制path并使用/etc/init.d/nginx中的init脚本检查此path。 例如
DAEMON=/usr/sbin/nginx
(在我的初始化脚本“test -x $ DAEMON || exit 0”被调用,在任何情况下,这个脚本什么也没有返回 – 我的二进制文件完全丢失)
一个分号;
在/etc/nginx/nginx.conf
缺lessinclude /etc/nginx/servers-enabled/*;
之前的行include /etc/nginx/servers-enabled/*;
可以绕过这个intruction和nginx -t
检查将成功无论如何。
因此,只需检查/etc/nginx/nginx.conf
中的所有指令是否以/etc/nginx/nginx.conf
结尾;
。