问题描述
我刚刚安装了Ubuntu 12.04服务器和nginx 1.2.7,从sites-enabled中删除了default
,并将自己的文件添加到sites-available
中,并在sites-enabled
中添加了符号链接。然后重启nginx。
问题:但是,转到URL不会加载站点。 netstat -nlp | grep nginx
和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;
}
}
最佳回答
我遇到了同样的问题,解决方法是我没有正确地对我的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
次佳回答
如果您的日志未对此问题进行提示,则您可能没有包括sites-enabled目录。判断站点正在加载的一种简单方法是,将服务器块中的错误/访问日志路径设置为唯一路径,重新加载nginx,并检查是否创建了文件。
确保/etc/nginx/nginx.conf中的http上下文中存在以下include指令。
http {
...
include /etc/nginx/sites-enabled/*;
}
第三种回答
我遇到了同样的问题,通过HTTP连接时出现Failed to load resource: net::ERR_CONNECTION_REFUSED
错误,但通过HTTPS正常。跑netstat -tulpn
并看到nginx没有绑定到IPv4的端口80。完成此处描述的所有内容。原来是很愚蠢的东西:
确保带有default_server
的sites-available
文件实际上已启用。
希望这可以节省一些其他可怜的白痴。
第四种回答
我发现使用以下步骤调试nginx很有帮助:
1 …确保nginx正在运行。
ps aux | grep nginx
2 …检查已绑定到该端口的进程。
lsof -n -i:80
3 …确保已重新加载nginx。
sudo nginx -t
sudo nginx -s reload
On Mac,
brew services restart nginx
is not sufficient to reload nginx.
4 …尝试手动创建简单的响应,以确保您的位置路径没有弄乱。当在使用proxy_pass
将请求转发到其他正在运行的应用程序时出现问题时,这特别有用。
location / {
add_header Content-Type text/html;
return 200 'Here I am!';
}
第五种回答
您可能两次将nginx绑定到端口80。那是您的完整配置文件吗?您是否还有其他声明在监听80端口?