nginx安全与性能优化(下部)
来源:互联网 发布:利用淘宝赚钱灰色项目 编辑:程序博客网 时间:2024/06/05 10:34
src/http/ngx_http_header_filter_module.c
vi +48 src/http/ngx_http_header_filter_module.c
找到行:
static char ngx_http_server_string[]= "Server: nginx"CRLF
static char ngx_http_server_full_string[] = "Server:" NGINX_VER CRLF
修改为:
static char ngx_http_server_string[]="Server: Ninja Web Server" CRLF;
static char ngx_http_server_full_string[]="Server:Ninja Web Server" CRLF;
修改错误信息:
src/http/ngx_http_special_response.c
12.配置nginx gzip压缩功能
nginx gzip压缩模块提供了对文件内容压缩的功能,允许nginx服务器将输出内容
在发送到客户端之前根据具体的策略进行压缩,以节约网络带宽,同时提升用户访问体验。
此功能同apache的mod_deflate压缩功能,依赖ngx_http_gzip_module模块,默认已安装。
要压缩的内容(js,css,html) 不要压缩的内容(图片,视频,flash)
nginx完整配置参数
gzip on
gzip_min_length 1k; #设置允许压缩的页面最小字节数
gzip_buffers 4 16k;
#设置压缩缓冲区大小。以上表示申请4个单位为16k的内存作为压缩结果流缓存,
默认值是申请与原始数据大小相同的内存空间来存储gzip压缩结果。
gzip_comp_level 2;#压缩比率。用来指定GZIP压缩比,1压缩比最小,处理速度最快;
9压缩比最大,传输速度最快,但处理最慢,比较消耗cpu资源
gzip_types text/xml application/javascript text/css;
#指定压缩类型
gzip_vary on;
vary header支持。该选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如
用Squid缓存经过Nginx压缩的数据。
context http server
12.nginx防爬虫方法
假定一个场景:某个网站它可能不希望被网络爬虫抓取,例如测试环境不希望被抓取,以免对用户造成误导,那么需要在该网站中申明,本站不希望被抓取。有如下方法:
方法一:修改nginx.conf,禁止网络爬虫的ua,返回403。
server {
listen 80;
server_name 127.0.0.1;
#添加如下内容即可防止爬虫
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot")
{
return 403;
}
方法2:网站更目录下增加Robots.txt,放在站点根目录下。
在http://tool.chinaz.com/robots/站点可以针对现在的搜索引擎按照想要的规则生成robots.txt文件。
知识扩展:
? ? ? ?robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。百度官方建议,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。
Robots协议是国际互联网界通行的道德规范,基于以下原则建立:
1、搜索技术应服务于人类,同时尊重信息提供者的意愿,并维护其隐私权;
2、网站有义务保护其使用者的个人信息和隐私不被侵犯。
当然,如果搜索引擎不遵守约定的Robots协议,那么通过在网站下增加robots.txt也是不起作用的。(在正式环境中,可以适当允许搜索引擎抓取收录)
13.nginx日志轮询
cat cur_nginx_log.sh
cd /usr/local/nginx/logs && \
/bin/mv www_access.log www_access_$(date +%F -d -1day).log
/usr/local/nginx/sbin/nginx -s reload
然后将脚本加到定时任务里
00 00 * * * /bin/sh /server/scripts/cut_nginx_log.sh >/dev/null 2>&1
14.不记录不需要的访问日志
对于健康检查或某些图片的日志,js,css的日志,一般不需要记录,因为在统计PV时是按照页面计算。
而且日志频繁写入会消耗磁盘IO,降低服务性能。
location ~.*\.(js|jpg|jpeg|JPEG|css|bmp|gif|GIF) {
access_log off;
}
15.日志目录权限控制
chown root.root nginx/logs -R
因为nginx主进程是root,所以nginx可以以root用户的身份往里日志文件写入,将日志目录
改为nginx用户会有安全风险
16.apache或nginx目录及文件最小化权限设置
chmod -R 777 /sitedir (最不安全)
chown -R apache.apache /sitedir (最不安全)
为了保证网站不受木马入侵上传及修改文件
安全的权限:
1.所有站点目录的用户和组都应该是root;
2.所有目录权限是755
3.所有文件权限是644
注意:网站服务的用户不能用root
17.根据扩展名限制程序和文件访问
location ~^/images/.*\.(php|php5)$
{
deny all;
}
location ~^/static/.*\.(php|php5)$
{
deny all;
}
18.使用tmpfs文件系统替代频繁访问的目录
目录要求:
1.频繁访问
2.存放缓存文件
mount tmpfs /tmp -t tmpfs -o size=16m
19.nginx安全访问认证
在nginx.conf中添加一下内容
auth_basic "closed site";
auth_basic_user_file /usr/local/nginx/conf/htpasswd;
htpasswd -bc /usr/local/nginx/conf/htpasswd admin admin123
**注意:密码不要过于简单
- nginx安全与性能优化(下部)
- nginx安全与性能优化(上部)
- nginx安全与优化文档
- apache安全与性能优化
- Nginx安装与性能优化
- Tomcat 安全配置与性能优化
- Tomcat8安装, 安全配置与性能优化
- Tomcat 安全配置与性能优化
- Tomcat 安全配置与性能优化
- Tomcat 安全配置与性能优化
- Tomcat安全配置与性能优化
- Nginx基本安全优化
- 大型网站的性能优化与安全(高效C#编码优化)
- 服务器性能优化(二) --- Nginx性能优化
- 杂记(前端安全以及性能优化)
- Nginx配置性能优化--NGINX
- [nginx]nginx的性能优化
- ASP.NET 安全认证(三) --下部分
- Triangle
- AC_automaton 模板
- Android-RecyclerView实现购物车简单功能
- Ansible
- 关于sms center number 中心默认号码是如何设置的,一个硕大的问号.
- nginx安全与性能优化(下部)
- 如何在 Java 中正确使用 wait, notify 和 notifyAll – 以生产者消费者模型为例
- 理解var声明
- SQL的自定义排序 order by 的巧用
- RaspberryPi2B使用bcm2835c库控制GPIO
- 洛谷 P1558 色板游戏
- 二叉树线索化
- 学习C语言的第二天
- 第1章 Linux内核简介