要禁止访问特定后缀名的文件,可以利用 Nginx 的 location 指令以及 deny 指令。
以下是一个基本的示例:

location ~ \.php$ { deny all;}

上面的配置将会谢绝所有以 .php 结尾的要求。
在此配置中,~ 表示利用正则表达式匹配要求 URI,\. 匹配实际的点字符,php 匹配文件扩展名。
deny all 指令表示谢绝所有要求。

如果你想禁止其他类型的文件,只需将 .php 更换为你想要禁止的文件类型即可。
如果你想禁止多个文件类型,可以在 location 指令中利用正则表达式或多个 location 指令。
例如:

JSP禁止某网段访问Nginx若何制止拜访特定后缀文件的设置装备摆设办法 PHP

location ~ \.(php|jsp|asp)$ { deny all;}

禁止访问全体目录或目录下文件

#禁止访问目录location ^~ /test/ { deny all;}#禁止访问目录下文件location ^~ /test { deny all;}Nginx常规的安全配置思路和方法隐蔽不必要的信息

由于某些 Nginx 漏洞只存在于特定的版本,隐蔽版本号可以提高安全性。
因此,须要对Nginx的不必要信息做隐蔽加固,详细配置方法:

隐蔽做事器版本号:默认情形下,Nginx 会在相应头中发送自身的版本号,可以通过在 Nginx 配置文件中加入 server_tokens off; 来关闭这个功能,从而隐蔽做事器版本号。
隐蔽操作系统信息:如果你希望隐蔽做事器操作系统的信息,可以在 Nginx 配置文件中利用 server_tokens 指令来指定一个空字符串,例如 server_tokens ""。
隐蔽缺点页面中的 Nginx 版本号:Nginx 默认的缺点页面中会包含 Nginx 的版本号,可以通过在 error_page 指令中加入 proxy_hide_header Server; 来隐蔽这个信息。
隐蔽 X-Powered-By 头部信息:有些运用程序会在 HTTP 相应头中添加 X-Powered-By 头部信息,用于标识运用程序的类型和版本。
如果你希望隐蔽这个信息,可以在 Nginx 配置文件中加入以下指令:

proxy_set_header X-Powered-By "";

这样可以把 X-Powered-By 头部信息设置为空字符串,从而隐蔽运用程序的类型和版本信息。

禁用非必要的方法

常见的HTTP要求处理有 GET、POST 两种要求方法,而 HTTP/1 协议还规定了 UPDATE、DELETE、TRACE等 方法用于要求处理和网络诊断,这也可能会暴露一些Server信息。
因此,针对 GET、POST 以及 HEAD 之外的要求,详细配置方法如下:

利用 Nginx 内置的 limit_except 指令:可以利用 limit_except 指令来限定许可的 HTTP 方法,例如:

location / { limit_except GET POST { deny all; }}

上述配置将许可 GET 和 POST 方法,而禁止其他所有方法(如 PUT、DELETE 等)。

2.利用 Nginx 模块的配置指令:有些 Nginx 模块(如 ngx_http_dav_module、ngx_http_webdav_module 等)供应了专门的配置指令来限定许可的 HTTP 方法。
例如,可以利用 dav_methods 指令来限定 WebDAV 的 HTTP 方法,例如:

location / { dav_methods PUT DELETE MKCOL; ...}

上述配置将仅许可 PUT、DELETE 和 MKCOL 方法。

3.利用第三方模块:有一些第三方模块(如 ngx_http_security_module)供应了额外的安全功能,个中包括限定许可的 HTTP 方法。
这些模块可以通过安装插件来启用。

须要把稳的是,禁用某些 HTTP 方法可能会影响运用程序的正常运行,因此须要根据实际情形进行权衡和调度。

合理配置相应头

合理的配置相应头可以提高网站的安全性和性能。
以下是一些建议:

禁用不必要的 HTTP 方法,例如 PUT 和 DELETE。
这可以通过在 Nginx 配置文件中利用 limit_except 指令来实现。
配置安全的跨域资源共享 (CORS) 头。
可以利用 Nginx 的 add_header 指令来添加这些头。
配置 Content Security Policy (CSP) 头。
这将限定页面加载的资源,并帮助防止跨站点脚本攻击 (XSS)。
Nginx 也可以利用 add_header 指令来添加 CSP 头。
配置 Strict-Transport-Security (STS) 头。
这将见告浏览器只利用 HTTPS 连接访问站点,从而提高安全性。
禁用或限定特定类型的文件,例如源代码文件。
可以利用 Nginx 的 location 指令来匹配这些文件,并配置相应的相应头。
配置缓存干系的相应头,例如 Cache-Control 和 Expires。
这将帮助浏览器缓存页面内容,从而提高网站性能。
配置安全的加密套件和协议,例如 TLS 1.3,并禁用不屈安的协议和加密套件。
Nginx近期爆出的安全漏洞

近年来爆出的一些安全漏洞如下:

漏洞编号

漏洞描述

影响版本

CVE-2022-41741

Memory corruption in the ngx_http_mp4_module

Not vulnerable: 1.23.2+, 1.22.1+Vulnerable: 1.1.3-1.23.1, 1.0.7-1.0.15

CVE-2022-41742

Memory disclosure in the ngx_http_mp4_module

Not vulnerable: 1.23.2+, 1.22.1+Vulnerable: 1.1.3-1.23.1, 1.0.7-1.0.15

CVE-2021-23017

1-byte memory overwrite in resolver

Not vulnerable: 1.21.0+, 1.20.1+Vulnerable: 0.6.18-1.20.0

CVE-2019-9511

Excessive CPU usage in HTTP/2 with small window updates

Not vulnerable: 1.17.3+, 1.16.1+Vulnerable: 1.9.5-1.17.2

以上漏洞都已经发布了相应的安全补丁,建议管理员及时更新 Nginx 以防止被攻击。
同时,管理员也该当采纳其他安全方法,例如配置适当的访问掌握、限定不必要的做事和端口等,以提高做事器的安全性。

Nginx 市场份额环球第一

Netcraft 发布了 2021 年 10 月份的环球 Web 做事器调查报告。
从环球网站市场份额来看,Nginx 只管比上月低落 0.59 %,仍以 4.12 亿的总数遥遥领先其它竞争对手。
个中 Apache 以 2.9 亿位居第二,OpenResty、Cloudflare分别位列第三、第四。

来自NETCRAFT

来自NETCRAFT