8

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 を機能させるにはどうすればよいですか? ありがとう

4

3 に答える 3

11

403 は、autoindex がオフになっているためです。

autoindex off;

それを置く必要があり、あなたはdirsを見ることができます

autoindex on;

がオフの場合、ファイルは表示されますが、ディレクトリは一覧表示されません。

于 2012-07-17T00:17:31.487 に答える
7

Ubuntu 10.04、Nginx、Wordpressでも同じ症状が出ましたが、答えは必死に馬鹿げたものでした。

他の誰かが同じ状況にある場合...

サイトのnginx構成で

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

index.phpがありませんでした

リストに追加すると問題が解決しました

于 2012-03-31T15:23:09.103 に答える
5

たぶん、それ

rewrite ^/(.*) http://example.com/ $1 永久;
正しく動作しません。ホストは www.example.com のままでした。ログに次のエラー行が記録されるため、リダイレクトは発生しませんでした。

※38 「/var/www/」のディレクトリインデックスは禁止、クライアント:88.224.1.128、サーバー:localhost、リクエスト:「GET / HTTP/1.1」、ホスト:www.example.com

書き換え行で遊んでみてください。

別のバージョン: これらの行が正しく機能することは確かですか?

    /etc/nginx/conf.d/*.conf を含めます。
    /etc/nginx/sites-enabled/* を含めます。
于 2010-11-23T08:45:31.150 に答える