2017-09-25 88 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