这个很奇怪,因为我没有任何错误消息。
我有一个非常基本的默认文件:
server {
#listen 80; ## listen for ipv4; this line is default and implied
#listen [::]:80 default ipv6only=on; ## listen for ipv6
root /var/www;
index index.html index.htm index.php;
# Make site accessible from http://localhost/
server_name localhost;
access_log /var/log/nginx/default.access_log;
error_log /var/log/nginx/default.error_log warn;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to index.html
try_files $uri $uri/ /index.html;
}
location /doc {
root /usr/share;
autoindex on;
allow 127.0.0.1;
deny all;
}
location /images {
root /usr/share;
autoindex off;
}
现在,在 shell 中,
ping localhost
很好。
但是,在任何浏览器中,它都会显示错误。例如,Chrome 显示:“糟糕!Google Chrome 找不到 localhost”。
另一方面,127.0.0.1 可以在浏览器中运行。
也许你知道我应该去哪里检查错误?/var/log 和其他文件中没有任何干净的内容......
答案1
首先,ping
与 NGINX 完全相关,您可以 ping 任何会响应 ping 请求的服务器,无论正在运行的服务是什么。
查看;
curl -I -v http://127.0.0.1/
- 查看网站是否可以通过本地地址访问
curl -I -v http://localhost/
- 将查看网站是否可以通过本地主机名访问
curl -I -v http://serverhostname/
- 将查看网站是否可以通过服务器主机名访问
nslookup localhost
- 确保“localhost”解析为 127.0.0.1
发布结果,如果您仍然遇到问题,我们可以为您提供更多指导
答案2
谢谢大家!事实上,nslookup 并不相关,谢谢@Mark!所以我试过了
sudo ping localhost
并得到了正确答案。
最后 chmod'ed/etc/hosts改为 644,现在一切正常。不过,不确定将 chmod 改为 644 是否最好。
另一件事,我不知道为什么最初的权限/etc/hosts是
-rw------- 1 root root 278 2011-12-02 22:52 /etc/hosts
但现在这已经不重要了。
答案3
我遇到了类似的问题。能够连接到 127.0.0.1 上的服务器,但不能使用 localhost。此配置帮我解决了这个问题(尤其是 server_name 部分)。
server {
listen *:80;
listen [::]:80;
server_name localhost;
...
}