Nginx深度优化(二)

  

Nginx作为现在最流行的网络应用程序,对其优化十分重要。通过Nginx初步优化,深度优化Nginx(一)已经可以对Nginx进行大量的优化来满足基本的需要,但是作为一名合格的运维工程师来说,仅仅掌握以上对Nginx进行优化的方法显然是远远不足的,所以就需要本篇博文进一步对Nginx进行优化。

  
  

博文大纲:
一、安装nginx服务器
二,nginx配置优化
(1) nginx运行工作进程个数
(2) nginx事件处理模型
(3)开启高效传输模式
(4)连接超时时间
(5) fastcgi调优
(6)到期缓存调优
(7)防盗链
(8)内核参数优化

     

一、安装nginx服务器

  

获取Nginx软件包

  
 <代码> [root@localhost ~] # yum - y安装pcre-devel zlib-devel openssl-devel//安装nginx依赖
  (root@localhost ~) # useradd - s/sbin/nologin - m nginx//创建nginx用户
  (root@localhost ~) #焦油zxf nginx-1.14.0.tar。广州- c/usr/src
  root@localhost ~ # cd/usr/src/nginx-1.14.0/[root@localhost nginx-1.14.0] # ./configure——prefix=/usr/本地/nginx——用户=nginx \
  ——组=nginx——with-http_dav_module with-http_stub_status_module \
  ——with-http_addition_module with-http_sub_module——with-http_flv_module \
  ——with-http_mp4_module with-pcre——with-http_ssl_module \
  ——with-http_gzip_static_module,,使,,制作安装//对nginx进行编译安装,对源码包进行编译安装时,可以使用。/配置——帮助来获取配置选项详细介绍 
  
  

配置选项解释:

  
      <李>——with-http_dav_module:增加,删除MKCOL:创建集合,复制和移动方法;李   <李>——with-http_stub_status_module:获取Nginx的状态统计信息;李   <李>——with-http_addition_module:作为一个输出过滤器,支持不完全缓冲,分部分相应请求;李   <李>——with-http_sub_module:允许一些其他文本替换Nginx相应中的一些文本;李   <李>——with-http_flv_module:提供支持flv视频文件支持,李   <李>——with-http_mp4_module:提供支持mp4视频文件支持,提供伪流媒体服务端支持,李   <李>——with-http_ssl_module:启用ngx_http_ssl_module;李   
     
 <代码> [root@localhost ~] # ln - s/usr/local/nginx/sbin/nginx/usr/local/sbin//创建符号链接
  (root@localhost ~) # nginx - t//检查nginx配置文件语法
  (root@localhost ~) # nginx//启动nginx  
  
  

对于nginx命令常用的几个选项:

  
      <李> - v:显示版本信息;李   <李> - v:显示版本信息及配置选项参数,李   <李> - t:测试配置文件是否有语法错误;李   <李> - t:测试配置文件并将配置文件显示出来,李   <李> q:在配置期间抑制非错误信息;李   <李> - s(停止,退出,重启,重新加载):向主进程发送信号:停止,退出,重新打开,重新加载;李   <李> - c:设置配置文件;李   <李> - g:从配置文件中设置全局指令,李   
     

二,Nginx配置优化

  
 <代码> [root@localhost ~] # ps ef | grep nginx//列出nginx程序所产生的进程
  根120790年1 0 7 ?就是nginx:主进程nginx
  nginx 120791 120790 0 7 ?就是nginx:工作进程
  根120873 1928 0 22:57分/0就是grep——颜色=汽车nginx//第三条可以忽略,它是因为grep命令所产生的 
  

从显示信息中可以看的出,工作进程是Nginx程序用户,但主人进程是根。其中,主是监控进程,也称为Nginx的主进程;工作进程是工作进程,部分情况还会出现缓存相关进程。

  

关系图如下:
 Nginx深度优化(二)
从图中也可以看出主人是管理员,工作进程才是为用户提供服务的!

  

(1) Nginx运行工作进程个数

  

建议:一般设置CPU的核心或者核心数x2。

  
 <代码> [root@localhost ~] #猫/proc/cpuinfo | grep处理器| wc - l
  1//通过这条命令可以查看到当前服务器的cpu是一个
  # vim/usr/local/nginx/conf/nginx. root@localhost ~conf//编辑Nginx配置文件
  worker_processes 2;//工作进程数,建议是CPU数或者是CPU个数的两倍,最大可以开启8个
  worker_cpu_affinity 01 10;//运行CPU亲和力
  worker_rlimit_nofile 65535;//最多打开的文件个数
  root@localhost ~ # ulimit - n
  1024//可以看出系统默认限制打文件的个数是1024
  文件个数除了nginx配置文件进行限制意外,还需修改文件资源限制文件,如下:
  # vim/etc/security/limits.conf root@localhost ~
  ………………//省略部分内容
  # & lt; domain>& lt; type>& lt; item>& lt; value>
  *软nofile 65535//添加软限制打开文件的个数
  * 65535(硬nofile//添加新限制打开文件的个数
  *软noproc 65535//添加软连接可以打开的进程个数
  * 65535(硬noproc//添加硬限制可以打开的进程个数
  (root@localhost ~) # su -//切换用户即可生效
  上一次登录:三2019年12月4日22:29:45 CST从192.168.1.253pts/0上
  root@localhost ~ # ulimit - n
  65535//可以看出文件个数已经变成了65535年证明修改的文件已经生效
  (root@localhost ~) # nginx - s重载//重新加载nginx服务配置文件
  (root@localhost ~) # ps ef | grep nginx
  根120790年1 0 7 ?就是nginx:主进程nginx
  nginx 121276 120790 0 23:21 ?就是nginx:工作进程
  nginx 121277 120790 0 23:21 ?就是nginx:工作进程
  根121279 121226 0 23:22分/0就是grep——颜色=汽车nginx//由于worker_processes设置为2,可以看出当前已经产生了两个工作进程

Nginx深度优化(二)