反向代理实例1
1、实现效果
浏览器中输入www.sanmao.com,跳转到www.baidu.com主页面。
2、实现步骤
① 修改host文件(文件地址:C:\Windows\System32\drivers\etc)
IP地址根据实际情况以部署nginx的虚拟机IP地址为参照,使用nginx默认80端口号。
通过配置的本地虚拟域名来进行访问nginx
② 在nginx按照目录的conf目录下找到nginx.conf配置里server块,并添加proxy_pass属性为转发代理的服务地址。
③配置完成后重启nginx,然后用浏览器访问www.sanmao.com,会跳转到http://www.baidu.com。
反向代理实例2
配置多个location,并根据不同的路径匹配规则跳转到不同的服务中去,匹配规则详见
www.sanmao.com/edu 跳转到 192.168.126.106:8080
www.sanmao.com/vod 跳转到 192.168.126.106:8081
修改配置文件server块,添加如下内容
修改完成后重启nginx,用浏览器分别访问测试。
补充location如何使用
/ 通用匹配,任何请求都会匹配到。= 精准匹配,不是以指定模式开头
~ 正则匹配,区分大小写
~* 正则匹配,不区分大小写
^~ 非正则匹配,匹配以指定模式开头的location
location匹配顺序
· 多个正则location直接按书写顺序匹配,成功后就不会继续往后面匹配
· 普通(非正则) location 会一直往下,直到找到匹配度最高的(最大前缀匹配)· 当普通 location 与正则 location 同时存在,如果正则匹配成功 , 则不会再执行普通匹配· 所有类型 location 存在时, “=” 匹配 > “^~” 匹配 > 正则匹配 > 普通(最大前缀匹配)
负载均衡
nginx.conf配置修改,添加负载均衡属性配置,其中一块为负载均衡的服务配置,另外一块是代理转发的配置,如下
配置完成后重启nginx并用浏览器访问测试
负载均衡策略
轮询
默认情况下使用轮询方式,逐一转发,这种方式适用于无状态请求
最少连接调度算法,优先将客户端请求调度到当前连接最少的后端服务器。