【问题标题】:How to make Nginx virtualhosts work? (currently gives 403 Forbidden error)如何使 Nginx 虚拟主机工作? (目前给出 403 Forbidden 错误)
【发布时间】:2011-05-14 07:59:06
【问题描述】:

我想在我的 Ubuntu 10.04 32 位 Linode VPS 上运行 nginx。

sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www

sudo add-apt-repository ppa:nginx/development
sudo apt-get update
sudo apt-get install nginx

制作一个 nginx 虚拟主机:

mkdir -p /var/www/example.com/{public,logs}
sudo nano /etc/nginx/sites-available/example.com

并写了以下内容

server {
     listen   80;
     server_name  www.example.com;
     rewrite ^/(.*) http://example.com/$1 permanent;
}

server {
     listen   80;
     server_name example.com;

     access_log /var/www/example.com/logs/access.log;
     error_log /var/www/example.com/logs/error.log;

     location / {
          root   /var/www/example.com/public/;
          index  index.html;
     }
}

然后我启用了虚拟主机 example.com

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/example.com
sudo /etc/init.d/nginx restart

我将 index.html 放入 /var/www/example.com/public 并从我的浏览器输入 www.example.com URL。然后我得到了关注

403 Forbidden
nginx/0.8.53

tail /var/log/nginx/error.log 出现以下错误

*38 directory index of "/var/www/" is forbidden, client: 88.224.1.128, server: localhost, request: "GET / HTTP/1.1", host: www.example.com

我重做

sudo chown -R www-data:www-data /var/www
sudo chmod -R 775 /var/www

但它给出了同样的错误。

和猫 /etc/nginx/nginx.cnf

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}
http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    tcp_nodelay        on;

    gzip  on;
    # As per: http://wiki.nginx.org/NginxHttpGzipModule#gzip_disable starting
    # with 0.7.63
    gzip_disable     "msie6";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

如果我将 index.html 放在 /var/www/ 中,那么我可以看到 html 文件,但任何将其放在 /var/www/example.com/public 下的尝试都会失败。我查看了文件和文件夹权限,它们都属于 www-data 和可读(775)

我可以做些什么来让 nginx 工作?谢谢

【问题讨论】:

    标签: nginx virtualhost


    【解决方案1】:

    403 是因为已经关闭了自动索引。

    autoindex off;
    

    需要戴上,然后就可以看到目录了

    autoindex on;
    

    如果关闭,您可以查看文件但不列出目录。

    【讨论】:

      【解决方案2】:

      我在 Ubuntu 10.04、Nginx 和 Wordpress 上遇到了同样的症状,而答案是非常愚蠢的。

      万一其他人处于同样的情况......

      在我的站点的 nginx 配置中

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

      没有index.php

      将其添加到列表中可以解决问题

      【讨论】:

        【解决方案3】:

        我想是的

        rewrite ^/(.*) http://example.com/$1 永久;
        不能正常工作。 主机仍然是 www.example.com 没有发生重定向,因为您在日志中收到以下错误行:
        “/var/www/”的*38目录索引被禁止,客户端:88.224.1.128,服务器:localhost,请求:“GET / HTTP/1.1”,主机:www.example.com

        尝试使用重写线。

        另一个版本: 您确定这些行可以正常工作吗?

         包括/etc/nginx/conf.d/*.conf;
            包括 /etc/nginx/sites-enabled/*;

        【讨论】:

        • 抱歉错字。我输入 www.example.com 作为 URL。 example.com 也不起作用
        • 当我访问 example.com 网址时。我收到以下错误。 *2 禁止“/var/www/”目录索引,客户端:88.224.1.128,服务器:localhost,请求:“GET / HTTP/1.1”,
        • 尝试包含/etc/nginx/sites-enabled/example.com;包括 /etc/nginx/sites-enabled/www.example.com;而不是包含 /etc/nginx/sites-enabled/*;
        猜你喜欢
        • 2019-03-22
        • 2011-10-16
        • 2016-09-19
        • 2014-04-03
        • 2015-06-09
        • 2014-07-30
        • 1970-01-01
        • 2020-03-03
        相关资源
        最近更新 更多