nginx配置反向代理

1:配置实例1, 反向代理

1:实现效果
(1)打开浏览器,在浏览器地址栏中输入www.123.com 跳转到linux系统tomcat主页面中
2:在linux中,安装tomcat,使用默认的端口号:8080
(1)下载tomcat,然后通过Xftp将tomcat传输到上面
(2)进行解压:

tar -xvf apache-tamcat-7.0.70.tar.gz

(3)进行tomcat的bin进行启动
在bin中,找到startup.sh 进行启动
nginx配置反向代理_第1张图片
启动完毕之后,进行日志查看启动情况
nginx配置反向代理_第2张图片
(4)通过端口进行访问
1)对外开放访问的端口

 firewall-cmd --add-port=8080/tcp --permanent 

2)重启防火墙

firewall-cmd --reload

3)查看开放的端口号

firewall-cmd --list-all 

nginx配置反向代理_第3张图片
验证:根据ip+刚刚开放的端口,进行访问tomcat
nginx配置反向代理_第4张图片
(5)在nginx.conf进行反向代理配置

nginx配置反向代理_第5张图片
1).在host中,配置(ip地址 域名)
nginx配置反向代理_第6张图片
访问端口进行测试
nginx配置反向代理_第7张图片
2)在nginx中 做反向代理的配置
找到ngxin.conf配置文件,修改配置端口,实现方向代理
nginx配置反向代理_第8张图片
3)启动nginx
nginx配置反向代理_第9张图片

反向代理实例2:

nginx配置反向代理_第10张图片
开启两台tomcat
第一:把之前开启的tomcat停止
1:ps -ef grep tomcat(查找tomcat进程)
2:杀死进行 kill -9 端口号
3:tar -vxf tomcat名称 进行解压
4:进入tomcat的bin中进行命令.startup.sh启动

开启第二台:
一样的解压,进入配置文件server.xml
nginx配置反向代理_第11张图片
nginx配置反向代理_第12张图片
shutdown改成8015
nginx配置反向代理_第13张图片
改成8081
nginx配置反向代理_第14张图片
改成8019
nginx配置反向代理_第15张图片

查看是否修改成功,然后启动
nginx配置反向代理_第16张图片
以上,完成了两台tomcat的准备工作,可以简单访问测试
nginx配置反向代理_第17张图片
第二步,进行简单的测试,新建两页页面,分别代表edu和vod(注意路径)
nginx配置反向代理_第18张图片
访问测试
nginx配置反向代理_第19张图片
一样的道理得到8081页面
第三步:进行反向代理的配置
1:进入nginx.conf文件,进行配置
在这里插入图片描述
2:添加一个server配置

其中“~”是一个正则表达式,表明有edu或者vod的,都转发到以下对应的路径
nginx配置反向代理_第20张图片
2:做完以上,开放对应的端口号( firewalld的操作命令)
nginx配置反向代理_第21张图片
进行nginx的重新启动 ,根据配置访问端口
nginx配置反向代理_第22张图片

location的常使用表达式

语法:location [=|||^~|@] /uri/ { … }
这个参数根据URI的不同需求来进行配置,可以使用字符串与正则表达式匹配,如果要使用正则表达式,你必须指定下列前缀:
1、~
不区分大小写。
2、~ 区分大小写。
要确定该指令匹配特定的查询,程序将首先对字符串进行匹配,字符串匹配将作为查询的开始,最确切的匹配将被使用。然后,正则表达式的匹配查询开始,匹配查询的第一个正则表达式找到后会停止搜索,如果没有找到正则表达式,将使用字符串的搜索结果。
在一些操作系统,如Mac OS X和Cygwin,字符串将通过不区分大小写的方式完成匹配(0.7.7),但是,比较仅限于单字节的语言环境。
正则表达式可以包含捕获(0.7.40),并用于其它指令中。
可以使用“^~”标记禁止在字符串匹配后检查正则表达式,如果最确切的匹配location有这个标记,那么正则表达式不会被检查。
使用“=”标记可以在URI和location之间定义精确的匹配,在精确匹配完成后并不进行额外的搜索,例如有请求“/”发生,则可以使用“location = /”来加速这个处理。
即使没有“=”和“^~”标记,精确的匹配location在找到后同样会停止查询。
下面是各种查询方式的总结:
1、前缀“=”表示精确匹配查询,如果找到,立即停止查询。
2、指令仍然使用标准字符串,如果匹配使用“^~”前缀,停止查询。
3、正则表达式按照他们在配置文件中定义的顺序。
4、如果第三条产生一个匹配,这个匹配将被使用,否则将使用第二条的匹配。

