Nginx只显示欢迎页面

时间:2013-01-22 14:32:48

标签: nginx

我正在尝试设置一个简单的虚拟主机,只提供静态文件。麻烦的是,指导浏览器(在这种情况下)jorum.dev显示默认的nginx欢迎页面,而不是jorum.dev/index.html

Nginx是在Mac OS X Mountain Lion上使用Homebrew安装的。

主机

127.0.0.1       jorum.dev

jorum.dev

server {
    listen          80;
    server_name     jorum.dev;

    location / {
        root        ~/Sites/jorum;
        index       index.html index.htm;
    }
}

nginx.conf

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    gzip            on;
    gzip_disable    "msie6";
    gzip_min_length 1100;
    gzip_vary       on;
    gzip_proxied    any;
    gzip_buffers    16 8k;
    gzip_types      text/plain text/css application/json application/x-javascript text/xml application/xml application/rss+xml text/javascript image/svg+xml application/x-font-ttf font/opentype application/vnd.ms-fontobject;

    server_tokens off;

    client_max_body_size    4096k;
    client_header_timeout   10;
    client_body_timeout     10;
    keepalive_timeout       10 10;
    send_timeout            10;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

8 个答案:

答案 0 :(得分:17)

缺少包含在 nginx.conf

include /usr/local/etc/nginx/sites-enabled/*;

http://wiki.nginx.org/CoreModule#include

答案 1 :(得分:16)

ubuntu nginx软件包附带了一个default个站点,可以接管默认的主机调度。只需删除默认链接,它就应该加载您的网站。

答案 2 :(得分:6)

对于其他人来到此主题并且已经尝试@ freestyler的答案,但仍然获得默认的nginx屏幕,请尝试将位于title : { text : 'simple chart' }, series: [{ data: [29.9, 71.5, 106.4, 129], }], chart: { type: 'pie' } 的{​​{1}}文件重命名为{ {1}}。我建议删除该文件,因为它可以帮助您解释下一个default文件中的操作。

答案 3 :(得分:1)

/ etc / nginx / sites-available / / etc / nginx / sites-enabled / 中删除 default.config 并重新启动nginx

rm /etc/nginx/sites-available/default
rm /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx

答案 4 :(得分:0)

对我来说,是我忘记了将该站点绑定到IPv6,而我的PC处于IPv6连接上。

在我只有listen [::]:80;之前,我只是将listen 80;添加到服务器对象。

如果使用IPv6建立连接,Nginx也会显示该站点。

答案 5 :(得分:0)

将以下内容添加到位置块:

index index.html index.htm

例如:

location / {
    …
    index  index.html index.htm;
 }

答案 6 :(得分:0)

对我来说,问题是我最初在一个子域中拥有该网站,并且在重新生成certbot证书以使其也可以在新域中工作时,我没有在服务器部分添加新的域名重定向,为我添加了以下固定内容:

server {
    if ($host = domain_1.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    if ($host = domain_2.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    server_name domain_1.com domain_2.com;
    listen 80;
    return 404; # managed by Certbot
}

答案 7 :(得分:0)

也许无关,但希望能帮助人们解决这个问题......

有时人们会忘记在 /etc/nginx/sites-enabled 中添加指向 /etc/nginx/sites-available 中站点配置的符号链接。

类似:

ln -s /etc/nginx/sites-availabe/mysite.com /etc/nginx/sites-enabled/mysite.com