2017-08-11 18 views
0

pm2で実行中のSailsアプリにアクセスしようとしています。アプリケーションは、実行中のサーバーのIPから直接アクセスすると実行されます。Nginxのあるサーバから別のサーバへのリバースプロキシ

私は別のサーバー上のリバースプロキシとしてnginxのを実行して、以下のことが起こります。

私はorigin.myserver.comに以下の構成を使用する場合、それはまだ動作します:

server { 
listen 80; 

location/{ 
    client_max_body_size 10m; 
    client_body_buffer_size 128k; 

    proxy_send_timeout 600; 
    proxy_read_timeout 600; 
    proxy_buffer_size 128k; 
    proxy_buffers  4 256k; 
    proxy_busy_buffers_size 256k; 
    proxy_temp_file_write_size 256k; 
    proxy_connect_timeout 30s; 
    proxy_set_header Host $host; 
    proxy_pass http://dest.myserver:1337; 

    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
} 
} 

しかし、私が追加しようとすると、 nginxのから複数のサブディレクトリが、それは動作しません:

server { 
listen 80; 

location /auth { 
    client_max_body_size 10m; 
    client_body_buffer_size 128k; 

    proxy_send_timeout 600; 
    proxy_read_timeout 600; 
    proxy_buffer_size 128k; 
    proxy_buffers  4 256k; 
    proxy_busy_buffers_size 256k; 
    proxy_temp_file_write_size 256k; 
    proxy_connect_timeout 30s; 
    proxy_set_header Host $host; 
    proxy_pass http://dest.myserver:1337; 

    proxy_set_header X-Real-IP $remote_addr; 
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
} 
} 

私が受けていますエラーは次のとおりです。

私は、以下の設定に問題解決210
2017/08/11 15:55:13 [error] 8304#0: *3 open() "/usr/share/nginx/html/locales/locale.js" failed (2: No such file or directory), client: IP, server: , request: "GET /locales/locale.js?v=1502466823352 HTTP/1.1", host: "REVERSE PROXY IP" 

答えて

0

:サービスは直接Node/PM2上で実行されていたので

を私たちは場所のパスの後に/を使用している場合、サブパスは転送されません。 Nginxを使用していないアプリケーションでは、location /authの代わりにlocation /auth/を使用します。

また、ヘッダーとデータも転送する必要があります。

アプリケーションが転送されている場合は、nginxの上で動作し、パスを私たちはlocation /auth/を使用している場合、すなわちと呼ばれるサービスが、私の場合のためにhttp://myserver.com:1337/auth

例だろうに転送されるようになります:

server { 

    listen 80; 

    location /auth/ { 
     proxy_set_header Host origin.myserver.com/auth/; 
     proxy_pass http://dest.myserver.com:1337/; 

     proxy_set_header X-Real-IP $remote_addr; 
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
     client_max_body_size 10m; 
     client_body_buffer_size 128k; 

     proxy_send_timeout 600; 
     proxy_read_timeout 600; 
     proxy_buffer_size 128k; 
     proxy_buffers  4 256k; 
     proxy_busy_buffers_size 256k; 
     proxy_temp_file_write_size 256k; 
     proxy_connect_timeout 300s; 
     add_header 'Access-Control-Allow-Origin' 'http://someother.domain.in'; 
     add_header 'Access-Control-Allow-Credentials' 'true'; 
     add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; 
     add_header 'Access-Control-Allow-Headers' 'Authorization,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; 
} 
関連する問題