如何优化Nginx网页优化,高并发场景,安全优化???

   日期:2020-09-08     浏览:85    评论:0    
核心提示:谢谢观看一,隐藏版本号第一种修改配置文件隐藏步骤一:先看下之前版本号,方便咱们更改后对比!步骤二:更改配置文件nginx.conf,咱们就在http段内添加步骤三:重启nginx服务,验证!第二种;修改Nginx源码文件,指定不显示版本号,需要重新编译;步骤一:到软件包所在位置,修改源码编译文件步骤二:保存,重新编译下步骤三:重启服务nginx验证:二,修改Nginx用户的与组第一种:编译安装是指定用户与组;第二种:修改配置文件更改;步骤一:编辑Nginx.conf步骤二:重启服务Nginx;三,网页缓存

谢谢观看

  • 一,隐藏版本号
    • 第一种修改配置文件隐藏
      • 步骤一:先看下之前版本号,方便咱们更改后对比!
      • 步骤二:更改配置文件nginx.conf,咱们就在http段内添加
      • 步骤三:重启nginx服务,验证!
    • 第二种;修改Nginx源码文件,指定不显示版本号,需要重新编译;
      • 步骤一:到软件包所在位置,修改源码编译文件
      • 步骤二:保存,重新编译下
      • 步骤三:重启服务nginx验证:
  • 二,修改Nginx用户的与组
    • 第一种:编译安装是指定用户与组;
    • 第二种:修改配置文件更改;
      • 步骤一:编辑Nginx.conf
      • 步骤二:重启服务Nginx;
  • 三,网页缓存时间
      • 步骤一:在nginx.conf配置文件内,在段内(**http,server,location** ),加入特定内容的过期参数
      • 步骤二:重启服务nginx 验证
  • 四,实现Nginx的日志切割;
  • 五,Nginx的连接保持;
      • 步骤一:在nginx.conf配置文件内;
      • 步骤二:重启服务验证
  • 六,(高并发应用场景)更改Nginx运行进程数
      • 步骤一:查看当前cpu核数2倍
      • 步骤二:修改配置文件:
      • 步骤三:重启服务,查看进程
  • 七,Nginx网页压缩功能
      • 步骤一:修改配置文件,开启gizp模块;
      • 步骤二:重启服务验证;
  • 八,防盗链
      • 步骤一:准备测试防盗图片,index.html添加图片;
      • 步骤二:准备盗链主机
      • 步骤三:验证测试
      • 步骤四:在源主机nginx.confi配置文件内做防盗链
      • 步骤五:验证防盗
  • 九,对FPM参数模块进行优化
      • 9.1参数优化1
      • 9.2参数优化2
      • 9.3操作

一,隐藏版本号

第一种修改配置文件隐藏

步骤一:先看下之前版本号,方便咱们更改后对比!

curl -I httpd://127.0.0.1

步骤二:更改配置文件nginx.conf,咱们就在http段内添加

vi /usr/local/nginx/conf/nginx.conf

步骤三:重启nginx服务,验证!

systemctl restart nginx
curl -I http://127.0.0.1

第二种;修改Nginx源码文件,指定不显示版本号,需要重新编译;

步骤一:到软件包所在位置,修改源码编译文件

cd /opt/nginx-1.15.9

vi src/core/nginx.h #13,14行

步骤二:保存,重新编译下

./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

make && make install

步骤三:重启服务nginx验证:

systemctl restart nginx

curl -I http://127.0.0.1

二,修改Nginx用户的与组

  • Nginx默认使用的nobody用户账号与组账号;(是不安全的)
  • 运行时进程需要有用户与组的支持,以实现对网站文件读取时进行访问控制
  • 修改的方法两种:
    1.编译暗转时指定用户与组;
    2.修改配置文件指定用户与组;

第一种:编译安装是指定用户与组;

说明:
1.之前咱们nginx服务搭建的时候创建了程序用户nginx;
2.编译安装的时候咱们也已经指定了;

