2016-09-14 92 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,它会工作。

相关问题