基于CentOS7上的nginx系统优化
基于CentOS7上的nginx系统优化
隐藏版本信息
首先在CentOS7上安装好nginx服务之后,可以查看当前的nginx版本信息:
站在用户的角度思考问题,与客户深入沟通,找到乌审网站设计与乌审网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都网站建设、企业官网、英文网站、手机端网站、网站推广、域名申请、虚拟主机、企业邮箱。业务覆盖乌审地区。
[root@localhost init.d]# curl -I http://192.168.234.174 //查看当前版本信息
HTTP/1.1 200 OK
Server: nginx/1.12.0 //当前的nginx版本信息
Date: Sat, 30 Jun 2018 06:23:15 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Sat, 30 Jun 2018 06:17:15 GMT
Connection: keep-alive
ETag: "5b37206b-264"
Accept-Ranges: bytes
为了避免版本信息泄露,从而导致不必要的麻烦,下面介绍两种隐藏版本信息的方法:
-
基于已经安装好nginx服务的方法
修改nginx的主配置文件
[root@localhost init.d]# vim /usr/local/nginx/conf/nginx.conf
..... 省略
http {
include mime.types;
default_type application/octet-stream;
server_tokens off; //添加关闭版本显示
重新加载nginx的配置,并且再次查看版本信息
[root@localhost init.d]# service nginx reload //重新加载nginx的配置文件
[root@localhost init.d]# curl -I http://192.168.234.174
HTTP/1.1 200 OK
Server: nginx //这里可以看到当前的版本信息已经被隐藏起来了
Date: Sat, 30 Jun 2018 06:35:14 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Sat, 30 Jun 2018 06:17:15 GMT
Connection: keep-alive
ETag: "5b37206b-264"
Accept-Ranges: bytes
-
基于nginx服务尚未安装的方法
首先修改nginx的源代码,使别人误认为我们使用的是别的版本
[root@localhost init.d]# vim /opt/nginx-1.12.0/src/core/nginx.h //修改源代码包
... ...省略
#define nginx_version 1012000
#define NGINX_VERSION "1.12.0" //修改为1.1.1
然后进行编译安装
[root@localhost init.d]# cd /opt/nginx-1.12.0/
[root@localhost nginx-1.12.0]# ./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_stub_status_module //编译安装
[root@localhost nginx-1.12.0]# make && make install
[root@localhost conf]# vim nginx.conf
http {
include mime.types;
default_type application/octet-stream;
server_tokens on; //开启显示版本信息
[root@localhost conf]# service nginx stop
[root@localhost conf]# service nginx start //重新启动nginx服务
[root@localhost conf]# curl -I http://192.168.234.174
HTTP/1.1 200 OK
Server: nginx/1.1.1 //可以看到nginx的版本信息就被篡改了
Date: Sat, 30 Jun 2018 07:03:56 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Sat, 30 Jun 2018 06:17:15 GMT
Connection: keep-alive
ETag: "5b37206b-264"
Accept-Ranges: bytes
修改用户和组
[root@localhost conf]# vim /usr/local/nginx/conf/nginx.conf
#user nobody; //nobody修改为nginx
nginx;
修改缓存时间
[root@localhost conf]# vim /usr/local/nginx/conf/nginx.conf
... ... 省略
location / {
root html;
index index.html index.htm;
} //在下面添加
location ~\.(gif|jpg|jepg|png|bmp|ico)$ {
root html;
expires 1d;
}
[root@localhost conf]# cd /usr/local/nginx/html/
[root@localhost html]# cp /abc/Apache/ai.jpg /usr/local/nginx/html/ //复制一张图片到html站点的目录下
[root@localhost html]# service nginx stop
[root@localhost html]# service nginx start //重启nginx服务
然后此时使用一台安装了fiddler工具的win7客户机去访问nginx服务器
然后就可以看到这里图片的缓存时间已经被修改为一天了
日志分割
[root@localhost ~]# vim /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 #将30天之前的日志文件删除
[root@localhost opt]# chmod +x fenge.sh //给与日志分割脚本一个执行权限
[root@localhost opt]# ./fenge.sh //执行脚本
[root@localhost opt]# cd /var/log/nginx/ //查看nginx的日志文件
[root@localhost nginx]# ls
test.com-access.log-20180629 //这里就会产生一个前一天的日志文件
这里还可以添加为周期性计划任务
[root@localhost nginx]# crontab -e
0 1 * * * /opt/fenge.sh //这样日志分割任务就会周期性的生成,就不需要我们每天都手动执行一遍脚本了
连接超时
[root@localhost nginx]# vim /usr/local/nginx/conf/nginx.conf
... ... 省略
#keepalive_timeout 0;
keepalive_timeout 65; //删除此行,并在下面添加
keepalive_timeout 65 180;
client_header_timeout 80;
client_body_timeout 80;
[root@localhost nginx]# nginx -t //检查语法
[root@localhost nginx]# service nginx stop
[root@localhost nginx]# service nginx start //重启nginxfuwu
然后此时同样使用装有一台安装了fiddler工具的win7客户机去访问nginx服务器
防盗链
首先在进行防盗链配置时,我们要先准备两台win7客户机(网卡模式是NAT,IP地址自动获取),一台(win7)进行盗链操作,另一台(win7-1)做访问端
开始进行盗用链接配置,首先盗链端(win7)开启IIS服务,并且写入一个首页内容
this is test!!!
//首页内容
//进行盗链的网站和图片
然后在CentOS7上安装DNS服务,并且修改配置
[root@localhost nginx]# yum install bind -y
[root@localhost nginx]# vim /etc/named.conf //修改主配置文件
listen-on port 53 { 127.0.0.1; }; //127.0.0.1修改为any
allow-query { localhost; }; //localhost修改为any
[root@localhost nginx]# vim /etc/named.rfc1912.zones //修改区域配置文件
//添加下面的配置
zone "benet.com" IN {
type master;
file "benet.com.zone";
allow-update { none; };
};
zone "test.com" IN {
type master;
file "test.com.zone";
allow-update { none; };
};
[root@localhost nginx]# cd /var/named/
[root@localhost named]# cp -p named.localhost benet.com.zone
[root@localhost named]# vim benet.com.zone //修改区域数据库文件
删除末行,添加
www IN A 192.168.234.174 //解析指向nginx服务器的IP
[root@bogon named]# cp -p benet.com.zone test.com.zone
[root@localhost named]# vim test.com.zone
修改末行的www 后的解析地址,指向盗链服务器的IP,即
www IN A 192.168.234.180 //这里是win7的IP
这里盗链的操作就完成了,我们可以看下效果
访问www.test.com
访问www.benet.com
接下来配置防盗链配置
[root@bogon html]# vim /usr/local/nginx/conf/nginx.conf
... ...省略 添加//
location ~*\.(jpg|gif|swf)$ {
valid_referers none blocked *.benet.com benet.com;
if ( $invalid_referer ) {
rewrite ^/ http://www.benet.com/error.png;
}
}
[root@bogon named]# cd /usr/local/nginx/html/
[root@bogon html]# cp /abc/LNMP/error.png ./ //添加一张重定向的图片
[root@bogon html]# service nginx stop
[root@bogon html]# service nginx start //重启nginx服务
防盗链操作完成后,我们在来使用win7-1客户机访问查看效果(访问前先清空缓存):
访问www.test.com
访问www.benet.com
这样防盗链就完成了。
以上就是CentOS7上nginx的所有优化配置了,请各位看官多多点评与点赞!!!
分享标题:基于CentOS7上的nginx系统优化
文章链接:http://pwwzsj.com/article/jsphei.html