企业运维——nginx安装、常规配置、并发优化、平滑升级

目录

一、nginx安装及部署

二、nginx七层负载配置 

三、nginx的一些配置

1、当两个都挂了以后:添加本地backup备份

2、配置权重

3、选择负载均衡算法:IP Hash

4、手动下线,down

四、nginx添加第三方模块stick,扩充调度算法

2、进行优化

 3、修改配置文件进行验证

五、nginx的一些常规配置

1.修改nginx使用用户

2.设置脚本实现nginx开机自启动

六、nginx并发优化

七、nginx的平滑升级


一、nginx安装及部署

进入nginx.org官网,download页面,下载最新的稳定版本,然后解压安装并解决依赖性的问题。

第一步:./configure。。。按照需求选择,在过程中,显示缺什么就安装什么,一般是.devel结尾的,直到没有错误为止。

第二步:make:把c语言源码编译成可执行的二进制程序

注意:必须在源码的解压路径里, 该路径中有makefile文件指导

第三步:make install

创建软连接:方便访问

检测语法,没有错误就可以启动了;

 注意:由于nginx也是使用80端口,所以要在开启nginx前关闭httpd服务!!!

默认访问目录:/usr/local/nginx/html

测试:

二、nginx七层负载配置 

 后端服务器开启apache服务,进行测试

nginx主配置文件添加负载均衡器和反向代理

测试:

三、nginx的一些配置

1、当两个都挂了以后:添加本地backup备份

测试:

2、配置权重

测试:客户端测试,按权重比例分配负载。

3、选择负载均衡算法:IP Hash

 

IP Hash算法:根据客户端ip进行负载均衡,相同客户端IP访问时,会访问到同一客户端。一对一,一个sever对一个IP。

测试:

4、手动下线,down

测试:

四、nginx添加第三方模块stick,扩充调度算法

 sticky模块与Ip_hash都是与负载均衡算法相关,效果相似同一客户端请求访问时会被调度到同一后端服务器,差别是:

1.ip hash,根据客户端的IP,将请求分配到不同的服务器上
2.sticky,根据服务器给客户端浏览器发送的cookie,客户端再次请求时会带上此cookie,nginx会把有此cookie的请求转发到颁发cookie的服务器上。

注意:在一个局域网内有多台主机,这些主机有不同的内网IP,但是当他们发起请求时,却只有一个外网IP,该IP是电信运营商分配在这些内网主机连接的路由器的,如果使用 ip_hash 方式,则Nginx会将请求分配到不同上游服务器,如果使用 sticky 模块,则会把请求分配到颁发cookie的服务器上,实现:内网nat用户的均衡。这是iphash无法做到的。

sticky工作机制:

1.客户端首次发起访问请求,nginx接收后,发现请求头没有cookie,则以轮询方式将请求分发给后端服务器。
2.后端服务器处理完请求,将响应数据返回给nginx。
3.此时nginx生成带route的cookie,返回给客户端。route的值与后端服务器对应,可能是明文,也可能是md5、sha1等Hash值
4.客户端接收请求,并保存带route的cookie。
5.当客户端下一次发送请求时,会带上route,nginx根据接收到的cookie中的route值,转发给对应的后端服务器

cession在服务器端,cookie在浏览器中保存的。所以可以通过浏览器的cookie来实现类似IP_hash负载均衡。但是社区版nginx不支持该算法,需要nginxplus才可以。如果想要使用该算法,需要对当前nginx模块进行扩展。

1.下载拓展包,拓展新模块

2、进行优化

 3、修改配置文件进行验证

 

只能浏览器访问测试

五、nginx的一些常规配置

1.修改nginx使用用户

2.设置脚本实现nginx开机自启动

在这里插入图片描述

在这里插入图片描述

注意更改目录位置,需要全部更改

六、nginx并发优化

1.设置nginx的work进程数,推荐按cpu数目设定,和cpu核心数相同即可。

2.使用linux内核的epoll的I/O复用模型,默认就是,用这个模型可以高效处理异步事件

3.修改每个work可以同时处理的并发连接数为65535

七、nginx的平滑升级

注意保留版本信息,方便看到效果。

 

Guess you like

Origin blog.csdn.net/fei1368293640/article/details/122463756