用Nginx反向代理Node.js的方法
本文介绍了用Nginx反向代理Node.js的方法,分享给大家,具体如下:
安装pm2
npminstallpm2-g ln-s/home/download/node-v8.11.1-linux-x64/lib/node_modules/pm2/bin/pm2/usr/local/bin/pm2
修改package.json
"scripts":{
"test":"echo\"Error:notestspecified\"&&exit1",
"pm2":"/home/download/node-v8.11.1-linux-x64/lib/node_modules/pm2/bin/pm2start/web/mazey.cn/server/app.js"
}
or
"scripts":{
"test":"echo\"Error:notestspecified\"&&exit1",
"pm2":"pm2startapp.js"
}
启动pm2
npmrunpm2
开机启动pm2
pm2save pm2startupcentos
注意
若pm2startupcentos失败,可尝试pm2startup。
PM2detectedsystemvbutyouprecisedcentos Pleaseverifythatyourchoiceisindeedyourinitsystem Ifyouarentsure,justrun:pm2startup
修改Nginx配置
vim/etc/nginx/conf.d/*.conf
upstreamnodejs{
server127.0.0.1:3000;
keepalive64;
}
server{
listen80;
server_namedomain.cn;
root/web/mazey.cn;
indexindex.htmlindex.htm;
#网站切到/server下时走nodejs
location/server{
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;
proxy_set_headerHost$http_host;
proxy_set_headerX-Nginx-Proxytrue;
proxy_set_headerConnection"";
proxy_passhttp://nodejs;
}
location~.*\.(gif|jpg|jpeg|png|bmp|swf)${
expires30d;
}
location~.*\.(js|css)?${
expires1h;
}
}
相应的app.js:
constexpress=require('express')
constapp=express()
lethi='hi'
app.get('/server',(req,res,next)=>{
hi=`HelloMazey!\n`
next()
},(req,res)=>{
res.send(`
${hi}
${req.method}\n
${req.originalUrl}\n
${req.query.id}\n
`)
})
constserver=app.listen(3000,function(){
lethost=server.address().address
letport=server.address().port
console.log('Exampleapplisteningathttp://%s:%s',host,port)
})
注意
若报错CannotGET/xxx说明Express的路由没配好。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。