目录:

一、隐藏版本号

二、修改用户与组

三、缓存时间

四、日志切割

五、连接超时

六、更改进程数

七、配置网页压缩

一、隐藏版本号

  • 可以使用 Fiddler 工具抓取数据包,查看 Nginx版本
  • 也可以在 CentOS 中使用命令 curl -I http://192.168.0.102 显示响应报文首部信息
curl -I http://192.168.80.10

方法一:修改配置文件方式

1 vim /usr/local/nginx/conf/nginx.conf
2 http {
3 include mime.types;
4 default_type application/octet-stream;
5 server_tokens off; #添加,关闭版本号
6 ......
7 }
systemctl restart nginx
curl -I http://192.168.80.10

方法二:修改源码文件,重新编译安装

 1 vim /opt/nginx-1.12.0/src/core/nginx.h
2 #define NGINX_VERSION "1.1.1" #修改版本号
3 #define NGINX_VER "IIS" NGINX_VERSION #修改服务器类型
4 cd /opt/nginx-1.12.0/
5 ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module
6 make && make install
7
8 vim /usr/local/nginx/conf/nginx.conf
9 http {
10 include mime.types;
11 default_type application/octet-stream;
12 server_tokens on;
13 ......
14 }
15
16 systemctl restart nginx
17 curl -I http://192.168.80.10

二、修改用户与组

1 vim /usr/local/nginx/conf/nginx.conf
2 user nginx nginx; #取消注释,修改用户为 nginx ,组为 nginx
3
4 systemctl restart nginx
5
6 ps aux | grep nginx

三、缓存时间

 1 vim /usr/local/nginx/conf/nginx.conf
2 http {
3 ......
4 server {
5 ......
6 location / {
7 root html;
8 index index.html index.htm;
9 }
10
11 location ~ \.(gif|jpg|jepg|png|bmp|ico)$ { #加入新的 location,以图片作为缓存对象
12 root html;
13 expires 1d; #指定缓存时间,1天
14 }
15 ......
16 }
17 }
18
19 systemctl restart nginx
http://192.168.80.10/game.jpg
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他
访问 http://192.168.80.10 ,双击200响应消息查看响应头中包含 Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。

四、日志切割

 1 vi /opt/fenge.sh
2 #!/bin/bash
3 # Filename: fenge.sh
4 d=$(date -d "-1 day" "+%Y%m%d") #显示前一天的时间
5 logs_path="/var/log/nginx"
6 pid_path="/usr/local/nginx/logs/nginx.pid"
7 [ -d $logs_path ] || mkdir -p $logs_path #创建日志文件目录
8 mv /usr/local/nginx/logs/access.log ${logs_path}/kgc.com-access.log-$d #移动并重命名日志文件
9 kill -USR1 $(cat $pid_path) #重建新日志文件
10 find $logs_path -mtime +30 -exec rm -rf {} \; #删除30天之前的日志文件
11 #find $logs_path -mtime +30 |xargs rm -rf
12
13 chmod +x /opt/fenge.sh
14 /opt/fenge.sh
15 ls /var/log/nginx
16 ls /usr/local/nginx/logs/access.log
17
18 crontab -e
19 0 1 * * * /opt/fenge.sh

五、连接超时

  • HTTP有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状态。若接收到来自客户端的其它请求,服务端会利用这个未被关闭的连接,而不需要再建立一个连接
  • KeepAlive 在一段时间内保持打开状态,它们会在这段时间内占用资源。占用过多就会影响性能
 1 vim /usr/local/nginx/conf/nginx.conf
2 http {
3 ......
4 keepalive_timeout 65 180;
5 client_header_timeout 80;
6 client_body_timeout 80;
7 ......
8 }
9
10 systemctl restart nginx
1 keepalive_timeout
2 指定KeepAlive的超时时间(timeout)。指定每个TCP连接最多可以保持多长时间,服务器将会在这个时间后关闭连接。 Nginx的默认值是65秒,有些浏览器最多只保持 60 秒,所以可以设定为 60 秒。若将它设置为0,就禁止了keepalive 连接。
3 第二个参数(可选的)指定了在响应头Keep-Alive:timeout=time中的time值。这个头能够让一些浏览器主动关闭连接,这样服务器就不必去关闭连接了。没有这个参数,Nginx 不会发送 Keep-Alive 响应头。
4
5 client_header_timeout
6 客户端向服务端发送一个完整的 request header 的超时时间。如果客户端在指定时间内没有发送一个完整的 request header,Nginx 返回 HTTP 408(Request Timed Out)。
7
8 client_body_timeout
9 指定客户端与服务端建立连接后发送 request body 的超时时间。如果客户端在指定时间内没有发送任何内容,Nginx 返回 HTTP 408(Request Timed Out)。

