我第一次尝试设置 Nginx,按照教程操作后,我发现我得到了 Nginx 的欢迎页面。我删除了 /etc/nginx/nginx.conf 文件中的最后两个包含内容,并添加了以下代码。但是,无论我尝试移动多少次,我都只得到欢迎页面,而不是 htdocs 目录中的页面。
我确信我遗漏了一些简单的东西,但任何指点都会受到赞赏。
server {
listen 80;
server_name domain.com;
root /var/www/domain.com/htdocs;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
index index.html index.php;
}
}
答案1
从您的评论来看,您似乎正在运行两个 nginx 副本。您可以按照以下方法进行故障排除:
service nginx stop
ps auxwww|grep nginx # is it still running?
成功停止 nginx 后,请尝试使用本地curl
浏览器(而不是 Chrome 或 Safari)进行检查。这将绕过任何缓存/代理,让您更好地了解正在发生的事情。假设您的服务器的公共 IP 是 1.2.3.4。然后在运行 nginx 的同一台服务器上,您可以执行以下操作并检查输出:
curl -XGET http://1.2.3.4:80
curl -XGET http://1.2.3.4:80/test.html
现在您有一些数据并且您可以做一些推论。
案例 A
即使您停止了服务并手动终止了所有残留进程,您仍会获得 nginx 欢迎页面。您可能在错误的服务器上工作,或者 IP 未按预期方式路由。也许它连接到了 CloudFlare 等 CDN,即使服务器关闭,它也会显示最后检索到的页面。
尝试通过 localhost 访问该页面以确认:
curl -XGET http://127.0.0.1:80
案例 B
您必须手动终止 nginx,但一旦这样做,服务器就会停止响应。在这种情况下,您的 nginx 服务定义存在问题,或者以其他方式启动它(supervisord、手动 rc.local 等)。也可能使用了错误的设置文件。
找出启动 nginx 的原因并将其删除,然后使用包管理器通过正常启动脚本重新安装 nginx。
案例 C
停止服务确实有效,但停止后 curl 没有收到响应。在这种情况下,您使用 Chrome/Safari 进行的测试可能受到某些缓存或本地代理的影响。
再次启动服务并利用 curl 进行测试,直到配置文件正确。