云计算笔记(5)nginx网站优化(常见的八种方式)

1、修改nginx的程序管理用户和组

1)nginx运行的默认用户
Nobody
2)创建管理用户和组
[root@nginx /]# groupadd nginx
[root@nginx /]# useradd -M -s /sbin/nologin -g nginx nginx
3)配置编译和安装
[root@nginx nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install
4)修改nginx主配置文件中的管理组和用户
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
user nginx;
5)查看nginx进程管理用户
[root@nginx /]# ps aux | grep nginx

2、配置nginx版本隐藏的作用

1)配置隐藏的目的
防止版本号泄露,导致黑客利用网站漏洞进行攻击
2)配置隐藏nginx版本(http全局选项中修改)
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
server_tokens off;
云计算笔记(5)nginx网站优化(常见的八种方式)_第1张图片

3、配置nginx的版本号和软件名字

1)配置nginx的版本并替换名字
迷惑黑客
黑客通过检测IIS的漏洞工具扫描nginx
2)配置隐藏版本和替换软件名字
[root@nginx /]# vim /usr/src/nginx-1.6.0/src/core/nginx.h
#define NGINX_VERSION “1.0.0” 修改版本号
#define NGINX_VER “IIS/” NGINX_VERSION 修改软件名
3)配置编译和安装
[root@nginx nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module && make && make install

4)注意(http的全局配置中修改)
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
server_tokens on; 开启版本号显示,或者删除这一行,否则会显示nginx,导致虚假版本号不生效
云计算笔记(5)nginx网站优化(常见的八种方式)_第2张图片

4、配置nginx网页的缓存时间

1)网页缓存的作用
加快用户访问速度
避免重复连接请求
降低资源占用
一般针对静态网页设置,对动态网页不设置缓存时间
2)修改nginx主配置文件支持缓存功能(在http段、或者server段、或者location段,小范围生效)
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
expires 1d; 缓存1天
云计算笔记(5)nginx网站优化(常见的八种方式)_第3张图片

5、nginx的日志切割

1)nginx日志切割的作用
减小日志大小
方便用户查询
定期删除过期日志减少磁盘空间和资源浪费
2)设计日志切割的思路
获取系统时间
重命名nginx日志
定期删除日志
设置计划任务运行日志切割脚本,自动化切割日志
3)编辑脚本

[root@nginx /]# vim /root/nginx-logs.sh
			#!/bin/bash	
			d=$(date "+%Y%m%d")	获取系统时间
			logs_path="/var/log/nginx"	定义切割后日志的位置
			pid_path="/usr/local/nginx/logs/nginx.pid"	定义nginx的pid
			[ -d $logs_path ] || mkdir -p $logs_path	判断是否存在日志位置
			mv /usr/local/nginx/logs/access.log ${logs_path}/wordpress.error.log-$d	切割错误日志
			kill -USR1 $(cat $pid_path)	查看服务是否运行
			find $logs_path -mtime +30 | xargs rm -rf	删除30天以前的日志

4)运行脚本
[root@nginx ~]# chmod +x ./nginx-logs.sh
[root@nginx ~]# ./nginx-logs.sh
5)设置计划任务
[root@nginx /]# crontab -e(每天切割一次)
* * */1 * * /root/nginx-logs.sh

6、设置nginx连接时间控制

1)控制nginx客户端连接时间的控制
避免长时间和服务器建立连接,占用服务器资源
服务器设置超时时间,主动和客户端断开连接
2)修改nginx的主配置文件
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf

	    keepalive_timeout  20 60;	请求超时时间为20s,保持连接时间为60s,可在http段、server段、或者location段设置
	    client_header_timeout 20;	指定等待客户端发送请求头的超时时间
	    client_body_timeout 20;		设置请求体读超时时间

云计算笔记(5)nginx网站优化(常见的八种方式)_第4张图片

7、配置nginx的压缩

1)作用
可以对图片,文本进行压缩
减少服务器带宽资源占用
压缩数据防止占用服务器的cpu资源
2)配置压缩数据(httpd配置)
[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf

gzip on;	开启压缩功能
gzip_min_length 1k;	压缩最小文件为1kb
gzip_buffers 4 16k;	申请4个单位为16k的内存作为压缩结果流缓存
gzip_http_version 1.1;	用于设置识别http协议版本,默认是1.1
gzip_comp_level 2;	用来指定gzip压缩比,1压缩比最小,处理速度最快;9压缩比最大,传输速度快,但处理速度最慢,使用默认即可
gzip_types text/plain application/javascript application/css  text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png image/jpg;	压缩类型
gzip_vary on;	让前端的缓存服务器缓存经过gzip压缩的页面

云计算笔记(5)nginx网站优化(常见的八种方式)_第5张图片

8、配置nginx的防盗链

1)作用
防止其他网站盗用本地资源
只能用本地网站资源的流量和访问量
2)配置防盗链

[root@nginx /]# vim /usr/local/nginx/conf/nginx.conf
        location ~* \.(jpg|gif|swf)$ {	这里若出现了png则客户端无法看到错误页面
                root /var/www/wordpress;
               valid_referers none blocked nginx.iso.com;
               if ($invalid_referer) {
                    rewrite ^/ http://nginx.iso.com/error.png;	给客户端返回的错误页面
或                               return 403;	返回错误值

               }
       }

3)配置说明

valid_referers		设置信任的网站
none				浏览器中referer为空的情况,就是直接在浏览器访问图片
blocked	referer		不为空的情况,但是这些值被代理或防火墙删了,这些值不以http://或者https://开头
nginx.iso.com		referer中包含相关字符串的网站
if					如果链接的来源域名不在valid_referers所列出的列表中,$invalid_referer为1,则执行后面的操作,即进行重写或返回403页面

你可能感兴趣的:(网站服务)