六、更改进程数

1 cat /proc/cpuinfo | grep -c "physical id"    #查看cpu核数
2 ps aux | grep nginx #查看nginx主进程中包含几个子进程
3
4 vim /usr/local/nginx/conf/nginx.conf
5 worker_processes 2; #修改为核数相同或者2倍
6 worker_cpu_affinity 01 10; #设置每个进程由不同cpu处理,进程数配为4时0001 0010 0100 1000
7
8 systemctl restart nginx

七、配置网页压缩

  • Nginx的ngx_http_gzip_module压 缩模块提供对文件内容压缩的功能
  • 允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装
  • 可在配置文件中加入相应的压缩功能参数对压缩性能进行优化
 1 vim /usr/local/nginx/conf/nginx.conf
2 http {
3 ......
4 gzip on; #取消注释,开启gzip压缩功能
5 gzip_min_length 1k; #最小压缩文件大小
6 gzip_buffers 4 16k; #压缩缓冲区,大小为4个16k缓冲区
7 gzip_http_version 1.1; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
8 gzip_comp_level 6; #压缩比率
9 gzip_vary on; #支持前端缓存服务器存储压缩页面
10 gzip_types text/plain text/javascript application/x-javascript text/css text/xml application/xml application/xml+rss image/jpg image/jpeg image/png image/gif application/x-httpd-php application/javascript application/json; #压缩类型,表示哪些网页文档启用压缩功能
11 ......
12 }
1 cd /usr/local/nginx/html
2 先将game.jpg文件传到/usr/local/nginx/html目录下
3 vim index.html
4 ......
5 <img src="game.jpg"/> #网页中插入图片
6 </body>
7 </html>
8
9 systemctl restart nginx
在Linux系统中,打开火狐浏览器,右击点查看元素
选择 网络 ---> 选择 HTML、WS、其他
访问 http://192.168.80.10 ,双击200响应消息查看响应头中包含 Content-Encoding: gzip

八、配置防盗链

 1 vim /usr/local/nginx/conf/nginx.conf
2 http {
3 ......
4 server {
5 ......
6 location ~*\.(jpg|gif|swf)$ {
7 valid_referers *.kgc.com kgc.com;
8 if ( $invalid_referer ) {
9 rewrite ^/ http://www.kgc.com/error.png;
10 #return 403;
11 }
12 }
13 ......
14 }
15 }
1 ~* \.(jpg|gif|swf)$ :这段正则表达式表示匹配不区分大小写,以.jpg 或.gif 或.swf 结尾的文件;
2
3 valid_referers :设置信任的网站,可以正常使用图片;
4
5 后面的网址或者域名 :referer 中包含相关字符串的网址;
6
7 if语句:如果链接的来源域名不在valid_referers所列出的列表中,$invalid_referer为1,则执行后面的操作,即进行重写或返回 403 页面。
 1 网页准备:
2 Web源主机(192.168.80.10)配置:
3 cd /usr/local/nginx/html
4 将game.jpg、error.png文件传到/usr/local/nginx/html目录下
5 vim index.html
6 ......
7 <img src="game.jpg"/>
8 </body>
9 </html>
10
11 echo "192.168.80.10 www.kgc.com" >> /etc/hosts
12 echo "192.168.80.11 www.benet.com" >> /etc/hosts
13
14 盗链网站主机(192.168.80.11):
15 cd /usr/local/nginx/html
16 vim index.html
17 ......
18 <img src="http://www.kgc.com/game.jpg"/>
19 </body>
20 </html>
21
22 echo "192.168.80.10 www.kgc.com" >> /etc/hosts
23 echo "192.168.80.11 www.benet.com" >> /etc/hosts
24
25 在盗图网站主机上进行浏览器验证
26 http://www.benet.com

web源主机配置

盗链主机网站配置

  

  

  

  

