1. 日志配置
1.1修改配置,按如下设置日志记录文件、记录内容、记录格式,添加标签为main的log_format格式
鉴于日志的输出格式还未确定,目前暂时先使用Nginx默认的日志格式。
(http标签内,在所有的server标签内可以调用):
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
1.2 在server标签内,定义日志路径
access_log logs/host.access.log main
1.3 保存,然后后重启nginx服务。
2 禁止目录浏览
默认是不允许列出整个目录的,如果不是做下载服务器的,就不要打开这个,避免敏感信息暴露给黑客并下载
如果开启了就会是下面这样的效果
配置关闭即可
autoindex off;
3 限制目录执行权限
3.1编辑配置文件,在server标签内添加如下内容:
示例:去掉单个目录的PHP执行权限
location ~ /attachments/.*\.(php|php5)?$ {
deny all;
}
#示例:去掉多个目录的PHP执行权限
location ~
/(attachments|upload)/.*\.(php|php5)?$ {
deny all;
}
3.2保存,然后后重启nginx服务。
需要注意两点:
1、以上的配置文件代码需要放到 location ~ .php{...}上面,如果放到下面是无效的;
2、attachments需要写相对路径,不能写绝对路径。
4 错误页面重定向
4.1修改配置,在http{}段加入如下内容
避免错误页面提供敏感信息,一般我们会定制一些通用的错误页面返回给客户端
我们在http段配置
error_page 500 502 503 504 /50x.html;
类似上面这种配置,将状态码500、502、503、504全部重定向到50x.html
4.2保存,重启 nginx 服务生效
5 隐藏版本信息
5.1编辑配置文件,添加http模块中如下一行内容:
server_tokens off;
检查:
5.2保存,然后后重启nginx服务。
6 限制HTTP请求方法
6.1 编辑配置文件,添加如下内容:
if ($request_method !~ ^(GET|HEAD|POST)$ ) {
return 444;
}
这个要放到最前面
6.2 保存,然后后重启nginx服务。
备注:只允许常用的GET和POST方法,顶多再加一个HEAD方法
7 限制IP/域名访问
7.1 编辑配置文件,在server标签内添加如下内容:
location / {
deny 192.168.1.1; #拒绝IP
allow 192.168.1.0/24; #允许IP
allow 10.1.1.0/16; #允许IP
deny all; #拒绝其他所有IP
}
location ~ .*my.html$ {
root /usr/share/nginx/html;
deny 192.168.0.105; #禁止ip
allow 192.168.189.134; #允许ip
deny all; #拒绝其他所有
}
限制访问的ip,即限制了服务的客户,防止不允许的人访问,减少风险