在上一节,主要写了如何进行虚拟主机配置的最基础配置。这一节的内容,依然非常重要——反向代理
假设以上图片internet proxy webserver的别名分别是A B C
反向代理的本质是我们A直接访问C是不通的,C作为服务器集群,只对内网暴露,但是我们访问B通过B就可以访问C了。所以就必须要求B和C必须是互相联通的。有人会说这个正向代理(科学上网)有什么区别,他们最主要的区别是正向代理,代理的是我们自己,你理解为是和用户站在一方的。而反向代理,则是代理的提供服务的服务器,它是和web服务器站在一方的。
反向代理的基础配置也很简单,话不多说我们直接进行操作
我们先配置一个站点:test3.aionlinefun.icu 。它的配置是这样的。
server {
listen 80;
# listen somename:8080;
server_name test3.aionlinefun.icu;
location / {
root html/test;
index index.html index.htm;
}
}
- 现在我访问test3.aionlinefun.icu 肯定是跳到了它的首页。
-
要配置反向代理,我们只需要在location代码块里配置一个 proxy_pass 后面跟上你想要代理的地址即可。这里我填写google。那接下来的配置就变成了这样:
server { listen 80; server_name test3.aionlinefun.icu; location / { proxy_pass http://google.com; root html/test; index index.html index.htm; } }
需要注意的是proxy_pass后面要有空格,以及该行结尾要有分号,以及必须填写http而不能是https。如果是https话需要额外的配置,在这里直接写https会报错。这个我们后续再来讲解。写完配置之后记得重启一下nginx,让配置生效
systemctl restart nginx
-
接下来我们访问这个域名,就会发现它跳转到了google了。反向代理的配置要就到此结束了。其实就是一行 proxy_pass配置的事情。还有最重要的是当前服务器和要被代理的服务器之间网络是通着的
细心的朋友们可能会发现proxy_pass配置了之后, root html/test;index index.html index.htm; 这个配置就不生效了,这是正常的。因为都代理的别的服务器上了,不走这里的首页配置了,就可以把他们注释掉了。