0

Nginxを初めて使用しますが、サーバーへのWebhookアクセスを許可する際に問題が発生します。WebhookがPOSTをDjangoサーバーに送信しようとすると、アクセスログに次のように表示されます。

54.234.20.81 --- [02 / Jan / 2013:18:11:57 +0000] "POST / Contracts / events HTTP / 1.1" 403 2319 "-" "-" 54.234.20.81 --- [02 / Jan / 2013: 18:11:58 +0000] "POST / Contracts / events HTTP / 1.1" 403 2319 "-" "-" 54.234.20.81 --- [02 / Jan / 2013:18:11:58 +0000] "POST / Contracts / events HTTP / 1.1 "403 2319"-""-"

禁止されていないように、このIPへのアクセスを許可する方法がわかりません。私はRamhostでホストしていますが、Nginxディレクトリは/ etc /nginx/のようです。このディレクトリにはnginx.confがあり、sites-availableフォルダーとsites-enabledフォルダーもあります。

これがsites-availableの設定ファイルです(sites-enabledにはこのファイルへのシンボリックリンクがあります):

upstream djangoserv {
server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name nameblr.com www.nameblr.com;
    access_log /home/yorango/yorangosite/logs/yorangosite-access.log;
    error_log /home/yorango/yorangosite/logs/yorangosite-error.log;

    location /static/ {
        alias /home/yorango/yorangosite/static/;
        expires 30d;
    }

    location /media/ {
        alias /home/yorango/yorangosite/static/;
        expires 30d;
    }

    location / {
        # host and port to fastcgi server
        allow 54.242.81.184;
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:8080;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        fastcgi_param REQUEST_METHOD $request_method;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_param SERVER_NAME $server_name;
        fastcgi_param SERVER_PORT $server_port;
        fastcgi_param SERVER_PROTOCOL $server_protocol;
        fastcgi_param CONTENT_TYPE $content_type;
        fastcgi_param CONTENT_LENGTH $content_length;
        fastcgi_pass_header Authorization;
        fastcgi_intercept_errors off;
        fastcgi_split_path_info ^()(.*)$;
    }
}

そして、これが/ etc /nginx/フォルダーにあるnginx.confファイルです。

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;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

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

「54.242.81.184を許可する」かどうかはわかりません。が正しい場所にあるか、sites-availableのファイルがnginx.confとどのように連携するかですが、助けていただければ幸いです。

4

1 に答える 1

2

問題がNginxであると確信していますか?DjangoプロジェクトでCSRF保護を有効にしていますか?CSRFチェックが失敗すると、Djangoは403を発行すると確信しています。

詳細については、この質問を確認してください:DjangoCSRFチェックがAjaxPOSTリクエストで失敗する

于 2013-01-02T18:40:37.927 に答える