Nginx配置实例-反向代理

反向代理
我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器IP地址。
1. 具体配置:
第一步,在Windows系统的host文件进行域名和ip对应关系的配置

Nginx配置实例-反向代理_第1张图片
(1) 添加内容在hosts文件中,在末尾添加
(2) 格式:IP地址+域名
(3) 例:172.16.140.101 www.123.com
在这里插入图片描述
注:如果没有权限修改,先把hosts文件拷贝到桌面修改,修改完成后再拷贝到原来目录下,接着到网页输入www.123.com:8080,看是否可以跳转到tomcat界面
Nginx配置实例-反向代理_第2张图片
第二步,在nginx进行请求转发的配置(也就是反向代理)
2. 先找到nginx配置文件,并修改配置文件
在这里插入图片描述
3. 需要更改的内容如下
更改前
在这里插入图片描述
更改后
Nginx配置实例-反向代理_第3张图片
注:把localhost改为服务器的IP地址
修改前
在这里插入图片描述
修改后
Nginx配置实例-反向代理_第4张图片
当访问172.16.140.101,80端口,会转发到127.0.0.1,8080端口中去。
4. 最终测试:
到nginx目录,启动nginx
在这里插入图片描述
Nginx配置实例—反向代理实例2
5. 实现效果

使用nginx反向代理,根据访问的路径跳转到不同端口的服务中,nginx监听端口为9001。
访问http://172.16.140.101:9001/edu/ 直接跳转到127.0.0.1:8080
译:当访问127.0.0.1这个路径时,当它有edu,就直接跳转到8080端口
访问http://172.16.140.101:9001/vod/ 直接跳转到127.0.0.1:8081
6. 准备工作
(1) 准备两个tomcat服务器,一个是8080端口,一个是8081端口
到/usr/src/目录创建两个文件夹:tomcat8080 tomcat8081
创建好后,分别在两个文件夹中放入两个tomca
Nginx配置实例-反向代理_第5张图片
注:打开文件直接把压缩包拖进去
把之前那个tomcat先停掉
Nginx配置实例-反向代理_第6张图片
对压缩包解压,解压完成,到解压目录,启动tomcat
Nginx配置实例-反向代理_第7张图片
到tomcat8081目录解压压缩包,修改端口号,进入配置文件,在配置文件中编辑server.xml
Nginx配置实例-反向代理_第8张图片
更改内容如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
启动tomcat
Nginx配置实例-反向代理_第9张图片
到网页上做一下测试,看两个端口是否可以访问
Nginx配置实例-反向代理_第10张图片
Nginx配置实例-反向代理_第11张图片
(2)创建文件夹和测试页面
在XFTP界面进入/usr/src/tomcat8081/apache-tomcat-8.5.23/webapps这个目录,创建edu文件夹,在桌面写一个html文档放进edu文件夹,到网页输入http://172.16.140.101:8080/edu/a.html
在这里插入图片描述
3.具体配置
(1)找到nginx配置文件,进行反向代理配置
在这里插入图片描述
在配置文件里再加一个server规则,或者用之前有的改
改之前:
Nginx配置实例-反向代理_第12张图片
改之后:把#号注释全去掉,以下也是需要增加的配置
Nginx配置实例-反向代理_第13张图片
译:listen 9001 ------监听的端口是9001
server_name 172.16.140.101 ---------本机IP地址
location ~ /vod/ { --------------路径,根据路径转发到不同的目录中去
location里面有个规则,当访问里面有edu,转发到8080端口,有vod,到8081端口。
~:----表示用的是正则表达式
proxy_pass : -------这里可以理解为转发路径
(2)开放对外访问的端口号8080,8081,9001
Nginx配置实例-反向代理_第14张图片
(3)把nginx重新启动
在这里插入图片描述在这里插入图片描述
(4)最终测试
Nginx配置实例-反向代理_第15张图片
Nginx配置实例-反向代理_第16张图片
最后附上location指令说明
该指令用于匹配URL
语法如下:
1 location [ = | ~ | ~
| ^~] uri {
2
3 }
1.=:用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
2.~:用于表示uri包含正则表达式,并且区分大小写。
3.~:用于表示uri包含正则表达式,并且不区分大小写。
4.^~:用于不含正则表达式的uri前,要求nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配。
注意:如果uri包含正则表达式,则必须要有~或者
标识。

List item

你可能感兴趣的:(Nginx配置实例-反向代理)