nginx做nodejs(express等通用)反向代理

时间:2022-03-01 14:48:52

首先配置环境nginx+nodejs。。。(没有请看我的其他文章,此处不重复)

cd 到nginx的site-available目录 ubuntu的在

cd /etc/nginx/site-available/

创建一个server文件

sudo touch testServer

然后可以copy下面的代码进去了(勤劳的coder可以手写一遍的哦)

http{
keepalive ; #超时

gzip on; #是否开启压缩模块
gzip_comp_level ; #压缩比例 1-9
gzip_vary on; #根据http头判断是否进行压缩
gzip_min_length ; #允许压缩的最小字节数
gzip_proxied any; #无论后端服务器返回的header是什么,都压缩
gzip_types text/plain text/html text/css application/json application/x-javascript text/xml application/xhtml application/xml+rss text/javascript image/jpeg image/jpg image/png image/gif; #压缩文件类型 基本全了
gzip_buffers 8k; #向系统申请 以8k为基础的16倍 缓存单元
   upstream my_node_app{    #不清楚的推荐看一下 http://nginx.org/en/docs/ 或者英文不好的可以看大神的文章 http://www.cnblogs.com/taosim/articles/3110626.html 里面有对upstream的详细介绍
server 127.0.0.1:3000;
keepalive 64; #超时
}
    server{
listen ; #监听80端口
server_name zboy.com; #设置服务名称
location / { #服务是非静态文件,设置nodejs服务的反向代理
proxy_pass http://my_node_app;
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Connection "";
} location ~ ^/(img/|js/|css/|images/|flash/|media/)$ { #如果是静态文件 则劫持处理
root /home/app/myapp/public; #your project url
access_log off;
expires max;
}
}
}

OK文件搞定,但配置还差一步。。。

创建软链接到site-enable文件夹中

sudo ln -s /etc/nginx/site-available/testServer /etc/nginx/site-enable/testServer

然后执行命令

sudo /etc/init.d/nginx reload   /stop-start

此时开启你的nodejs服务 注意端口号设置3000

浏览器打开 http://127.0.0.1

大功告成!~

参考文章:http://ourjs.com/detail/nodejs-on-nginx-%E4%BD%BF%E7%94%A8nginx%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86%E5%A4%84%E7%90%86%E9%9D%99%E6%80%81%E9%A1%B5%E9%9D%A2