2010-11-23 41 views
8

我想在我的Ubuntu 10.04 32位Linode VPS上運行nginx。如何讓Nginx虛擬主機工作? (目前給出403 Forbidden錯誤)

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 

我把一個指標。 html到/var/www/example.com/public並從我的瀏覽器輸入www.example.com網址。然後我得到了以下

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失敗。我看着文件和文件夾的權限,他們都沒事全部屬於萬維網數據和可讀(775)

我能做些什麼來使nginx工作?謝謝

回答

5

我想,那

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/*;
+0

Sory for typo。我輸入www.example.com作爲URL。 example.com也不起作用 – 2010-11-23 08:54:26

7

我在Ubuntu 10.04,Nginx的& WordPress的相同的症狀,答案是拼命啞巴之一。

萬一別人是在同樣的情況....

在我的nginx的配置對於網站

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

沒有的index.php

將它添加到列表治癒問題

10

403是因爲有了autoindex。

autoindex off; 

需要穿上它,你可以看到在顯示目錄

autoindex on; 

如果是關閉的,你可以看到文件,但沒有列出的目錄。