首页 > Web开发 > 详细

Web服务器Nginx系统级别优化安全策略

时间:2015-03-26 01:29:00      阅读:209      评论:0      收藏:0      [点我收藏+]

Nginx(读音engine x)服务器由于性能优秀稳定、配置简单以及跨平台,被越来越多的公司和个人所采用,现已成为市场份额继Apache之后的第二大Web服务器。各大小网站论坛博客也介绍说明了Nginx从安装到优化、安全的各种配置。不过看了很多这些相关Nginx的文档之后,发现一个比较大的问题,就是这些文档基本也就从两个方面着手,一是修改Nginx的配置文件,二是调整操作系统的相关内核参数;而且大多数文档说明不够具体,缺乏比较系统级别的优化安全。本文将从Nginx安装开始,到修改配置文件,调整系统内核参数以及架构四个方面着手。


1.  安装

Nginx由于不断添加新的功能,附带的模块也越来越多。很多操作系统厂商为了用户方便安装管理,都增加了rpm、deb或者其他自有格式软件包,可以本地甚至在线安装。不过我不太建议使用这种安装方式,这虽然简化了安装,在线安装甚至可以自动解决软件依赖关系,但是安装后软件的文件布局过于分散,不便管理维护;同时也正是由于存在软件包之间的依赖关系,导致当有安全漏洞、或者性能或者稳定性等问题,只能更新升级Nginx新版本;或者添加新功能,需要安装新模块,这时反而更加麻烦。所以我建议使用源码编译安装管理。最重要的是采用非源码编译安装的方式,默认会添加许多模块,比如邮件相关、uwsgi、memcache等等,很多网站运行时这些模块根本未用到,虽然平时占用的资源很小,但是仍然可能是压弯骆驼的一根稻草。各种非必需模块默认安装运行的同时,也给Web系统带来了安全隐患。尽量保持软件的轻装上阵,是每个运维应当尽力做到的。我一般的编译参数如下:

./configure "--prefix=/App/nginx" "--with-http_stub_status_module" "--without-http_auth_basic_module" "--without-http_autoindex_module" "--without-http_browser_module" "--without-http_geo_module" "--without-http_limit_req_module" "--without-http_limit_conn_module" "--without-http_map_module" "--without-http_memcached_module" "--without-http_scgi_module" "--without-http_split_clients_module" "--without-http_ssi_module" "--without-http_userid_module" "--without-http_uwsgi_module" "--without-mail_imap_module" "--without-mail_pop3_module" "--without-mail_smtp_module" "--without-poll_module" "--without-select_module"

编译参数根据网站是否真正用到的原则增添或者减少,比如我们公司如果需要用到ssi模块,从而能够实现访问shtml页面,可以将 "--without-http_ssi_module" \ 这一行删除,那么Nginx将默认安装。大家可以通过运行 ./configure --help 查看编译帮助决定是否需要安装。


2.  配置

未完待续

本文出自 “松松” 博客,请务必保留此出处http://dongsong.blog.51cto.com/916653/1624445

Web服务器Nginx系统级别优化安全策略

原文:http://dongsong.blog.51cto.com/916653/1624445

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!