2017-09-19 16 views
1

私はすでにアクセス可能な静的なファイルを持っていますが、すでにデジタル海でAPIを持っています。NodeJS APIのNginx設定

しかし、同時にNGINXを設定して両方にアクセスするようにしています。私のAPIが動作する場合、静的ファイルは動作しません。およびその逆;

私のapiはポート5000で動作しており、IPアドレスでサイトとAPIにアクセスしたいとします。

Pls、help!

server { 
    listen 80 default_server; 
    listen [::]:80 default_server; 

    root /var/www/html; 

    server_name _; 

    location/{ 

     try_files $uri $uri/ =404; 

    } 

} 

server { 

    location/{ 
     proxy_pass http://localhost:5000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
} 

答えて

1

両方のサービスが同じIPアドレスとポートからアクセスされている場合は、1個のserverブロックを使用する必要があります。理想的には、例えば、ユニークなURIにAPIを移動する:

location/{ 
    try_files $uri $uri/ =404; 
} 
location /api/ { 
    proxy_pass ...; 
    ... 
} 

あなたは静的ファイルとAPIの両方に重複URIのスペースを使用する必要がある場合、あなたは静的の存在を確認するためにtry_filesを使用することができます最初のファイル:

location/{ 
    try_files $uri $uri/ @proxy; 
} 
location @proxy { 
    proxy_pass ...; 
    ... 
} 

は多くのためthis documentを参照してください。