2016-09-14 123 views
0
  1. 我們正在運行在端口8090上Amazon EC2實例1
  2. 我們在Amazon EC2實例運行在80端口NGINX一個的NodeJS HTTP服務器2
  3. 在NGINX中,我們爲NodeJS服務器配置了上行流程
  4. 現在我們無法使用運行NGINX的EC2機器的IP從我的機器獲取socket.io/socket.io.js。

是的,我已配置端口8090無法連接到從NGINX另一個EC2 EC2上的NodeJS服務器運行

NGINX IP的inbout /出站策略: - 51.122.71.253(樣品IP)

EC2實例1個IP: - 5x.18x .8x.24x

問題:

我無法通過NGINX從本地機器獲取http://51.122.71.253/socket.io/socket.io.js

但是我可以訪問EC2實例1直接http://5x.18x.8x.24x:8090/socket.io/socket.io.js

相同的設置與同一NGINX.conf文件是工作在我們的本地局域網。 端口80有EC2的特殊技巧嗎?

配置文件

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

    log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 
         '$status $body_bytes_sent "$http_referer" ' 
         '"$http_user_agent" "$http_x_forwarded_for"'; 

    access_log /var/log/nginx/access.log main; 

    sendfile  on; 
    #tcp_nopush  on; 

    keepalive_timeout 65; 

    #gzip on; 

    include /etc/nginx/conf.d/*.conf; 

    map $http_upgrade $connection_upgrade 
    { 
     default upgrade; 
      '' close; 
    } 

     upstream node_server 
     { 
       ip_hash; 
       server 5x.18x.8x.24x:8090; 
     } 

    server 
     { 
       listen 80; 

       location/
       { 
         proxy_set_header X-Real-IP $remote_addr; 
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
         proxy_set_header Host $http_host; 
         proxy_set_header X-NginX-Proxy true; 
         proxy_redirect off; 
         proxy_read_timeout 3000; 

         proxy_http_version 1.1; 
         proxy_set_header Upgrade $http_upgrade; 
         proxy_set_header Connection "upgrade"; 

         proxy_pass http://node_server; 
         client_body_in_file_only clean; 

         client_body_buffer_size 32K; 

         client_max_body_size 400M; 

         sendfile on; 
         send_timeout 300s; 
       } 
     } 

我們正在努力實現: -

其實我們的客戶端網絡上除80的所有端口被封鎖,所以我們正在努力NGINX作爲代理將套接字連接從端口80重定向到端口8090.

(客戶機) - >(NGINX PROXY) - >(EC2 INSTANCE NODEJS SERVER RUNINNG @ 8090)

+0

這很可能是一個安全組設置問題。發佈您的安全組規則。 –

+0

我不認爲它有任何安全組問題。如果我從NGINX機器內部獲取,我可以使用wget http://5x.18x.8x.24x:8090/socket.io/socket.io.js來獲取文件。此外,這些設置對於端口80以外的任何其他端口都可以正常工作。如果端口80出現任何問題,則我無法從本地計算機上看到NGINX頁面 – samba

回答

0

我已經解決了這個問題。您必須將端口從80更改爲/etc/nginx/conf.d/default.conf中的任何其他端口。

我已經改變了口81

server { 
    listen  81; 
    server_name localhost; 

然後請重啓NGINX,它會工作。

相關問題