Nginx实战学习之反向代理

反向代理基本概念

反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,也就是使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。

简单地说,当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。

对外来说反向代理服务器就是一个Web服务器,但是它并没有存储任何资源,所以反向代理服务器遭受攻击时并不会破坏网页上的信息,提高了原始服务器的安全性。
在这里插入图片描述

反向代理实例配置

安装tomcat服务器

  1. 去官网下载tomcat,根据喜好选择一个版本即可

  2. 将下载好的压缩包上传到linux中的/usr/local下
    在这里插入图片描述

  3. 解压缩
    tar zxvf apache-tomcat-8.5.69.tar.gz
    在这里插入图片描述

  4. 进入tomcat的bin目录中启动tomcat
    tomcat默认使用8080端口,确认防火墙是否开放8080端口,嫌麻烦就直接 将防火墙关闭
    ./startup.sh
    在这里插入图片描述
    5.测试
    在windows系统的浏览器中访问linux中的tomcat服务器
    http://ip:8080
    在这里插入图片描述
    熟悉的小猫咪出现了,测试完成

windows中配置域名映射规则

做了域名映射更贴近网页上真实的访问,当然不做映射也行。

进入C:\Windows\System32\drivers\etc下修改hosts文件,使用管理员身份修改
在这里插入图片描述
添加以下内容:

#linux主机ip 需要映射的域名

###nginx###
39.106.196.78 www.chunni.com

测试一下:
在这里插入图片描述

修改nginx配置

nginx安装点这里

进入nginx配置文件目录:/usr/local/nginx/conf
在这里插入图片描述
在location部分添加如下内容:

location / {
            root   html;
            proxy_pass  http://127.0.0.1:8080;##添加一个代理的路径到tomcat即可,不一定是本机
            index  index.html index.htm;
        }

并且设置监听的地址和端口,设置监听localhost的80端口。这样访问当前服务器80端口的一切请求都会被代理到tomcat。
在这里插入图片描述

启动nginx

cd /usr/local/nginx/sbin
./nginx

如果之前就开启了nginx,重新加载就行,还是nginx的sbin目录下执行:

./nginx -s reload

测试:
在这里插入图片描述

配置代理多个服务器

  1. 准备两个tomcat服务器,创建两个文件夹tomcat8081和tomcat8082(放在同级目录下)。分别解压两个tomcat。
  2. 修改配置文件server.xml,需要修改两个端口connect port 和shutdown port。
    两个tomcat端口不同即可。

在这里插入图片描述
在这里插入图片描述

  1. 检查tomcat是否正常启动,确保服务器正常运行
    ps -ef | grep tomcat
    在这里插入图片描述
  2. 修改nginx配置文件,配置代理
server {
   	#监听39.106.196.78:8888
       listen       8888;
       server_name  39.106.196.78;
   	
   	#当访问的路径匹配/aaa/时,代理到http://127.0.0.1:8081/aaa/
       location ~/aaa/ {
       	#设置代理路径
           proxy_pass http://127.0.0.1:8081;
       }

       location ~/bbb/ {
           proxy_pass http://127.0.0.1:8082;
       }
   }

location配置uri语法:

= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。

~:用于表示 uri 包含正则表达式,并且区分大小写。

~*:用于表示 uri 包含正则表达式,并且不区分大小写。

^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请 求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再 使用 location 块中的正则 uri 和请求字符串做匹配。

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

  1. 为了呈现页面访问效果,准备两个简单的html文件放入tomcat的webapps目录下即可
    在这里插入图片描述
    看看能否正常访问到资源:
    在这里插入图片描述
    在这里插入图片描述
  2. 重启nginx,测试代理能否成功
    在这里插入图片描述
    在这里插入图片描述
  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值