Nginx 企业级优化与防盗链

Nginx 企业级优化与防盗链

目录
一、配置 NGINX 隐藏版本号
1、修改源码包
2、修改配置文件
二、修改 NGINX 用户与组
三、配置 NGINX 网页缓存时间
四、实现 NGINX 的日志切割
五、配置 NGINX 实现连接超时
六、更改 NGINX 运行进程数
七、配置 NGINX 实现网页压缩功能
八、配置 NGINX 实现防盗链功能

实验环境:
1、建立资源主机的测试主页
2、建立盗链主机的测试主页
客户机测试:
3、资源主机设置防盗链
客户测试:
九、对 FPM 模块进行参数优化
十、NGINX 为目录添加访问控制
十一、自定义错误页面
十二、自动索引
十三、目录别名功能:
十四、通过 UA 实现手机端和电脑端的分离

实验模拟:不同浏览器访问到不同的页面:
十五、NGINX 平滑升级版本
一、NGINX 平滑升级概述
二、NGINX 平滑升级原理
三、NGINX 平滑升级实战

  1. 查看旧版 nginx 的编译参数
  2. 编译新版本 Nginx 源码包,安装路径需与旧版一致,注意:不要执行 make install
  3. 备份二进制文件,用新版本的替换
  4. 确保配置文件无报错
  5. 确保配置文件无报错
  6. 发送 USR2信号
  7. 发送 WINCH信号
  8. 发送 QUIT信号
  9. 验证 nginx版本号,并访问测试

源代码编译安装 Nginx:
在这里插入图片描述
配置 Nginx 隐藏版本号
在生产环境中,需要隐藏 Nginx 等服务的版本信息,以避免安全风险
在这里插入图片描述
修改源码包
在这里插入图片描述
在这里插入图片描述
修改配置文件 在这里插入图片描述
如果 php 配置文件中配置了 fastcgi_param SERVER_SOFTWARE 选项,则编辑 php-fpm 配 置文件,将fastcgi_param SERVER_SOFTWARE对应值修改为fastcgi_param SERVER_SOFTWARE nginx;

修改 Nginx 用户与组
Nginx 运行时进程需要有用户与组身份的支持,以实现对网站文件读取时进行访问控制。 Nginx 默认使用 nobody 用户账号与组账号,一般也要进行修改。

编译安装时指定
在这里插入图片描述
修改配置文件
在这里插入图片描述
配置 Nginx 网页缓存时间

当 Nginx 将网页数据返回给客户端后,可设置资源在客户端缓存的时间,以方便客户端 在日后进行相同内容的请求时直接返回,以避免重复请求,加快了访问速度,一般针对静态 网页进行设置,对动态网页不用设置缓存时间。可在 Windows 客户端中使用 fiddler 查看网 页缓存时间。
设置方法:可修改配置文件,在 http 段、或 server 段、或者 location 段加入对特定内容的 过期参数。
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
实现 Nginx 的日志切割

在这里插入图片描述
配置 Nginx 实现连接超时

在企业网站中,为了避免同一个客户长时间占用连接,造成服务器资源浪费,可以设置 相应的连接超时参数,实现控制连接访问时间。

keepalived_timeout:设置连接保持超时时间,一般可只设置该参数,默认为 65 秒,可根据 网站的情况设置,或者关闭,可在 http 段、server 段、或者 location 段设置。 client_header_timeout:指定等待客户端发送请求头的超时时间。 client_body_timeout:设置请求体读取超时时间。

注意:若出现超时,会返回 408 报错
在这里插入图片描述

更改 Nginx 运行进程数
在高并发场景,需要启动更多的 nginx 进程以保证快速影响,以处理用户的请求,避免 造成阻塞。 修改配置文件的 worker_processes 参数,一般设置为 CPU 的个数或者核数的 2 倍
在这里插入图片描述
在这里插入图片描述
默认 Nginx 的多个进程可能更多的跑在一颗 CPU 上,可以分配不同的进程给不同的 CPU 处 理,充分利用硬件多核多 CPU。在一台 4 核物理服务器,可以进行下面的配置,将进程进行 分配

在这里插入图片描述
配置 Nginx 实现网页压缩功能

Nginx 的 ngx_http_gzip_module 压缩模块提供了对文件内容压缩的功能,允许 nginx 服 务器将输出内容发送到客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,模块 默认已经安装。
在这里插入图片描述
配置 Nginx 实现防盗链功能
Nginx 防盗链功能也非常强大,在默认情况下只需要进行简单的配置,即可实现防盗处 理

实验环境:
资源主机 www.source.com 192.168.200.101
盗链主机 www.steal.com 192.168.200.102

1、建立资源主机的测试主页
在这里插入图片描述

