反向代理基本概念
反向代理服务器位于用户与目标服务器之间,但是对于用户而言,反向代理服务器就相当于目标服务器,即用户直接访问反向代理服务器就可以获得目标服务器的资源。同时,用户不需要知道目标服务器的地址,也无须在用户端作任何设定。反向代理服务器通常可用来作为Web加速,也就是使用反向代理作为Web服务器的前置机来降低网络和服务器的负载,提高访问效率。
简单地说,当一个代理服务器能够代理外部网络上的主机,访问内部网络时,这种代理服务的方式称为反向代理服务。
对外来说反向代理服务器就是一个Web服务器,但是它并没有存储任何资源,所以反向代理服务器遭受攻击时并不会破坏网页上的信息,提高了原始服务器的安全性。
反向代理实例配置
安装tomcat服务器
-
去官网下载tomcat,根据喜好选择一个版本即可 -
将下载好的压缩包上传到linux中的/usr/local下 -
解压缩 tar zxvf apache-tomcat-8.5.69.tar.gz -
进入tomcat的bin目录中启动tomcat tomcat默认使用8080端口,确认防火墙是否开放8080端口,嫌麻烦就直接 将防火墙关闭 ./startup.sh 5.测试 在windows系统的浏览器中访问linux中的tomcat服务器 http://ip:8080 熟悉的小猫咪出现了,测试完成
windows中配置域名映射规则
做了域名映射更贴近网页上真实的访问,当然不做映射也行。
进入C:\Windows\System32\drivers\etc下修改hosts文件,使用管理员身份修改 添加以下内容:
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
测试:
配置代理多个服务器
- 准备两个tomcat服务器,创建两个文件夹tomcat8081和tomcat8082(放在同级目录下)。分别解压两个tomcat。
- 修改配置文件server.xml,需要修改两个端口connect port 和shutdown port。
两个tomcat端口不同即可。
- 检查tomcat是否正常启动,确保服务器正常运行
ps -ef | grep tomcat - 修改nginx配置文件,配置代理
server {
listen 8888;
server_name 39.106.196.78;
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 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
- 为了呈现页面访问效果,准备两个简单的html文件放入tomcat的webapps目录下即可
看看能否正常访问到资源: - 重启nginx,测试代理能否成功
|