一、隐藏版本号信息

  • 安装软件前修改,源码包中的版本信息
#切换到源码包目录
[root@localhost ~]# cd /usr/src/nginx-1.15.9/
[root@localhost nginx-1.15.9]# vim src/core/nginx.h #修改nginx.h配置文件
...........省略...........
#define nginx_version      1015009
#define NGINX_VERSION      "2.2.2"    #版本号信息
#define NGINX_VER          "bbs" NGINX_VERSION  #软件名称
..........省略............

验证

[root@localhost ~]# curl -I 192.168.200.111
HTTP/1.1 200 OK
Server: bbs/2.2.2     #是已经更改的版本号
Date: Sun, 18 Aug 2019 13:15:44 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Sun, 18 Aug 2019 13:14:28 GMT
Connection: keep-alive
ETag: "5d594f34-264"
Accept-Ranges: bytes
  • 安装后更改版本号
    修改nginx/conf/nginx.conf
#在http模块下加入   server_tokens off;
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
28  server_tokens    off;
如果php配置文件中配置了fastcgi_param SERVER_SOFTWARE选项,则编辑php-fpm配置文件,将fastcgi_param SERVER_SOFTWARE对应值修改为fastcgi_param SERVER_SOFTWARE nginx;

验证

[root@localhost ~]# curl -I 192.168.200.111
HTTP/1.1 200 OK
Server: nginx      #安装后只能隐藏版本号,不能隐藏软件名
Date: Sun, 18 Aug 2019 13:25:25 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Sun, 18 Aug 2019 13:21:44 GMT
Connection: keep-alive
ETag: "5d5950e8-264"
Accept-Ranges: bytes

二、修改nginx用户和组

  • 编译安装是指定
[root@localhost ~]# cd /usr/src/nginx-1.15.9/
[root@localhost nginx-1.15.9]#  ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-http_flv_module --with-http_gzip_static_module&&make && make install
#--user=nginx --group=nginx
  • 安装完后修改
#第一行中添加 user nginx nginx;
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
user  nginx nginx;
worker_processes  1;

