2010-11-23 12 views
8

Ich möchte nginx auf meinem Ubuntu 10.04 32bit Linode VPS ausführen.Wie Nginx Virtualhosts funktionieren? (Derzeit gibt 403 Forbidden Fehler)

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 

Um einen nginx Virtualhost machen:

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

und schrieb folgende

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; 
    } 
} 

Dann aktiviert ich Virtualhost example.com

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

ich einen Index setzen. html zu /var/www/example.com/public und geben Sie www.example.com URL von meinem Browser ein. Dann bekam ich folgende

403 Forbidden 
nginx/0.8.53 

tail /var/log/nginx/error.log ergibt folgende Fehler

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

I Redo

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

aber es gibt denselben Fehler.

und Katze /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/*; 
} 

Wenn ich die index.html setzen/var/www/dann kann ich html-Datei, aber jeder Versuch, sehen sie unter/var setzen/www/example.com/public schlägt fehl. Ich sah Datei-und Ordnerberechtigungen sie sind ok alles gehört zu www-Daten und lesbar (775)

Was kann ich tun, um Nginx arbeiten? Danke

Antwort

5

Ich nehme an, dass

rewrite ^/(.*) http://example.com/ $1 permanent;
nicht richtig funktioniert. Gastgeber waren bleiben www.example.com keine Umleitung passiert war, da Sie Fehlerzeile in Ihr Protokoll erhalten folgende:

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

Versuchen mit Rewrite-Linie zu spielen.

Eine andere Version: Sind Sie sicher, dass diese Zeilen korrekt funktioniert?

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

Sory für Tippfehler. Ich habe www.example.com als URL eingegeben. example.com funktioniert auch nicht –

+0

Wenn ich example.com url besuche. Ich habe folgenden Fehler erhalten. * 2 Verzeichnis-Index von "/ var/www /" ist verboten, Client: 88.224.1.128, Server: localhost, Anfrage: "GET/HTTP/1.1", –

+0

Versuchen Sie, /etc/nginx/sites-enabled/example.com ; include /etc/nginx/sites-enabled/www.example.com; anstelle von/etc/nginx/sites-enabled/*; – CyberDem0n

7

hatte ich die gleichen Symptome auf Ubuntu 10.04, Nginx & Wordpress und die Antwort war ein dringend Stumme.

Falls jemand anderes in der gleichen Situation ist ....

In meiner nginx Konfiguration für den Standort

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

hatte nicht index.php

es das Hinzufügen Zur Liste geheilt das Problem

10

Die 403 ist, weil aus dem Autoindex haben.

autoindex off; 

Benötigen Sie legte es auf, und Sie können die dirs

autoindex on; 

Wenn ausgeschaltet Sie die Dateien sehen können, aber nicht Liste der Verzeichnisse sehen.