Nginx配置实例(反向代理实例二)

1.实现效果

使用nginx反向代理,根据访问的路径跳转到不同端口的服务中,nginx监听端口为9001
访问http://192.168.80.200:9001/edu/直接跳转到127.0.0.1:8080
访问http://192.168.80.200:9001/vod/直接跳转到127.0.0.1:8081

2.准备工作

  • 准备两个tomcat服务器,一个8080端口,一个8081端口
[root@localhost /]# cd /usr/src/
[root@localhost src]# mkdir tomcat8080
[root@localhost src]# mkdir tomcat8081
#将tomact压缩包分别放在两个文件夹内
[root@localhost src]# cd tomcat8080
[root@localhost tomcat8080]# tar -zxvf apache-tomcat-8.5.50.tar.gz 
[root@localhost tomcat8080]# cd apache-tomcat-8.5.50/bin/
[root@localhost bin]# ./startup.sh
[root@localhost bin]# cd /usr/src/tomcat8081
[root@localhost tomcat8081]# tar -zxvf apache-tomcat-8.5.50.tar.gz 
[root@localhost tomcat8081]# cd apache-tomcat-8.5.50
[root@localhost apache-tomcat-8.5.50]# cd conf/
[root@localhost conf]# vi server.xml

修改成以下样子

<Server port="8015" shutdown="SHUTDOWN">
<Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
<Connector port="8019" protocol="AJP/1.3" redirectPort="8443" />
  • 创建文件夹和测试页面
[root@localhost /]# cd /usr/src/tomcat8080/apache-tomcat-8.5.50/webapps/
[root@localhost webapps]# mkdir edu
#创建一个网页(a.html)发放进edu目录下
<h1>8080!!</h1>

测试一下,通过浏览器访问http://192.168.80.200:8080/edu/a.html

[root@localhost /]# cd /usr/src/tomcat8081/apache-tomcat-8.5.50/webapps/
[root@localhost webapps]# mkdir vod
#创建一个网页(a.html)发放进edu目录下
<h1>8081!!</h1>

3.具体配置

  • 找到nginx的配置文件,进行反向代理配置
    新增一个server,server配置如下
    server {
        listen       9001;
        server_name  192.168.80.200;

        location ~ /edu/{
            proxy_pass http://127.0.0.1:8080;
        }

        location ~ /vod/{
            proxy_pass http://127.0.0.1:8081;
        }
        
    }
  • location指令说明
    该指令用于匹配URL。
    语法如下:
location [ = | ~ | ~* | ^~ ] uri {

}
1、= : 用于不含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
2、~ : 用于表示uri包含正则式,并且区分大小写。
3、~* : 用于表示uri包含正则表达式,并且不区分大小写。
4、^~ : 用于不含正则表达式的uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location中的正则uri和请求字符串做匹配。
注意: 如果uri包含正则表达式,则必须要有~或者~*标识。
  • 开放对外访问的端口号 9001、8080、8081
  • 重新加载nginx
[root@localhost sbin]# ./nginx -s reload

4.最终测试

通过浏览器分别访问http://192.168.80.200:9001/edu/a.htmlhttp://192.168.80.200:9001/vod/a.html


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容