Nginx 配置实例—反向代理
本文最后更新于:2 年前
实例一
使用 nginx 反向代理,访问 www.123.com 直接跳转到 127.0.0.1:8080。
实现效果
打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到 liunx 系统 tomcat 主页面中。
准备工作
在 liunx 系统安装 tomcat,使用默认端口 8080
将 tomcat 安装文件放到 liunx 系统中,解压后进入 tomcat 的 bin 目录中,使用
./startup.sh
命令启动 tomcat 服务器。对外开放访问的端口
1
2firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd –reload在 windows 系统中通过浏览器访问 tomcat 服务器
过程分析
本地 Windows 浏览器不能直接访问 liunx 系统中 tomcat 8080端口(121.0.0.1:8080),而是访问对外的 80端口(192.168.59.100:80 ),通过 Nginx 服务器转发到内部的 8080 端口,这个过程叫做请求转发。
具体配置
在 windows 系统的 hosts 文件中进行域名和 ip 对应关系的配置
在 nginx 进行请求转发的配置(反向代理配置)
编辑 /usr/local/nginx/conf/nginx.conf 配置文件,修改以下内容:
效果测试
启动 Nginx
1
/usr/local/nginx/sbin/nginx
在浏览器中访问 www.123.com 自动跳转到 liunx 系统 tomcat 主页面中
实例二
实现效果
使用 nginx 反向代理,根据访问的路径跳转到不同端口的服务中。
nginx 监听端口为 9001,
- 访问 http://192.168.59.100:9001/edu/ 直接跳转到 127.0.0.1:8081
- 访问 http://192.168.59.100:9001/vod/ 直接跳转到 127.0.0.1:8082
准备工作
准备两个 tomcat 服务器,一个 8080 端口,一个 8081 端口
创建文件夹和测试页面
在两台 tomcat 里面 webapps 目录中,分别创建名称为 edu 和 vod 的文件夹,并分别在文件夹中创建不同的页面 a.html,用于测试。
对外开放访问的端口
1
2
3
4firewall-cmd --add-port=9001/tcp --permanent
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --add-port=8081/tcp --permanent
firewall-cmd –reload
过程分析
访问 http://192.168.59.100:9001/edu/a.html 直接跳转到 121.43.59.100:8080/edu/a.html
访问 http://192.168.59.100:9001/vod/a.html 直接跳转到 121.43.59.100:8081/vod/a.html
具体配置
找到 nginx 配置文件,进行反向代理配置
1
[root@gaojie ~]# vim /usr/local/nginx/conf/nginx.conf
location 指令说明
该指令用于匹配 URL。
语法如下:- = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
- ~ :用于表示 uri 包含正则表达式,并且区分大小写。
- ~* :用于表示 uri 包含正则表达式,并且不区分大小写。
- ^~ :用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。
效果测试
重启 Nginx
在本地访问 9001 端口不同路径
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!