用Nginx反向代理Node.js的方法
本文介紹了用Nginx反向代理Node.js的方法,分享給大家,具體如下:
安裝pm2
npm install pm2 -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: no test specified\" && exit 1",
"pm2": "/home/download/node-v8.11.1-linux-x64/lib/node_modules/pm2/bin/pm2 start /web/mazey.cn/server/app.js"
}
or
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"pm2": "pm2 start app.js"
}
啟動(dòng)pm2
npm run pm2
開機(jī)啟動(dòng)pm2
pm2 save pm2 startup centos
注意
若 pm2 startup centos 失敗,可嘗試 pm2 startup 。
PM2 detected systemv but you precised centos Please verify that your choice is indeed your init system If you arent sure, just run : pm2 startup
修改Nginx配置
vim /etc/nginx/conf.d/*.conf
upstream nodejs {
server 127.0.0.1:3000;
keepalive 64;
}
server {
listen 80;
server_name domain.cn;
root /web/mazey.cn;
index index.html index.htm;
# 網(wǎng)站切到/server下時(shí)走nodejs
location /server {
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_set_header Connection "";
proxy_pass http://nodejs;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 1h;
}
}
相應(yīng)的 app.js :
const express = require('express')
const app = express()
let hi = 'hi'
app.get('/server', (req, res, next) => {
hi = `Hello Mazey!\n`
next()
}, (req, res) => {
res.send(`
${hi}
${req.method}\n
${req.originalUrl}\n
${req.query.id}\n
`)
})
const server = app.listen(3000, function () {
let host = server.address().address
let port = server.address().port
console.log('Example app listening at http://%s:%s', host, port)
})
注意
若報(bào)錯(cuò) Cannot GET /xxx 說明 Express 的路由沒配好。
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
nginx如何使用openssl自簽名實(shí)現(xiàn)https登錄
這篇文章主要介紹了nginx使用openssl自簽名實(shí)現(xiàn)https登錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
Nginx配置編寫時(shí)支持邏輯運(yùn)算與大小寫字母轉(zhuǎn)換的方法
這篇文章主要介紹了Nginx配置編寫時(shí)支持邏輯運(yùn)算與大小寫字母轉(zhuǎn)換的方法,其中大小寫字母轉(zhuǎn)換是以lower upper case模塊來實(shí)現(xiàn),需要的朋友可以參考下2016-01-01
Nginx學(xué)習(xí)筆記之事件驅(qū)動(dòng)框架處理流程
Nginx對(duì)請(qǐng)求的處理是通過事件觸發(fā)的,模塊作為事件消費(fèi)者,只能被事件收集、分發(fā)器調(diào)用。在Nginx中,接收到一個(gè)請(qǐng)求時(shí),不會(huì)產(chǎn)生一個(gè)單獨(dú)的進(jìn)程來處理該請(qǐng)求,而是由事件收集、分發(fā)器(進(jìn)程)調(diào)用某個(gè)模塊,由模塊處理請(qǐng)求,處理完后再返回到事件收集、分發(fā)器2014-07-07
windows下nginx的安裝使用及解決80端口被占用nginx不能啟動(dòng)的問題
這篇文章主要給大家介紹了關(guān)于windows下nginx的安裝使用,以及如何解決80端口被占用導(dǎo)致nginx不能啟動(dòng)的問題,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-04-04
nginx日志切割定時(shí)任務(wù)的實(shí)現(xiàn)
Nginx日志切割能有效管理日志,便于查詢、控制存儲(chǔ)空間、提高處理效率、方便備份與歸檔,減少數(shù)據(jù)丟失風(fēng)險(xiǎn),實(shí)現(xiàn)方法包括重命名日志文件、編寫定時(shí)日志腳本和設(shè)置crontab定時(shí)任務(wù)2024-11-11
配置nginx保證frps服務(wù)器與web共用80端口的方法
這篇文章主要介紹了frps服務(wù)端與nginx可共用80端口的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-06-06
Nginx強(qiáng)制跳轉(zhuǎn)Https(Http訪問跳轉(zhuǎn)Https)
這篇文章主要為大家介紹了Http訪問強(qiáng)制跳轉(zhuǎn)到Https的幾種方式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
詳解nginx的請(qǐng)求限制(連接限制和請(qǐng)求限制)
這篇文章主要介紹了詳解nginx的請(qǐng)求限制(連接限制和請(qǐng)求限制),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-07-07

