云服务器之代理

今天想着要把自己做的那个Demo部署到服务器上,却发现在本地可以正常代理的请求,在经过打包部署后,api请求代理似乎已经失效了。花了很久的时间在解决这个问题,最后特别感谢某修给予的灵感以及学长的耐心解答,为了便于以后更方便地使用,我将之记录下来,也希望能够对大家有所帮助~

前言

在云服务器上,我使用了nginx作为我的web服务器,nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx 在80端口监听所有请求,并依据转发规则(比较常见的是以 URI 来转发)转发到对应的web服务器上。

在我的项目中,是因为所需要请求的API位于服务器上的不同端口,为了实现跨域请求,所以需要进行代理。

代理

我的服务器域名为qq.qiuruolin.cn

不带URI的代理配置

1
2
3
4
5
6
7
8
http {
server {
server_name qq.qiuruolin.cn;
location /api/ {
proxy_pass http://qq.qiuruolin.cn:3000;
}
}
}

以上的配置会 http://qq.qiuruolin.cn/api 下的请求( GET 和 POST 请求都会转发)转发到 http://qq.qiuruolin.cn:3000/

需要注意的是,在以上的配置中,http://qq.qiuruolin.cn:3000是没有指定URI的。

  • 如果代理服务器地址中是带有URI的,此URI会替换掉 location 所匹配的URI部分。

  • 如果代理服务器地址中是不带有URI的,则会用完整的请求URL来转发到代理服务器。

带URI的代理配置

1
2
3
4
5
6
7
8
http {
server {
server_name qq.qiuruolin.cn;
location /api/ {
proxy_pass http://qq.qiuruolin.cn:3000/uri/;
}
}
}

举🌰:

总结

这次在服务器上的代理,开始的时候真的让我感觉到很混乱,以此博客纪念曾经混乱的自己~希望对大家有所帮助~继续努力!!!

本文标题:云服务器之代理

文章作者:萌萌哒的邱邱邱邱

发布时间:2018年05月28日 - 21:05

最后更新:2018年05月28日 - 22:05

原始链接:https://qiuruolin.github.io/2018/05/28/server-proxy/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------
感谢您的支持