如何让Nginx虚拟主机工作? (目前出现403 Forbidden错误)
我想在我的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
但它给出同样的错误。
和cat /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工作? 谢谢
我想
rewrite ^/(.*) http://example.com/$1 permanent;不能正常工作。 主机仍然是www.example.com没有重定向发生,因为你得到错误行到你的日志中:
*38 directory index of "/var/www/" is forbidden, client: 88.224.1.128, server: localhost, request: "GET / HTTP/1.1", host: www.example.com
尝试玩重写线。
另一个版本:你确定,这些行是正确的?
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;403是因为有了autoindex。
autoindex off;
需要穿上它,并且你可以看到dirs
autoindex on;
如果关闭,您可以看到文件但不列出目录。
我在Ubuntu 10.04,Nginx和Wordpress上遇到了同样的症状,答案非常愚蠢。
如果其他人处于相同的情况....
在我的网站的nginx配置
location / {
        index  index.html index.htm;
    }
没有index.php
将它添加到列表中可以解决问题
链接地址: http://www.djcxy.com/p/32415.html上一篇: How to make Nginx virtualhosts work? (currently gives 403 Forbidden error)
下一篇: Why does Nginx return a 403 even though all permissions are set properly?