客户机测试:
在这里插入图片描述
**2、建立盗链主机的测试主页 **
在这里插入图片描述
客户机测试在这里插入图片描述
3、资源主机设置防盗链
配置说明: valid_referers 设置信任网站 none 浏览器中 referer(Referer 是 header 的一部分,当浏览器向 web 服务 器发送请求的时候,一般会带上 Referer,告诉服务器我是从哪个页面链接过来的,服务 器基此可以获得一些信息用于处理)为空的情况,就直接在浏览器访问图片 blocked referrer 不为空的情况,但是值被代理或防火墙删除了,这些值不以 http://或 https://开头
在这里插入图片描述
在这里插入图片描述
第一行:wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv 表示对这些后缀的文件实 行防盗链 第二行:none blocked *.source.com source.com; //不区分大小写 表示 referers 信息中匹配 none blocked *.source.com source.com (*代表任何,任何的 二级域名) if{}里面内容的意思是,如果链接不是来自第二行指定的就强制跳转到 403 错误页面,当 然直接返回 404 也是可以的,也可以是图片。

注意:设置客户机的 hosts 文件

客户测试: 在这里插入图片描述
九、对 FPM 模块进行参数优化
Nginx 的 PHP 解析功能实现如果是交由 FPM(fastcgi 进程管理器)处理的,为了提高 PHP 的处理速度,可对 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, 处理比较慢
在这里插入图片描述
十、Nginx 为目录添加访问控制
用户访问控制:使用 apache 的 htpasswd 来创建密码文件
在这里插入图片描述
客户端地址访问控制:
在这里插入图片描述

十一、自定义错误页面
在这里插入图片描述
十二、自动索引
在这里插入图片描述
十三、目录别名功能:
在这里插入图片描述

十四、通过 UA 实现手机端和电脑端的分离
实现nginx区分pc和手机访问不同的网站,是物理上完全隔离的两套网站(一套移动端、 一套 pc 端),这样带来的好处 pc 端和移动端的内容可以不一样,移动版网站不需要包含特别 多的内容,只要包含必要的文字和较小的图片,这样会更节省流量。有好处当然也就会增加 困难,难题就是你需要维护两套环境,并且需要自动识别出来用户的物理设备并跳转到相应 的网站,当判断错误时用户可以自己手动切换回正确的网站。

有两套网站代码,一套 PC 版放在/usr/local/nginx/html/web,一套移动版放在 /usr/local/nginx/html/mobile。只需要修改 nginx 的配置文件,nginx 通过 UA 来判断是否来自 移动端访问,实现不同的客户端访问不同内容。
在这里插入图片描述
实验模拟:不同浏览器访问到不同的页面:
在这里插入图片描述
在这里插入图片描述
十五、nginx 平滑升级版本
一、nginx 平滑升级概述
随着网站并发访问量越来越高,nginx web 服务器页越来越流行,nginx 版本换代越来越频 繁,1.10.2 版本的 nginx 更新了许多新功能,生产环境中版本升级必然的,但是线上业务不 能停,此时 nginx 的升级就是运维的重要工作了。

二、nginx 平滑升级原理
Nginx 默认工作在多进程模式下,即主进程(master process)启动后完成配置加载和端口绑 定等动作,fork 出指定数量的工作进程(worker process),这些子进程会持有监听端口的文 件描述符(fd),并通过在该描述符上添加监听事件来接受连接(accept)。
信号的接收和处理

Nginx 主进程在启动完成后会进入等待状态,负责响应各类系统消息,如 SIGCHLD、SIGHUP、 SIGUSR2 等。

Nginx 信号简介

主进程支持的信号 TERM, INT: 立刻退出 QUIT: 等待工作进程结束后再退出 KILL: 强制终止进程 HUP: 重新加载配置文件,使用新的配置启动工作进程,并逐步关闭旧进程。 USR1: 重新打开日志文件 USR2: 启动新的主进程,实现热升级 WINCH: 逐步关闭工作进程
工作进程支持的信号
TERM, INT: 立刻退出
QUIT: 等待请求处理结束后再退出
USR1: 重新打开日志文件

三、nginx 平滑升级实战
在这里插入图片描述
1.查看旧版 nginx 的编译参数
在这里插入图片描述
2.编译新版本 Nginx 源码包,安装路径需与旧版一致,注意:
不要执行 make install
在这里插入图片描述
3.备份二进制文件,用新版本的替换
在这里插入图片描述
4.确保配置文件无报错
在这里插入图片描述
5.发送 USR2 信号
向主进程(master)发送 USR2 信号,Nginx 会启动一个新版本的 master 进程和对应工作进 程,和旧版一起处理请求
在这里插入图片描述
在这里插入图片描述
6.发送 WINCH 信号
向旧的 Nginx 主进程(master)发送 WINCH 信号,它会逐步关闭自己的工作进程(主进程不 退出),这时所有请求都会由新版 Nginx 处理
在这里插入图片描述
注意:回滚步骤,发送 HUP 信号 如果这时需要回退继续使用旧版本,可向旧的 Nginx 主进程发送 HUP 信号,它会重新启动 工作进程, 仍使用旧版配置文件。然后可以将新版 Nginx 进程杀死(使用 QUIT、TERM、或 者 KILL
在这里插入图片描述
7.发送 QUIT 信号
升级完毕,可向旧的 Nginx 主进程(master)发送(QUIT、TERM、或者 KILL)信号,使旧的 主进程退出
在这里插入图片描述
8.验证 nginx 版本号,并访问测试
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值