这几天在弄一些老系统,前后端分离、内外网分离,前前后后的四五个项目,首先就要搭一套测试环境,不运行起来,谁知道这里面有多少坑。
运行起来容易,访问呢?这一访问,就知道是还需要配置nginx,利用nginx去做反向代理才行。
毕竟这么多项目,来回访问还要切端口?配置个nginx,解放一部分的工作量。
什么是反向代理?
通俗的讲,反向代理是将用户客户端的请求根据不同规则,将请求代为发送或者映射至不同服务(器)。
客户端方面并不会有任何的中转反应,因为所有的映射操作都是有反向代理服务进行处理的。
正因为如此,客户端,或者是用户并不需要进行任何的操作,算是反向代理的特点,这也是反向代理机制被广泛使用的原因。
Nginx中如何配置反向代理?
那么Nginx如何配置反向代理呢,对于nginx而言,除了作为静态资源服务中间件之外,使用最多的就是它的反向代理了,下面就来看看吧。
首先就是配置文件如何配置了,那自然就是nginx.conf文件了。
记住一点,反向代理的配置关键词就是proxy_pass关键词。
proxy_pass,就在server{}下,先放一个例子上来。
server{ listen 80; server_name test_proxy; location /test0/ { proxy_pass http:127.0.0.1:8080/t0/; } location /test1/ { proxy_pass http:127.0.0.1:8081/t1/; } }
以上就是一个很简明的配置了。
- 如果我们来访问
http://127.0.0.1/test0/
,其实通过nginx访问的是http:127.0.0.1:8080/t0/
。 - 如果我们来访问
http://127.0.0.1/test1/
,其实通过nginx访问的是http:127.0.0.1:8081/t1/
。
这里还有一个很重要的点,就是proxy_pass配置url尾部的/
,有或没有结果是不同的。
如果没有/
,那么我们在上面访问http://127.0.0.1/test0/
的时候,实际上访问的就是http:127.0.0.1:8080/test0/t0/
了,这差别还是有的;虽然很简单,但是初学者常犯。