nginx隐藏版本号
主要步骤为在配置文件中进行开关键入设置,开启版本隐藏即可
server_tokens off为隐藏版本号,默认为on即开启。
验证效果,开启前:
开启后:
修改源码法
Nginx源码文件/usr/src/nginx-1.12.0/src/core/nginx.h包含了版本信息(版本号可能不同),可以随意设置
重新编译安装,隐藏版本信息
示例:
#define NGINX_VERSION “1.1.1”,修改版本号为1.1.1
#define NGINX_VER “IIS/”,修改软件类型为IIS
重启服务,访问网站使用curl -I 命令检测
可以把该方法视作伪装页面,这样的话,会误导黑客们攻击,从而使得黑客的攻击无效。但是仅仅只是隐藏版本是远远不够的。
使用nginx的组和用户名来进行nginx的访问和操作
现实中,需要指定nginx的组和用户名来进行登录,即,用非登录用户来操作nginx,这样的话就可以使得nginx处在一个相对来说安全的环境中,因为不是所有人都可以随时使用nginx来进行操作,这样的话就可以一定程度上防止不法分子进行蓄意破坏操作。
主要操作为在编译的时候加入组和名的nginx:
[root@www nginx-1.12.0]# ./configure
–prefix=/usr/local/nginx
–user=nginx
–group=nginx
…
重启服务过后,使用ps aux|nginx来查看发生的改变
网页缓存
nginx的网页缓存相对简单,主要为在http里或server里或location里添加如下一段话
location ~ .(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .(js|css)$
{
expires 1h;
}
该意思即为如果检测到是圖片【图片格式则缓存30天,如果是js和css的格式则缓存一个小时。
日志切割
和apache的日志切割不同,nginx的日志切割是通过执行一个脚本的格式来进行的。
随意在任何位置编写一个脚本:
#nginx日志切割脚本
#!/bin/bash
#设置日志文件存放目录
logs_path="/usr/local/nginx/logs/"#设置pid文件
pid_path="/usr/local/nginx/logs/nginx.pid"#重命名日志文件
mv ${logs_path}access.log KaTeX parse error: Expected group after '_' at position 18: …ogs_path}access_̲(date -d “yesterday” +"%Y%m%d").log#向nginx主进程发信号重新打开日志
kill -USR1 cat ${pid_path}#删除30天之前的日志文件
find $logs_path -mtime +30 |xargs rm -rf
这样的话,只要每次执行该脚本,就可以主动生成一个日志文件。
当然,不可能每天都手动输入执行脚本,因此我们需要进行周期性计划任务日志。
并且进行日志的自启动
这样每天的凌晨都可以生成与一个日志,并且会自动删除三十天之前的日志
nginx运行进程数调优
进入配置文件进行如下操作,要注意的是,01 10是他的CPU安插形式,取决于CPU的个数,比如,如果CPU个数为4,那后续按查位置即为0001,0010,0100,1000这样进行排列。
该主要作用是,有时候一个CPU会同时兼程着另一个进程,我们这么做的目的是能让CPU进行合理的分工安排。
网页压缩功能
同样是在配置文件进行追加
gzip on; #开启压缩模块
gzip_min_length 1k; #用于设置允许压缩的最小字节数
gzip_buffers 4 16k; #表示申请4个单位为16k的内存作为压缩结果流缓存
gzip_comp_level 5; #用来指定压缩等级,一般5-6就够用了
gzip_types text/plain; #压缩类型,针对哪些网页文档开启压缩功能
gzip_vary on; #允许让前端的缓存服务器缓存经过gzip压缩的页面
防盗链操作
配置文件中添加如下几段话
location ~ .(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$
{
valid_referers www.kgc.com kgc.com;
if ($invalid_referer) {
return 403;
}
}
这几段话的意思是,假设是该域名之外的圖片被进行扒取,那么会直接跳转至403(无访问权限),如果喜欢骚操作一点,也可以跳转至一个无效网页。
fpm优化
主要操作就是进入php的配置文件进行更改,由于配置都是默认的,有些服务器的配置可能压根就不适合当前版本的奔跑量,所以需要进行fpm的优化。
进入php配置文件中,找到以下几段:
pm.max_children:指定启动的进程数量
pm.max_children:指定启动的进程数量最大的数量
pm.start_servers:动态方式下初始的fpm进程数量
pm.min_spare_servers:动态方式下最小的fpm空闭进程数
pm.max_spare_servers:动态方式下最大的fpm空闭进程数
pm=dynamic
pm.max_children=20
pm.start_servers = 5
pm.min_spare_servers = 2
pm.min_spare_servers = 8
如果是内存为1.5G的服务器,那么此操作较为合适,可以根据自身公司企业的服务器配置需求去进行调试。