三、配置网页缓存时间
设置方法:可修改配置文件,在http段、或server段、或者location段加入对特定内容的过期参数。

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conflocation ~\.(gif|jpg|jpeg|png|bmp|ico|wma|wmv|asf|mp3|mmf|zip|rar|swf|flv)$ {  #设置jpg图片的缓存时间为一天expires 1d;}

抓包测试

四、实现nginx日志切割
注:实现日志切割时要使用到程序pid号

#修改配置文件
[root@localhost logs]# vim /usr/local/nginx/conf/nginx.conf
pid        logs/nginx.pid;  #添加到配置文件全局中
#重新刷新配置文件,出现如下错误
[root@localhost logs]# /usr/local/nginx/sbin/nginx -s reload
nginx: [error] invalid PID number "" in "/usr/local/nginx/logs/nginx.pid"
#表示pid文件并不存在
#杀死nginx进程
[root@localhost logs]# killall -9 nginx
#通过配置文件重新启动进程,会重新创建pid文件
[root@localhost logs]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
[root@localhost logs]# /usr/local/nginx/sbin/nginx -s reload  #刷新配置文件
[root@localhost logs]# ll
total 20
-rw-r--r--. 1 nginx root  1147 Aug 18 09:56 access.log
-rw-r--r--. 1 nginx root 11247 Aug 18 10:41 error.log
-rw-r--r--. 1 root  root     5 Aug 18 10:34 nginx.pid  #已经生成nginx.pid文件

切割日志文件脚本

[root@localhost ~]# vim /opt/cut_nginx_log.sh
#!/bin/bash
#切割nginx日志
logs_url="/usr/local/nginx/logs/"  #log日志存放位置
pid_url="/usr/local/nginx/logs/nginx.pid"  #pid的位置
date_file=$(date -d "-1 day" "+%Y%m%d")  #前一天的时间
[ -d "$logs_url/log_brk" ]|| mkdir -p $logs_url/log_brk   #备份日志的存放位置,没有创建
if [ -f $pid_url ];then #判断pid文件是否存在mv $logs_url/access.log $logs_url/log_brk/access.log.$date_file   #移动access日志文件mv $logs_url/error.log $logs_url/log_brk/error.log.$date_file   #移动error日志文件kill -USR1 $( cat $pid_url )   #重新生成日志文件find $logs_url/log_brk -mtime +30 | xargs rm -fr  #将30天之前的日志文件删除,只保留近30天的
elseecho "没有pid文件,切割失败" >> $logs_url/access.log
fi

将写好的脚本测试完成后加入周期性任务中

[root@localhost ~]# crontab -e0       0       *       *       *       sh /opt/cut_nginx_log.sh

五、Nginx运行进程数
nginx的进程数一般为cup的个数或者核心数的2倍

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
worker_processes  2;  #nginx进程数
worker_cpu_affinity 01 10 ; //为每个进程分配cpu核心
# 1表示使用哪个核心

六、配置nginx实现连接超时
注;出现超时,会返回408报错

 [root@localhost ~]# vim /usr/local/nginx/conf/nginx.confkeepalive_timeout  65; #连接保持时间client_header_timeout 60; #客户端发送头部的超时时间client_body_timeout 60; #主体读取超时时间

七、配置nginx实现网页压缩功能

 [root@localhost ~]# vim /usr/local/nginx/conf/nginx.confgzip  on;    #开启gzip压缩输出gzip_min_length 1k;  #设置允许压缩的页面最小字节gzip_buffers 4 16k;  #申请4个16k的内存作为压缩结果流缓存gzip_http_version 1.1;  #识别http协议版本,默认1.1gzip_comp_level 2;  #设置压缩级别gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss; #压缩类型,对那些网页启用压缩功能#gzip_vary  on;  #让前端服务器缓存 经服务器压缩的gzip页面

八、配置nginx实现防盗链功能

#注:配置文件中只能出现一次~\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$
这些的匹配内容,如果出现配置不可用
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
location ~\.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {expires 1d;  #所以将缓存时间移到这里valid_referers none blocked *.fengling.com fengling.com;if ($invalid_referer){rewrite ^/ http://www.fengling.com/error.txt;#return 404;}}

测试
第一台服务器访问

第二台服务器,盗链第一台服务器图片无法显示

九、nginx为目录添加访问控制
用户访问控制,使用Apache的htpassword来创建密码
首先安装htpssword命令所需要的软件httpd-tools

[root@localhost html]# yum -y install httpd-tools
[root@localhost html]# htpasswd -c /usr/local/nginx/.htpasswd status
New password:
Re-type new password:
Adding password for user status
location ~/status {stub_status on;access_log off;auth_basic "Nginx Status";auth_basic_user_file /usr/local/nginx/.htpasswd;        }allow #开放ipdeny #禁止ip


Active connections 表示当前活跃的连接数,
第三行的三个数字表示Nginx当前总共处理了40个连接,成功创建40次握手,总共处理了125个请求。
Reading表示Nginx读取到客户端Header信息数,
Writing表示Nginx返回给客户端的Header信息数
Waiting表示Nginx已经处理完,正在等候下一次请求指令时的驻留连接数。

十、自定义错误页面

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
error_page   403 404   /40x.html;location = /40x.html {root   html;}

测试

十一、自动索引

location /xiazai {autoindex on;}

测试

十二、目录别名功能

 location /centos {alias /usr/local/nginx/html/xiazai;autoindex on;}

测试

十三、通过UA实现手机端和电脑端的分离
有两套网站代码,一套PC版放在/usr/local/nginx/html/web,一套移动版放在/usr/local/nginx/html/mobile。只需要修改nginx的配置文件,nginx通过UA来判断是否来自移动端访问,实现不同的客户端访问不同内容。

location / {#默认PC端访问内容root /usr/local/nginx/html/web;#如果是手机移动端访问内容if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT-)|(SonyEricsson)|(NEC-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC-)|(SED-)|(EMOL-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" ){root /usr/local/nginx/html/mobile;}
index index.html index.htm;
}

实验模拟:不同浏览器访问到不同的页面:

[root@localhost html]# mkdir firefox msie
[root@localhost html]# echo "hello,firefox" > firefox/index.html
[root@localhost html]# echo "hello,msie" > msie/index.htmllocation / {if ($http_user_agent ~ Chrome){root /usr/local/nginx/html/chrome;}if ($http_user_agent ~ Trident){root /usr/local/nginx/html/msie;}index  index.html index.htm;}

测试


十四、对FPM模块进行参数优化
FPM优化参数:
pm 使用哪种方式启动fpm进程,可以说static和dynamic,前者将产生 固定数量的fpm进程,后者将以动态的方式产生fpm进程
pm.max_children static方式下开启的fpm进程数
pm.start_servers 动态方式下初始的fpm进程数量
pm.min_spare_servers 动态方式下最小的fpm空闲进程数
pm.max_spare_servers 动态方式下最大的fpm空闲进程数

注:以上调整要根据服务器的内存与服务器负载进行调整

示例:
服务器为云服务器,运行了个人论坛,内存为1.5G,fpm进程数为20,内存消耗近1G,处理比较慢

优化参数调整:

# vim /usr/local/php5/etc/php-fpm.conf
pm = dynamic
pm=start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8

nginx企业级优化相关推荐

  1. Web服务器群集——Nginx企业级优化

    Nginx企业级优化 Nginx企业级优化 隐藏版本号 修改用户和组 配置网页缓存时间 日志切割 设置连接超时 更改进程数 配置网页压缩 配置防盗链 FPM参数优化 Nginx企业级优化 nginx. ...

  2. Web服务器Nginx企业级优化

    部署Nginx软件 1)安装支持软件: Nginx的配置及运行需要pcre.zlib等软件包的支持,因此应预先安装这些软件的开发包(devel),以便提供相应的库和头文件,确保Nginx的安装顺利完成 ...

  3. ab测试nginx Nginx性能优化

    转自:https://www.cnblogs.com/nulige/p/9369700.html 1.性能优化概述 在做性能优化前, 我们需要对如下进行考虑 1.当前系统结构瓶颈 观察指标 压力测试 ...

  4. 【整理】Nginx 战斗准备 —— 优化指南

    2019独角兽企业重金招聘Python工程师标准>>> 本文内容参考自< Nginx 战斗准备 -- 优化指南 >. [一句话总结] 本文不是一个全面的微调指南,而是让你 ...

  5. Nginx 性能优化

    Nginx 性能优化有这篇就够了! 1.Nginx运行工作进程数量 Nginx 运行工作进程个数一般设置CPU的核心或者核心数x2.如果不了解cpu的核数,可以top命令之后按1看出来,也可以查看/p ...

  6. Nginx 备战-优化指南

    Nginx 备战-优化指南 作者:Zachary Orr 大多数关于 Nginx 的指南只告诉你那最基本的部分:apt-get 一个包,修改这里和那里的某些行,然后就得到了一个 web 服务器!而在大 ...

  7. 老司机整理对Nginx性能优化

    Nginx性能优化应遵循一个原则:一次只调整一项,调整不理想,将修改还原. Linux参数 Nginx很多功能直接使用操作系统实现,操作系统决定nginx上限. 现代linux内核(2.6+)涵盖了大 ...

  8. Nginx配置优化参考

    Nginx配置优化参考                                                                                      编辑词 ...

  9. Nginx软件优化【转】

    转自 Nginx软件优化 - 惨绿少年 - 博客园 Nginx软件优化 - 惨绿少年 - 博客园 https://www.cnblogs.com/clsn/p/8484559.html 1.1 Ngi ...

  10. 关于nginx性能优化CPU参数worker_cpu_affinity使用说明

    Nginx性能优化CPU参数worker_cpu_affinity使用说明 官方说明:http://wiki.nginx.org/NginxHttpMainModule#worker_cpu_affi ...

最新文章

  1. 电商课题I:集群环境下业务限流
  2. larvare数据库引入php_PHP全栈学习笔记6
  3. Linq之隐式类型、自动属性、初始化器、匿名类
  4. 微小宝公众号排行榜_排行榜 | 山西省高校、高职中专微信公众号周数据排行榜...
  5. python isalnum函数_探究Python中isalnum()方法的使用
  6. 简单的python下载器
  7. 在线蚂蚁文,菊花文生成工具
  8. 《中国人工智能学会通讯》——12.44 分类型数据的定义
  9. 1.阿里云短信验证操作步骤
  10. 牛客 处女座的约会 规律
  11. 常见WA错误总结(待更)
  12. 高质量解读《互联网企业安全高级指南》——目录
  13. killall为什么有时候会找不到进程?
  14. 计算机在语文教学中,计算机技术在语文教学中的运用
  15. C# 操作Word书签(一)插入、删除书签
  16. ArcGIS裁剪带有黑边的影像图两种方法
  17. 58天象反入侵体系建设实践
  18. 【论文阅读】Finetuned Language Models Are Zero-Shot Learners
  19. 电子科大计算机考研820,(电子科大 计算机820)考研经验--by820学长.pdf
  20. 《怪诞行为学》精粹(一)--为什么我们喜欢比较和攀比

热门文章

  1. delphi 水晶按钮
  2. 幕布图像大小与投影仪亮度关系对应表,--怎样选投影机和银幕不用愁了
  3. ttk python_python GUI ttk库 -- Apple的学习笔记
  4. 像《王者荣耀》一样红过
  5. stm32f4有重映射么_stm32f4引脚重映射
  6. ribbon整合eureka时报错Request URI does not contain a valid hostname: xxxx
  7. 略谈“10步天才(10 step)思维模型”
  8. 计算机本地网络给手机使用吗,手机网络也能共享给电脑(台式or笔记本)使用吗?...
  9. C++实现走迷宫算法(1)
  10. 漏洞利用-SSH Banner信息获取