Как заставить работать виртуальные хосты Nginx?(в настоящее время выдает 403 Forbidden error) - PullRequest
8 голосов
/ 23 ноября 2010

Я хочу запустить nginx на моем Ubuntu 10.04 32bit Linode VPS.

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

Тогда я включил virtualhost 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 и ввел URL-адрес 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

но выдает ту же ошибку.

и 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-данным и доступно для чтения (775)

Что я могу сделать, чтобы заставить работать nginx? Спасибо

Ответы [ 3 ]

10 голосов
/ 17 июля 2012

403, потому что у вас отключен автоиндекс.

autoindex off;

Нужно надеть его, и вы можете увидеть каталоги

autoindex on;

Если выключено, вы можете увидеть файлы, ноне перечислять каталоги.

7 голосов
/ 31 марта 2012

У меня были такие же симптомы в Ubuntu 10.04, Nginx и Wordpress, и ответ был отчаянно тупым.

В случае, если кто-то еще находится в такой же ситуации ...

В моем конфиге nginx для сайта

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

не было index.php

добавление его в список вылечило проблему

5 голосов
/ 23 ноября 2010

Полагаю,

rewrite ^/(.*) <a href="http://example.com/" rel="noreferrer">http://example.com/</a>$1 permanent;
не работает должным образом.Хост остался.уверены, что эти строки работают правильно?
include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
...