前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nginx 常用配置以及安全配置案例

Nginx 常用配置以及安全配置案例

作者头像
用户8824291
发布2022-02-25 17:13:21
9420
发布2022-02-25 17:13:21
举报
文章被收录于专栏:学习乐园

Nginx 是用于 Web 服务、反向代理、缓存、负载平衡、媒体流等的开源软件。在这将提到一些经常使用的 Nginx 经典配置以及安全性的一些配置。请根据您的实际需求对这些配置进行调整。

侦听端口

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

server { # 标准HTTP协议 listen 80; # 标准HTTPS协议 listen 443 ssl; # 使用 http2 listen 443 ssl http2; # 使用IPv6 监听 80 listen [::]:80; # 仅限使用IPv6 listen [::]:80 ipv6only=on; }

访问日志

1 2 3 4 5 6 7 8

server { # 日志文件的相对或完整路径 access_log /path/to/file.log; # 选择 'on' 或者 'off' access_log on; }

域名

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

server { # 监听单个域名 server_name cnsre.cn; # 监听多个域名 server_name cnsre.cn www.cnsre.cn; # 监听所有域名 server_name *.cnsre.cn; # 监听所有顶级域名 server_name cnsre.*; # 监听未指定的主机名(侦听IP地址本身) server_name ""; }

静态资源

1 2 3 4 5 6 7 8 9

server { listen 80; server_name cnsre.cn; location / { root /path/to/website; } }

重定向

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

server { listen 80; server_name www.cnsre.cn; return 301 http://cnsre.cn$request_uri; } server { listen 80; server_name www.cnsre.cn; location /redirect-url { return 301 http://otherdomain.com; } }

反向代理

1 2 3 4 5 6 7 8 9 10 11

server { listen 80; server_name cnsre.cn; location / { proxy_pass http://0.0.0.0:3000; # 其中 0.0.0.0:3000 是您的应用程序服务器(例如:node.js)绑定在 0.0.0.0 上,监听端口 3000 } }

负载均衡

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

upstream node_js { server 0.0.0.0:3000; server 0.0.0.0:4000; server 1.1.1.1; } server { listen 80; server_name cnsre.cn; location / { proxy_pass http://www.cnsre.cn; } }

SSL 协议

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

server { listen 443 ssl; server_name cnsre.cn; ssl on; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/privatekey.pem; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /path/to/fullchain.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_timeout 1h; ssl_session_cache shared:SSL:50m; add_header Strict-Transport-Security max-age=15768000; } # HTTP 到 HTTPS 的永久重定向 server { listen 80; server_name cnsre.cn; return 301 https://$host$request_uri; }

禁止任何敏感的请求路径

1 2 3 4 5 6 7 8 9

location ~ /\.git { deny all; } ## Disable .htaccess and other hidden files location ~ /\.(?!well-known).* { deny all; access_log off; log_not_found off; }

禁止不必要的 HTTP 请求方法

最常用的 HTTP 请求方法是 GET、POST、HEAD。对于任何其他未使用的方法,我们应该返回 444。

1 2 3 4 5 6

#只允许这些请求方法 if ($request_method !~ ^(GET|HEAD|POST)$ ) { return 444; } # 不接受删除,搜索和其他方法

添加请求速率限制

限速 会拦截很多恶意请求,也是防御网站的网络级和应用级DDoS攻击的常用工具。我们可以为单个 IP 添加最大请求限制。

1 2 3 4 5 6 7 8 9

limit_req_zone $binary_remote_addr zone=ip:10m rate=5r/s; server { listen 80; location / { limit_req zone=ip burst=12 delay=8; proxy_pass http://cnsre.cn; } }

点击劫持攻击

点击劫持攻击 会导致用户在不知不觉中下载恶意软件、访问恶意网页、提供凭据或敏感信息。 我们可以X-FRAME-OPTIONSHTTP Header 中注入以防止点击劫持攻击(甚至可以通过某些方式绕过)。这是通过在 nginx.conf 文件中添加以下内容来实现的

1

add_header X-Frame-Options "SAMEORIGIN";

X-XSS 保护

注入具有 X-XSS 保护的 HTTP 标头以减轻跨站点脚本攻击。修改 nginx.conf 文件添加以下内容

1

add_header X-XSS-Protection "1; mode=block";

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 侦听端口
  • 访问日志
  • 域名
  • 静态资源
  • 重定向
  • 反向代理
  • 负载均衡
  • SSL 协议
  • 禁止任何敏感的请求路径
  • 禁止不必要的 HTTP 请求方法
  • 添加请求速率限制
  • 点击劫持攻击
  • X-XSS 保护
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档