一個項目需要承載高并發請求,所以在后端語言上選擇了NodeJs,但是nodejs有時候讀取不到請求的主機名,所以想到使用nginx+nodejs的方式進行處理。
Nginx 配置
代碼如下
upstream io_nodes {
server 127.0.0.1:8081;
}
server {
listen 80;
listen [::]:80;
root /var/www/html;
server_name ——^(?<subdomain>.+).example.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-AppId $subdomain;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://io_nodes;
}
}
重啟nginx服務器即可。nginx會將所有的 **.example.com** 格式的域名反向代理到本機的**8081**端口,該端口為**nodejs**監聽端口。
NodeJs 讀取請求域名以及子域名名稱
使用express
var host = req.headers.host;
var appid = req.headers['x-appid'];