cd /opt/nginx-1.15.9

./configure  \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make && make install  

说明:
--user=nginx \          #指定用户
--group=nginx \        #指定组账户

第二种:修改配置文件更改;

步骤一:编辑Nginx.conf

vi /usr/local/nginx/conf/nginx.conf

步骤二:重启服务Nginx;

systemctl restart nginx
ps aux|grep nginx #查看进程

三,网页缓存时间

  • 避免重复请求,加快访问速度;
  • 一般针对静态网页设置,对动态网页不设置缓存时间;

步骤一:在nginx.conf配置文件内,在段内(http,server,location ),加入特定内容的过期参数

说明:以图片缓存为例

vi /usr/local/nginx/conf/nginx.conf

步骤二:重启服务nginx 验证

重启
验证
输入:20.0.0.25/b.jpg

四,实现Nginx的日志切割;

  • Nginx运行时间的不断增加,日志也会增加。为了方便掌握Nginx运行状态,需要时刻关注日志文件;
  • 定期进行日志文件的切割;
  • 通过脚本,linux的计划性任务周期性的进行日志切割;

1.shell脚本:


vi   /opt/fenge.sh


#!/bin/bash
# Filename: fenge.sh
d=$(date -d "-1 day" "+%Y%m%d")
logs_path="/var/log/nginx"
pid_path="/usr/local/nginx/logs/nginx.pid"
[ -d $logs_path ] || mkdir -p $logs_path
mv /usr/local/nginx/logs/access.log ${logs_path}/test.com-access.log-$d
kill -USR1 $(cat $pid_path)
find $logs_path -mtime +30 |xargs rm -rf



chmod +x /opt/fenge.sh

2.在计划性任务内添加任务

crontab  -e    


30 1 *  *   *   /opt/fenge.sh

最好重启下计划任务
systemctl  restart crond
systemctl  enable  crond 

五,Nginx的连接保持;

  • 避免同一客户端长时间占用连接,造成资源浪费
  • Keepalive_timeout #设置保持连接从超时时间,默认65秒
    Client_header_timeout #指定等待客户端发送请求头的超时时间
    Client_body_timeout #设置请求体读超时时间

步骤一:在nginx.conf配置文件内;

vi /usr/local/nginx/conf/nginx.conf

  • Keepalive_timeout 65 180; #设置保持连接从超时时间,默认65秒,
    client_header_timeout 80; #指定等待客户端发送请求头的超时时间80秒
    client_body_timeout 80; #设置请求体读超时时间80秒

步骤二:重启服务验证

输入:20.0.0.25

六,(高并发应用场景)更改Nginx运行进程数

  • 在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞;
  • 更改进程的配置方法
    修改配置文件
    修改进程配置参数

说明:

  • 修改配置文件内的参数
    一般设为cpu的个数或者核数;
    在高并发的情况下可设置为cpu个数或者核数的2倍’!
  • 增加进程数,可减少了系统的开销,提升了服务速度,

步骤一:查看当前cpu核数2倍

(当前配置是双核双线程的)
cat /proc/cpuinfo |grep -c physical

8

步骤二:修改配置文件:

vi /usr/local/nginx/conf/nginx.conf

worker_processes 8;

步骤三:重启服务,查看进程

systemtl restart nginx

ps aux |grep nginx

七,Nginx网页压缩功能

  • Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能
  • 允许Nginx服务器将输出内容在发送客户端之前进行压缩,
  • 节约网站带宽,提升用户的访问体验,默认已经安装模块了;

步骤一:修改配置文件,开启gizp模块;

在gzip on;去掉#号,下添加:

gzip  on;
gzip_buffers 4 64k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_min_length 1k;
gzip_vary on;
gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss;

