2016-12-10 16 views
0

ノードAPIの基本的なNginx構成がありますが、私が間違っていることを理解できないようです。Nginxプロキシが動作しない

user www-data; 
worker_processes 4; 
pid /run/nginx.pid; 

events { 
    worker_connections 768; 
    multi_accept on; 
} 

http { 

sendfile on; 
tcp_nopush on; 
tcp_nodelay on; 
keepalive_timeout 65; 
types_hash_max_size 2048; 
    server_tokens off; 

include /etc/nginx/mime.types; 
default_type application/octet-stream; 

access_log /var/log/nginx/access.log; 
error_log /var/log/nginx/error.log; 

gzip on; 
gzip_disable "msie6"; 

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

、その後、私の/etc/nginx/conf.d/の内側に、私はこのようになりますproxy.confを持っている:

server { 
    listen 80; 
    server_name [domain_name]; 

    add_header Access-Control-Allow-Origin '*'; 

    location/{ 
    proxy_pass [client_endpoint] 
    } 

    location /api { 
    add_header Allow 'POST, GET, PUT'; 

    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 

    proxy_pass http://XX.XXX.XXX.XXX:3005; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

    } 
} 

私のnginxのファイルは、次のようになります"/"場所からのプロキシは正常に動作しますが、サーバー上の別のポートにプロキシしようとするとタイムアウトになります。そうでないと403エラーが発生します。私はIPアドレスとlocalhostを使ってみました。誰でもここで私を助けることができますか?前もって感謝します。

EDIT:

/位置のブロックが動作していると/api場所ではありません。サーバーのポート3005に/apiの場所をプロキシしようとしています。 localhostにプロキシする必要があるのですか、または私のサーバのIP /ポートにプロキシする必要がありますか?両方を試したので、私の構文に問題があると仮定します。私は何が欠けていますか?ありがとう。ここで

+0

(1)どのロケーションブロックが問題を引き起こしていますか? '/'または '/ api'ですか? (2)localhostのポート3005にアクセスしようとしていますか?あなたはあなたの質問が何であるかをもっと明示することができますか?それは外部の読者として私には分かりませんでした。 – 2ps

+0

私は明確にするために私の質問を編集しました。うまくいけば、それは今より意味をなさない。ありがとう。 – gradorade

答えて

0

は、私は通常、ノード/ nginxのために何をすべきかです:

upstream nodejs { 
    server 127.0.0.1:3005; 
    keepalive 256; 
} 

server { 
    . . . 

    location /api { 
    add_header Allow 'POST, GET, PUT'; 

    access_log /var/log/nginx/access.log; 
    error_log /var/log/nginx/error.log; 
    proxy_set_header  Connection ""; 
    proxy_http_version  1.1; 
    proxy_set_header Host $host; 
    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
    proxy_pass http://nodejs; 
    } 
} 
0

私は問題を発見しました。 Nginx関連ではないことが判明しました。 AWS EC2インスタンスでTCPトラフィックを有効にし、プロキシが機能しました。

+0

あなたはec2の設定でどこを正確にしましたか? – doniyor

+1

EC2セキュリティグループ – gradorade

関連する問題