Nginx从陌生到入门03——反向代理的简单配置

2023-11-30 09:59:30 浏览数 (2)

在上一节,主要写了如何进行虚拟主机配置的最基础配置。这一节的内容,依然非常重要——反向代理

假设以上图片internet proxy webserver的别名分别是A B C 反向代理的本质是我们A直接访问C是不通的,C作为服务器集群,只对内网暴露,但是我们访问B通过B就可以访问C了。所以就必须要求B和C必须是互相联通的。有人会说这个正向代理(访问国外网站)有什么区别,他们最主要的区别是正向代理,代理的是我们自己,你理解为是和用户站在一方的。而反向代理,则是代理的提供服务的服务器,它是和web服务器站在一方的。

反向代理的基础配置也很简单,话不多说我们直接进行操作

我们先配置一个站点:test3.aionlinefun.icu 。它的配置是这样的。

代码语言:javascript复制
 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。那接下来的配置就变成了这样:

代码语言:javascript复制
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; 这个配置就不生效了,这是正常的。因为都代理的别的服务器上了,不走这里的首页配置了,就可以把他们注释掉了。

0 人点赞