当前位置: 首页 > Linux

太多了!Nginx的这些重要安全设置,你不会……

时间:2023-04-06 21:04:01 Linux

Nginx是最流行的web服务器,它只能占用2.5MB的内存,却可以轻松处理1w的http请求。Nginx作为网站的入口,安全设置的重要性不言而喻。下面就带你一起了解这些安全配置吧!nginx.conf是Nginx的主要配置文件,大部分的安全配置都在这个文件上进行。禁用不需要的Nginx模块自动安装的Nginx会内置很多模块,并不是所有模块都是必须的,非必需的模块可以禁用,比如autoindex模块,下面展示如何禁用#./configure--without-http_autoindex_module#make#makeinstall不显示servertokens默认情况下,Nginxservertokens会在错误页面显示Nginx版本号,这可能会导致信息泄露,未经授权的用户可能知道你使用的nginx版本。控制资源和限制应该通过在nginx.conf中设置server_tokensoff来禁用为了防止对Nginx的潜在DOS攻击,可以为所有客户端设置缓冲区大小限制,配置如下:client_body_buffer_size指定客户端请求正文缓冲区的大小。默认值为8k或16k,但建议将该值设置为低至1k:client_body_buffer_size1kclient_header_buffer_size指定客户端请求标头的标头缓冲区大小。1k的设置足以满足大多数请求。client_max_body_size指定客户端请求的最大可接受文本大小。1k的设置应该足够了,但如果通过POST方法接收文件上传,则需要增加它。large_client_header_buffers指定用于读取大型客户端请求标头的缓冲区的最大数量和大小。将缓冲区的最大数量设置为2,每个缓冲区的最大大小为1k。这条指令会接受2kB的数据,large_client_header_buffers21kDisableallunnecessaryHTTPmethodsDisableallunnecessaryHTTPmethods,下面的设置表示只允许GET、HEAD、POST方法,过滤掉DELETE、TRACE等方法。location/{limit_exceptGETHEADPOST{全部拒绝;}}还有一种方法是在server块中设置,不过这个是全局设置的,注意评估影响if($request_method!~^(GET|HEAD|POST)$){return444;}监控访问日志和错误日志持续监控和管理Nginx的错误日志,以更好地了解对Web服务器的请求,注意遇到的任何错误,帮助发现任何攻击企图,并确定您可以采取哪些措施来优化服务器性能。诸如logrotate之类的日志管理工具可用于轮换和压缩旧日志并释放磁盘空间。同样,ngx_http_stub_status_module模块提供对基本状态信息的访问。合理配置响应头为了进一步提升Nginxweb的性能,可以添加几种不同的响应头。建议X-Frame-Options可以使用X-Frame-OptionsHTTP响应头来指示是否应该允许浏览器在或