2017-03-20 18 views
0

上位のポート、たとえば8000の場合、静的ファイルが正常に読み込まれます。私がポート80で(sudoを使って)サーバーを動かすと、私は403エラーが発生します。なぜこれがどんなアイデアですか?静的ファイルのNginx:403(ポート80のみ)

私の唯一の考えは、root権限で実行していることです。ファイルのパーミッションはすべて正常です。-777を実行しても、エラーは変わりません。

# the upstream component nginx needs to connect to 

events { 
    worker_connections 1024; 
} 


http{ 
    upstream django { 
    server 127.0.0.1:8001; 
    } 
# configuration of the server 
server { 
    # the port your site will be served on 
    listen  80; 

    root ~/my/path/; 

    # the domain name it will serve for 
    server_name 127.0.0.1; 
    charset  utf-8; 

    # max upload size 
    client_max_body_size 75M; # adjust to taste 

    # Django media 
    location /media { 
     alias _; # your Django project's media files - amend as required 
    } 

    location /static/ { 
     autoindex on; 
     root /my/path/static/; 
    } 

    location ~ \.css { 
     root /my/path/static/; 
    } 

    location ~ \.js { 
     root /my/path/static/; 
    } 

    # Finally, send all non-media requests to the Django server. 
    location/{ 
     uwsgi_pass django; 
     include ../uwsgi_params; 
    } 
    } 
} 
+0

あなたのnginx設定ファイルを共有したいかもしれません。 また、なぜそれが403を投げているのかのヒントについては、nginxエラーログを確認してください。通常 '/ var/log/nginx/error' – GreensterRox

+0

設定を追加すると、エラーは単にログに' permission denied'と表示されます。私はなぜそれがポート80のためだけにスローされるのだろうと混乱し、私はそれがrootとしてnginxを実行することと関係があると感じています。 – chris

答えて

1

あなたのコンテンツディレクトリに、このコンテキストを追加する必要があります。

chcon -R -t httpd_sys_content_t /my/path/static 

それとも、SELinuxを無効にする必要があります。 /etc/sysconfig/selinuxファイルを編集して、selinuxを完全に無効にします。 setenforce 0は、オンザフライでselinuxを無効にします。

関連する問題