部署egg项目需要反向代理配置:
location / {
proxy_pass http://127.0.0.1:7001;
proxy_redirect off;
proxy_buffer_size 64k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
对于静态资源也需要反向代理的,否则访问不到:
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:7001;
}
location ~ .*.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:7001;
}
// 新增
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:7001;
egg获取客户端真实IP:
在生产环境服务器上,Eggjs一般都需要做反向代理,这时候 ctx.request.ip 的值就是 Nginx 所在的 IP,往往就是本地地址 127.0.0.1,
所以需要以下配置:
开启前置代理模式
通过 config.proxy = true,可以打开前置代理模式:
// config/config.default.js
config.proxy = true;
Nginx 反向代理配置
在 Nginx 反向代理配置 proxy_pass 的部分添加这样一行。
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
//proxy_pass http://127.0.0.1:7001;