文
章
目
录
章
目
录
反向代理功能是nginx的一个常用的核心功能,我们经常会需要用到反向代理的配置,下面我们来一起看下几种常用的配置场景。
Nginx目前拥有三个代理模式,分别是基于IP代理、基于域名代理、基于端口代理。
这里我的nginx服务器部署在虚拟机上,其ip为192.168.17.129
实例演示1
实现效果:
这里我们先实现根据访问不同的服务器端口,来代理到不同的站点上。
我们配置nginx.conf
新增如下两个server
配置:
server { listen 81; server_name localhost; location / { proxy_pass http://www.panziye.com; } } server { listen 82; server_name localhost; location / { proxy_pass http://www.baidu.com; } }
当我当浏览器访问192.168.17.129.100:81
就会访问到潘老师的官网,而访问192.168.17.1291.100:82
就会访问到百度首页,这就是基于端口的代理。
演示实例2
实现效果:
使用 Nginx 反向代理,根据访问的路径跳转到不同端口的服务中,Nginx 监听端口为
9001
访问http://192.168.17.129/edu/
直接跳转到 192.168.17.1291:8080
访问http://192.168.17.129/vod/
直接跳转到 192.168.17.129:8081
1)第一步,需要准备两个 tomcat,一个 8080 端口,一个 8081 端口,并准备好测试的页面
2)第二步,修改 nginx 的配置文件,在 http 块中配置 server
server { listen 9001; server_name 192.168.17.129; location ~ /edu/ { proxy_pass http://192.168.17.129:8080 } location ~ /vod/ { proxy_pass http://192.168.17.129:8081 } }
补充:location 指令说明
该指令用于匹配 URL, 语法如下:
location [ = | ~ | ~* | ^~] uri { }
=
:用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求~
:用于表示 uri 包含正则表达式,并且区分大小写~*
:用于表示 uri 包含正则表达式,并且不区分大小写^~
:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求。字符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。
注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识
演示实例3
实现效果:
实现效果:使用 Nginx 反向代理,访问
www.123.com
直接跳转到192.168.17.129:8080
注意:此处如果要想从www.123.com
跳转到本机指定的ip,需要修改本机的hosts
文件。此处略过
配置代码
server { listen 80; server_name 192.168.17.129; location / { root html; index index.html index.htm; proxy_pass http://192.168.17.129:8080 } }
如上配置,Nginx监听 80端口,访问域名为www.123.com
(不加端口号时默认为 80端口),故访问该域名时会跳转到 192.168.17.129:8080
路径上。
此处的意思为:nginx 反向代理服务监听
在location下,同时配置root和proxy_pass选项时,两个选项只会二选一执行
此处不能配置https反向代理
192.168.17.129
的80
端口,如果有请求过来,则转到proxy_pass
配置的对应服务器上,仅此而已。在location下,同时配置root和proxy_pass选项时,两个选项只会二选一执行
此处不能配置https反向代理
教程 Nginx快速入门教程汇总
文章目录第1部分:安装 第2部分:配置功能 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件( […]