nginx的反向代理
是这样的,如图所示我的域名是oi.XXX.com 接口访问的也是oi.XXX.com
但是我想让调用接口的时候访问的是dev.XXX.com
想问一下各位大牛我的nginx应该怎么改呢
当前配置如下
server{
# 监听端口
listen 80;
# 本地域名
server_name dev.yuanoi.com;
# 根目录
root /data/wwwroot/dev.guquan381.com;
access_log logs/dev.yuanoi.com.access.log;
# 错误日志
error_log logs/dev.yuanoi.com.error.log;
# 映射到oi
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; #获取真实ip
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #获取代理者的真实ip
proxy_pass http://oi.yuanoi.com; #转向 处理
proxy_redirect off;
}
location ~ ^/favicon\.ico$ {
root /data/wwwroot/oi.guquan381.com;
}
location @fallback {
rewrite ^.*$ /index.html break;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 12h;
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
server_name
和proxy_pass
两个域名配反了在所有接口前面加上/api,然后配置location ^~ /api {
}
虽然不知道你是不是表达反了, 但是你的这行
proxy_set_header Host $host;
是明显会出问题的,按照你的写法 反向代理请求服务器 http://oi.yuanoi.com的时候,header中的host确是 dev.yuanoi.com, 这会导致服务vhost匹配不到 server_name oi.yuanoi.com,
你把
proxy_set_header Host $host;
改成proxy_set_header Host oi.yuanoi.com;
试试看nginx层做转发 或者 在应用代码里 去做重定向