nginx没有收听端口80

Nyx*_*nyx 63 linux ubuntu nginx ubuntu-12.04

我刚刚安装了一个Ubuntu 12.04服务器和nginx 1.2.7,default从已启用的网站中删除并将我自己的文件添加到sites-available和symlink中sites-enabled.然后重启nginx.

问题:但是,访问URL不会加载网站.netstat -nlp | grep nginx并且netstat -nlp | grep 80都没有返回结果!lsof -i :80也没有回报.dig来自另一台服务器的A 返回正确的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;
    }

}
Run Code Online (Sandbox Code Playgroud)

小智 129

我有同样的问题,解决方案是我没有正确地符合我的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
Run Code Online (Sandbox Code Playgroud)

  • 这为我修好了!显然当你没有在第二个参数中输入完整的文件名,即`ln -s /etc/nginx/sites-available/mysite.com/etc/nginx/sites-enabled /`时,它会产生一些假的符号链接,nginx扼杀了.奇怪但真实. (45认同)
  • 这对我来说也是一个解决方案。我已经绕了几个小时试图修复 nginx 安装。太棒了,先生! (2认同)

Pat*_*ick 26

如果您的日志对此问题保持沉默,则可能不包括启用站点的目录.告诉站点正在加载的一种简单方法是将服务器块中的错误/访问日志路径设置为唯一路径,重新加载nginx,并检查文件是否已创建.

确保/etc/nginx/nginx.conf中的http上下文中存在以下include指令.

http {
  ...
  include /etc/nginx/sites-enabled/*;
}
Run Code Online (Sandbox Code Playgroud)

  • 想念这么简单的事情.谢谢你提到它! (2认同)

day*_*oli 6

我遇到了同样的问题,我Failed to load resource: net::ERR_CONNECTION_REFUSED在通过HTTP连接时出错,但在HTTPS上很好.然netstat -tulpn,看到nginx的不绑定到端口80用于IPv4的.做完这里描述的一切.原来是非常愚蠢的事情:

确保实际启用了sites-available带有该文件的文件default_server.

希望这能节省一些其他可怜的白痴.


And*_*res 5

您可能将 nginx 绑定到端口 80 两次。那是你的完整配置文件吗?不是有另外一条语句监听80端口吗?


spe*_*.sm 5

我发现使用以下步骤调试nginx很有帮助:

1 ...确保nginx正在运行。

ps aux | grep nginx
Run Code Online (Sandbox Code Playgroud)

2 ...检查已绑定到该端口的进程。

lsof -n -i:80
Run Code Online (Sandbox Code Playgroud)

3 ...确保已重新加载nginx。

sudo nginx -t
sudo nginx -s reload
Run Code Online (Sandbox Code Playgroud)

在Mac上,brew services restart nginx足够的重装nginx的。

4 ...尝试手动创建简单的响应,以确保您的位置路径没有弄乱。当proxy_pass在将请求转发到其他正在运行的应用程序时出现问题时,这特别有用。

location / {
    add_header Content-Type text/html;
    return 200 'Here I am!';
}
Run Code Online (Sandbox Code Playgroud)