您的位置:首页 > 运维架构 > Nginx

nginx的相关使用事项

2018-11-29 13:29 381 查看
版权声明:lex https://blog.csdn.net/qq_36258498/article/details/84627679

文章目录

1.nginx中location使用正则表达式

已=开头表示精确匹配
如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。

^~ 开头表示uri以某个常规字符串开头,不是正则匹配
开头表示区分大小写的正则匹配;

~* 开头表示不区分大小写的正则匹配

/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到

2.nginx根据域名不同拦截不同的项目名称

server {
##监听的端口号
listen       80;
###  服务名称
server_name  www.lex.com;
### 匹配项目名称为tomcat_8080开头 #例如www.lex.com/tomcat_8080
location /tomcat_8080/ {
###  配置反向代理
proxy_pass http://127.0.0.1:8080/;
index  index.html index.htm;
}
### 匹配项目名称为tomcat_8081开头 #例如www.lex.com/tomcat_8081
location /tomcat_8081/ {
###  配置反向代理
proxy_pass http://127.0.0.1:8081/;
index  index.html index.htm;
}
}

3.四级负载均衡和六级负载均衡

四级负载均衡主要是基于tcp协议的负载均衡,六级负载均衡主要是基于http的负载均衡

4.负载均衡的作用

负载均衡就是,将所有请求先到负载均衡器,在由负载均衡器采用负载均衡算法(轮训、IP绑定、权重)分发到不同实际的服务器中,这也就是服务器集群,集群的目的 是为了减轻单台服务器压力。

5.负载均衡带来的问题

使用负载均衡后,实际用到的服务器会被集群多台,那么这时候就会产生很多分布式相关问题。

比如:

分布式Session一致性问题

分布式定时任务调度幂等性问题

分布式生成全局订单

6.配置负载均衡上游服务器

###定义上游服务器(需要被nginx真实代理访问的服务器) 默认是轮训机制
upstream  backServer{
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}

server {
listen       80;
server_name  www.itmayiedu.com;
location / {
### 指定上游服务器负载均衡服务器
proxy_pass http://backServer;
index  index.html index.htm;
}
}

7.常见的三种负载均衡算法配置

1.默认为轮询算法,常用于服务器之前的配置相差不多的情况

2.权重算法,常用与服务器配置差距较大的情况,配置低的服务器权重大一些多访问几次,配置低的少访问几次,权重配的少一些

upstream  backServer{
#在需要负载均衡的服务器后面配置权重
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8081 weight=2;
}

server {
listen       80;
server_name  www.itmayiedu.com;
location / {
### 指定上游服务器负载均衡服务器
proxy_pass http://backServer;
index  index.html index.htm;
}
}

3.ip绑定算法, 每个请求按访问IP的哈希结果分配,使来自同一个IP的访客固定访问一台后端服务器,并且可以有效解决动态网页存在的session共享问题。俗称IP绑定。

upstream  backServer{
server 127.0.0.1:8080 ;
server 127.0.0.1:8081 ;
#这一行代表使用ip绑定
ip_hash;
}

server {
listen       80;
server_name  www.itmayiedu.com;
location / {
### 指定上游服务器负载均衡服务器
proxy_pass http://backServer;
index  index.html index.htm;
}
}

8.负载均衡的故障后转移功能

当某个Tomcat服务器出现宕机时,为了不让nginx做负载均衡是一直等待,需要做容错处理,当出现宕机或延迟时自动访问下一台服务器

server {
listen       80;
server_name  www.itmayiedu.com;
location / {
### 指定上游服务器负载均衡服务器
proxy_pass http://backServer;
###nginx与上游服务器(真实访问的服务器)超时时间 后端服务器连接的超时时间_发起握手等候响应超时时间
proxy_connect_timeout 1s;
###nginx发送给上游服务器(真实访问的服务器)超时时间
proxy_send_timeout 1s;
### nginx接受上游服务器(真实访问的服务器)超时时间
proxy_read_timeout 1s;
index  index.html index.htm;
}
}
阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: