一般來說使用node.js開發的webapp都不會是默認的80端口,以官方文檔演示為例
JavaScript
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(1337, '127.0.0.1');
使用的是1337端口,用戶必須在網址后加入:1337才能訪問站點,一般默認HTTP端口是80,監聽80端口能讓網址看起來更簡潔。我在linode上配置了LNMP環境,使用的是nginx,需要使用反向代理,配置nginx反向代理的代碼參考如下。 比如說我的某域名為 fitbit.is26.com ,node.js的通訊端口為1337,則:
nginx
server{ listen 80; server_name fitbit.is26.com; index index.html index.htm index.php default.html default.htm default.php; 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_pass http://127.0.0.1:1337/; proxy_redirect off; } }
將網站域名設置好,然后端口設置為80,將所有從fitbit.is26.com:80的請求傳遞到nodejs程序去。 保存nginx conf文件后,記得要restart nginx,方能生效。
pasting
upstream ahdefend {
server 127.0.0.1:18888
;
}
server {
listen 80
;
server_name 47.100.201.109 ahdefend.com
;
location / {
proxy_set_header X-Real-IP $remote_addr
;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for
;
proxy_set_header Host $http_host
;
proxy_set_header X-Nginx-Proxy true
;
proxy_pass http://ahdefend
;
proxy_buffer_size 64k
;
proxy_buffers 32 32k
;
proxy_busy_buffers_size 128k
;
proxy_redirect off
;
}
}