Nginx优化与防盗链的更多相关文章

  1. 16.Nginx优化与防盗链

    Nginx优化与防盗链 目录 Nginx优化与防盗链 隐藏版本号 修改用户与组 缓存时间 日志切割 小知识 连接超时 更改进程数 配置网页压缩 配置防盗链 配置防盗链 隐藏版本号 可以使用 Fiddl ...

  2. Nginx的优化与防盗链

    Nginx的优化与防盗链 1.隐藏版本号 2.修改用户与组 3.缓存时间 4.日志切割 5.连接超时 6.更改进程数 7.配置网页压缩 8.配置防盗链 9.fpm参数优化 1.隐藏版本号: 可以使用 ...

  3. nginx的优化和防盗链

    nginx的优化和防盗链 目录 nginx的优化和防盗链 一.nginx的优化 1. 隐藏版本号 (1)隐藏版本号的原因 (2)查看版本号的方法 (3)隐藏方法一:修改配置文件 (4)隐藏方法二:修改 ...

  4. nginx secure_link下载防盗链

    下载服务器上有众多的软件资源, 可是很多来源不是本站,是迅雷.flashget, 源源不断的带宽,防盗链绝对是当务之急. 使用来源判断根本不靠谱,只能防止一些小白站点的盗链,迅雷之类的下载工具完全无效 ...

  5. nginx如何设置防盗链

    关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底的防盗链! 一般,我们做好防盗链之后其他网站盗链的本站图片就会全部失效无法显示,但是您如果通 ...

  6. nginx服务器图片防盗链的方法

    nginx服务器图片防盗链的方法<pre> location ~* \.(gif|jpg|png|jpeg)$ { expires 30d; valid_referers *.shuche ...

  7. 【转】nginx如何设置防盗链

    转自博客园作者:howhy,文章地址:nginx如何设置防盗链.大佬写的甚好,在此备份一下 关于nginx防盗链的方法网上有很多教程,都可以用,但是我发现很多教程并不完整,所做的防盗链并不是真正的彻底 ...

  8. Nginx 十大优化 与 防盗链

    Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,Nginx,它的发音为“engine X”,是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Ngin ...

  9. nginx配置图片防盗链

    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${ expires 30d; access_log off; valid_referers none blocked ...

随机推荐

  1. 在阿里云上单机部署k8s1.18

    系统:CentOS Linux release 8.1.1911 配置主机名 [root@iZwz9e3t4tj14jzewdtvj8Z ~]# hostnamectl set-hostname la ...

  2. JavaScript实现,判断一个点是否在多边形内(简直nice,希望能帮到你)

    //定义点的结构体 function point(){ this.x=0; this.y=0; } //计算一个点是否在多边形里,参数:点,多边形数组 function PointInPoly(pt, ...

  3. vulnhub靶机-XXE Lab 1

    目录 信息收集 漏洞利用 信息收集 扫描目标主机,ip为192.168.88.154 nmap扫描结果 存在robots.txt文件.直接访问其中的admin.php显示404,加一层目录访问/xxe ...

  4. silky微服务简介

    代理主机 silky微服务定义了三种类型的代理主机,开发者可以根据需要选择合适的silky代理主机托管微服务应用.代理主机定义了一个Startup模块,该模块给出了使用该种类型主机所必须依赖的模块. ...

  5. .net core 响应的json数据驼峰显示问题。

    在.net core webapi中,默认响应的json数据是以驼峰显示的,即首字母小写的方式.如果让其正常显示,只需要在全局配置即可.代码如下图: 配置之后,响应数据就不会再以驼峰的形式展示了.而是 ...

  6. 超详细 Java 15 新功能介绍

    点赞再看,动力无限.微信搜「程序猿阿朗 」,认认真真写文章. 本文 Github.com/niumoo/JavaNotes 和 未读代码博客 已经收录,有很多知识点和系列文章. Java 15 在 2 ...

  7. SQL 练习28

    查询平均成绩大于等于 85 的所有学生的学号.姓名和平均成绩 SELECT Student.SId,Student.Sname,平均成绩 FROM Student , (SELECT sid,AVG( ...

  8. COM组件的使用方法

    https://prismlibrary.com/docs/wpf/converting-from-7.html Requirement: 1.创建myCom.dll,该COM只有一个组件,两个接口I ...

  9. qt 定义插件

    定义的接口----------------------------------------------#ifndef REGEXPINTERFACE_H #define REGEXPINTERFACE ...

  10. 关于PLSQL中的一些问题总结:在PLSQL中书写DDL等

    关于问题前导,使用的数据表中涉及到的字段和类型: 在PLSQL中create.drop.truncate等DDL是没有办法直接执行的. 必须要使用: Execute immediate 'DDL语句' ...