location  = / {
  # 只匹配 / 的查询.
  [ configuration A ]
}
location  / {
  # 匹配任何以 / 开始的查询,但是正则表达式与一些较长的字符串将被首先匹配。
  [ configuration B ]
}
location ^~ /images/ {
  # 匹配任何以 /images/ 开始的查询并且停止搜索,不检查正则表达式。
  [ configuration C ]
}
location ~* \.(gif|jpg|jpeg)$ {
  # 匹配任何以gif, jpg, or jpeg结尾的文件,但是所有 /images/ 目录的请求将在Configuration C中处理。
  [ configuration D ]
}
各请求的处理如下例:
·/ -> configuration A 
·/documents/document.html -> configuration B 
·/images/1.gif -> configuration C 
·/documents/1.jpg -> configuration D 
注意你可以以任何顺序定义这4个配置并且匹配结果是相同的,但当使用嵌套的location结构时可能会将配置文件变的复杂并且产生一些比较意外的结果。
标记“@”指定一个命名的location,这种location并不会在正常请求中执行,它们仅使用在内部重定向请求中

2:配置实例2:负载均衡

1:概念
nginx配置反向代理_第23张图片
2:实现效果
(1)浏览器中输入地址192.168.17.129/edu/a.html,负载均衡的效果,平均分到8080和8081端口中
(2)准备工作
准备两台tomcat,一台8080,一台8081
在两台tamcat的webapps目录中,创建名称是edu文件夹,在edu中,创建页面a.html,用于测试
(3)启动进行测试
在这里插入图片描述
(4)在nginx的配置文件中,进行负载均衡的配置

nginx配置反向代理_第24张图片
负载均衡的策略:
1.轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、指定权重

指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。

3、IP绑定 ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

4、fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

5、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

3:配置实例3:动静分离(一般会对动态资源做负载均衡,静态资源做代理)

更加准确的意义是,动态请求与静态请求分离,动态请求通过反向代理,请求到linux下的tomcat,通过tomcat去访问数据库,获取到数据
静态求情通过ngxin直接转发到对应的请求页面
nginx配置反向代理_第25张图片

在nginx中配置静态资源访问路径,如下图,在root(目录)(data)下的www文件中,查看静态资源,
autoindex是列出data文件中,所有文件
nginx配置反向代理_第26张图片
nginx配置反向代理_第27张图片
输入访问地址测试
nginx配置反向代理_第28张图片

nginx配置反向代理_第29张图片

4:高可用

基于nginx可能宕机,因此配置成高可用结果
nginx配置反向代理_第30张图片
通过keepalived的脚本方式,检测是否还活着,活着继续访问,宕机就切换到备份服务器(通过虚拟ip)
nginx配置反向代理_第31张图片
1:两台nginx服务器
2:keepalived
3:虚拟的ip

准备工作

1:两台虚拟机192.168.17.129 第二台 192.168.17.131
2:在两台服务器上都安装上nginx软件
3:在两台服务器中,安装keepalived
方法一:yum 方式
yum 安装

  • 安装依赖包
 yum install -y curl gcc openssl-devel libnl3-devel net-snmp-devel
  • yum安装软件
 yum install keepalived  -y 
  • 初始化及启动
systemctl start keepalived.service    //启动 keepalived
systemctl enable keepalived  //加入开机启动 keepalived
systemctl restart keepalived  //重新启动 keepalived
systemctl status keepalived   //查看 keepalived 状态

查看是否安装完成
rpm -q -a keepalived
nginx配置反向代理_第32张图片

找到 etc中的 keepalived文件,打开keepalived.conf文件进行配置

完成高可用配置(主从配置)

1:修改etc/keepalived/keepalived.conf中的文件

nginx配置反向代理_第33张图片
nginx配置反向代理_第34张图片
2:在usr/local/src添加检测脚本
nginx配置反向代理_第35张图片
3:把两台服务器上的nginx和keepalived启动起来
先进行nginx的启动
nginx配置反向代理_第36张图片

4:进行测试
nginx配置反向代理_第37张图片
nginx配置反向代理_第38张图片
将主服务器停止,继续使用虚拟ip访问,查看是否可以正常访问到从机(停掉就直接刷新页面)
nginx配置反向代理_第39张图片

你可能感兴趣的:(nginx)