2017-09-25 86 views
1

我试图设置使用快递服务的端口3000和net图书馆担任端口5052 TCP服务器的文件我的节点服务器,所以:NGINX配置与同一端口上的Node.js Express和TCP服务器?

const express = require('express'); 
const app = express(); 
const httpServer = require('http').Server(app); 
const io = require('socket.io').listen(httpServer); 
const path = require('path'); 
const net = require('net'); 

app.get('/', (req, res) => { 
    res.sendFile(path.join(__dirname, './public/index.html')) 
}); 

let server = net.createServer(function(socket) { 
// Left out for brevity 
} 

server.listen(5052, 'localhost'); 

httpServer.listen(3000,() => { 
    console.log('Ready on port 3000'); 
}); 

本地,这一切都工作得非常好。我可以加载localhost:3000,我得到我的HTML服务,它连接到socket.io罚款。我也可以完美地连接到端口5052上的服务器,并且生活很好。我只是无法让nginx正确地提供它。下面是我有:

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

    server_name mycoolproject.com www.mycoolproject.com; 

    location/{ 
     proxy_pass http://localhost:3000; 
     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; 
    } 

    listen 443 ssl; 
    ssl_certificate /etc/letsencrypt/live/mycoolproject.com/fullchain.pem; 
    ssl_certificate_key /etc/letsencrypt/live/mycoolproject.com/privkey.pem; 
    include /etc/letsencrypt/options-ssl-nginx.conf; 

    ssl_dhparam /etc/ssl/certs/dhparam.pem; 

    if ($scheme != "https") { 
     return 301 https://$host$request_uri; 
    } 

} 

server { 
    listen 5053; 

    server_name mycoolproject.com www.mycoolproject.com; 

    location /{ 
     proxy_pass http://localhost:5052; 
       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; 
    } 
} 

当我浏览到mycoolproject.com我得到加载罚款网站,所以快递侧工作正常。我只是无法连接到我的服务器5053.任何想法?

+0

一个问题,在当地? – Kalamarico

回答

0

您需要为Nginx配置不同的端口,5052由Node.js占用。

server { 
    listen 5053; 

    server_name mycoolproject.com www.mycoolproject.com; 

    location /{ 
     proxy_pass http://localhost:5052; 
       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; 
    } 
} 

然后你就可以在那里你说这工作,你nginx的服务也连接到mycoolproject.com:5053