一、隐藏nginx版本号
1.1 查看版本号
方法一:curl命令
[root@localhost ~]
方法二:在网页中查看
cd /usr/local/nginx/html
?
http://192.168.146.20/kk.jpg
1.2 隐藏版本信息
方法一:修改配置文件
vim /usr/local/nginx/conf/nginx.conf
http {
include mime.types;
default_type application/octet-stream;
server_tokens off;
systemctl restart nginx
curl -I http://192.168.146.20
方法二:修改源码文件,重新编译安装
cd /opt/
systemctl stop nginx.service
cd nginx-1.12.0/
cd src/core/
vim nginx.h
?
?
cd ../../
?
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
?
make && make install -j4
?
vim /usr/local/nginx/conf/nginx.conf
server_tokens on;
?
systemctl restart nginx
?
curl -I http://192.168.146.20
二、修改用户与组
1.
vim /usr/local/nginx/conf/nginx.conf
?
user kaka kaka;
?
2.
useradd -s /sbin/nologin kaka
?
3.
systemctl restart nginx
?
4.
ps aux | grep kaka
三、缓存时间
当nginx将网页数据返回给客户端后,可设置缓存时间,以方便在日后进行相同内容的请求时直接返回,避免重复请求,加快了访问速度一般针对静态网页设置,对动态网页不设置缓存时间。
1.
vim /usr/local/nginx/conf/nginx.conf
location ~ \.(jpg|png|bmp|gif)$ {
root html;
expires 1d;
}
?
?
2.
nginx -t
?
3.
systemctl restart nginx.service
?
4.
http://192.168.146.20/kk.jpg
?
Cahce-Control:max-age=86400 表示缓存时间是 86400 秒。也就是缓存一天的时间,一天之内浏览器访问这个页面,都是用缓存中的数据,而不需要向 Nginx 服务器重新发出请求,减少了服务器的使用带宽。
四、日志分割
随着Nginx运行时间的增加,产生的日志也会逐渐增加,为了方便掌握Nginx的运行状态,需要时刻关注Nginx日志文件。太大的日志文件对监控是一个大灾难,不便于分析排查,需要定期的进行日志文件的切割。
vim /usr/local/nginx/nginx_log.sh
?
d=$(date +%F -d -1day)
path="/var/log/nginx"
pid="/usr/local/nginx/logs/nginx.pid"
?
[ -d $path ] ||mkdir -p $path
mv /usr/local/nginx/logs/access.log ${path}/www.yxp.com-$d
kill -USR1 $(cat $pid)
find $path -mtime +30 -delete
?
chmod +x /usr/local/nginx/nginx_log.sh
?
[root@localhost nginx]
?
0 0 * * * /usr/local/nginx/nginx_log.sh
五、连接超时
-
HTTP服务有一个KeepAlive模式,它告诉web服务器在处理完一个请求后保持这个TCP连接的打开状 若接收到来自同一客户端的其他请求,服务端会利用这个被被关闭的连接,而不需要再次建立一个连接 -
KeepAlive在一段时间内保持打开状态,它们会在这段时间内占用资源,占用过多就会影响服务器的性能 -
在企业网站中,为了避免同一个客户长时间占用连接,造成资源浪费,可设置相应的连接超时参数,实现控制连接访问时间。可以修改配置文件 nginx.conf,设置 keepalive_timeout超时时间
vim /usr/local/nginx/conf/nginx.conf
?
keepalive_timeout 65 180;
?
systemctl restart nginx.service
?
http://192.168.146.20/kk.jpg
六、更改进程数
在高并发场景,需要启动更多的Nginx进程以保证快速响应,以处理用户的请求,避免造成阻塞
cat /proc/cpuinfo |grep processor|wc -l
或
cat /proc/cpuinfo |grep -c processor
?
ps -aux |grep nginx
?
?
vim /usr/local/nginx/conf/nginx.conf
?
worker_processes 16;
?
systemctl restart nginx.service
ps -aux |grep nginx
七、网页压缩
-
Nginx的ngx_http_gzip_module压缩模块提供对文件内容压缩的功能 -
允许Nginx服务器将输出内容在发送客户端之前进行压缩,以节约网站带宽,提升用户的访问体验,默认已经安装可在配置文件中加入相应的压缩功能参数对压缩性能进行优化
1.
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_vary on;
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;
?
2.
systemctl restart nginx.service
?
?
3.
http://192.168.146.20/kk.jpg
八、配置防盗链
-
在企业网站服务中,一般都要配置防盗链功能, 避免网站内容被非法盗用,造成经济损失,也避免了不必要的带宽浪费。 -
Nginx 的防盗链功能也非常强大,在默认情况下,只需要进行很简单的配置,即可实现防盗链处理。
8.1 网页准备
1.
yum install -y httpd
?
?
2.
cd /var/www/html
vim index.html
?
<html>
<body>
<h1>this is kaka
<img src="http://www.kk.com/kk.jpg"/>
</body>
</html>
?
3.
vim /etc/hosts
?
192.168.146.20 www.kk.com
?
4.
vim /usr/local/nginx/html/index.html
?
<img src="kk.png">
?
5.
192.168.146.20 www.kk.com
192.168.146.10 www.benet.com
?
?
6.
systemctl start httpd
8.2 防盗链配置
1.
vim /usr/local/nginx/conf/nginx.conf
?
location ~* \.(jpg|swf)$ {
valid_referers none blocked *.kk.com kk.com;
if ( $invalid_referer ) {
rewrite ^/ http://www.kk.com/error.png;
}
}
?
2.
nginx -t
?
3.
cd /usr/local/nginx/html/
?
4.
systemctl restart nginx.service
?
5.
源主机网页: http://www.kk.com/
盗链主机网页: http://www.kkk.com/
|