注释:
1.开启gizp 压缩
2.表示申请4个单位为16k的内存作为压缩结果流缓存,默认值是申请与原始数据大小相同的内存空间
3.用于设置识别http协议版本,默认是1.1
4.用来指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,处理速度慢
5.用于设置允许压缩的最小字节数;
6.选项可以让前端的缓存服务器缓存经过gzip压缩的页面
7.压缩类型,对那些网页文档启用压缩功能;

步骤二:重启服务验证;

重启服务

抓包验证:
输入:20.0.0.25/b.jpg

说明:
上图抓包可看出,gzip模块一开始,将1033大小的文件,压缩了一半多604!!
节约了网络带宽和浏览体验;


八,防盗链

  • 在企业网站服务中,一般咱们配置防盗链功能,避免网站内容被非法盗用,造成各方面的损失

咱们模拟一下盗链
源主机: www.as.top 20.0.0.25
盗链主机: www.hgg.top 20.0.0.26

(咱们用图片做一下防盗!!)

步骤一:准备测试防盗图片,index.html添加图片;

vi /usr/local/nginx/html/index.html
在末尾合适位置添加图片

<img src="./b.jpg" />

验证:

步骤二:准备盗链主机

1.在盗链主机做主机映射

vi /etc/hosts

20.0.0.25 www.as.top

2.修改配置文件index.html

vi  /usr/local/httpd/htdocs/index.html

<!DOCTYPE html>
<html>
<head>
<p><em>我要开始盗图了</em></p>
<img src="http://www.as.top/b.jpg" />
</body>
</html>

保存

步骤三:验证测试

输入盗链主机ip登录网站:20.0.0.26/index.html

步骤四:在源主机nginx.confi配置文件内做防盗链

         vi   /usr/local/nginx/conf/nginx.conf                 #在server段内,添加

         location ~* \.(gif|jpg|swf)$ {
            valid_referers none blocked *.as.top as.top;
            if ($invalid_referer) {
               rewrite ^/ http://www.hgg.top/c.jpg;
        }
}

说明:盗链后的图片  咱们指定的是rewrite 盗链主机下的c.jpg图片,咱们可以随意指定的!!!
     这样就类似与两边互盗的感觉了,源主机又盗的盗链主机的c.jpg图片
     ....可能会有点绕,仔细屡屡就明白了
     

步骤五:验证防盗

1.首先咱们需要做下真机的映射,将两个主机映射添加hosts文件里

2.再次登录验证,发现图片改变,但是图片连接地址是没有改变的,防盗成功!!

说明:(图片无意冒犯…随手弄的)
不太懂的朋友么可能没明白,为什么就变成了“横眉冷对千夫指了呢”??

  • 回看步骤四的说明…,

九,对FPM参数模块进行优化

9.1参数优化1

■Nginx的PHP解析功能实现如果是交由FPM处理的,为
了提高PHP的处理速度,可对FPM模块进行参数的调整
■根据服务器的内存与服务负载,调整FPM模块参数
■启动fpm进程方式,通过pm参数指定
●static:将产生固定数量的fpm进程
D
●dynamic:将以动态的方式产生fpm进程

9.2参数优化2

■FPM优化参数
●Static的方式的参数
◆pm.max_ children: 指定启动的进程数量
●Dynamic方式的参数
pm.max_ children: 指定启动进程数的最大值
◆pm.start_ servers: 动态方式下初始的fprg进程数
◆pm.min_ spare_ servers: 动态方式下最小的fpm空闭进程数
◆pm.max_ spare_ servers: 动态方式下最大的fpm空闭进程数

pm=dynamic
pm.max_ _children=20
pm.start_ servers = 5
pm.min_ spare_ servers = 2 
pm.min_ spare_ servers= 8
FPM启动时有5个进程,最小空闲2个进程,最大空闲8个进程,最多可以有20个进程存在

9.3操作

cd  /usr/local/php/etc/php-fpm.d
vi www.conf

pm=dynamic
pm.max_ _children=20
pm.start_ servers = 5
pm.min_ spare_ servers = 2 
pm.min_ spare_ servers= 8
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服