| 副标题[/!--empirenews.page--]  隐藏版本号
 http {  server_tokens off; } 
 经常会有针对某个版本的nginx安全漏洞出现,隐藏nginx版本号就成了主要的安全优化手段之一,当然最重要的是及时升级修复漏洞。 
 开启HTTPS server {  listen 443;  server_name ops-coffee.cn;    ssl on;  ssl_certificate /etc/nginx/server.crt;  ssl_certificate_key /etc/nginx/server.key;  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;  ssl_ciphers HIGH:!aNULL:!MD5; } 
 
    ssl on: 开启httpsssl_certificate: 配置nginx ssl证书的路径ssl_certificate_key: 配置nginx ssl证书key的路径ssl_protocols: 指定客户端建立连接时使用的ssl协议版本,如果不需要兼容TSLv1,直接去掉即可ssl_ciphers: 指定客户端连接时所使用的加密算法,你可以再这里配置更高安全的算法 添加黑白名单 白名单配置 location /admin/ {  allow 192.168.1.0/24;  deny all; } 
 上边表示只允许192.168.1.0/24网段的主机访问,拒绝其他所有 也可以写成黑名单的方式禁止某些地址访问,允许其他所有,例如 location /ops-coffee/ {  deny 192.168.1.0/24;  allow all; } 
 更多的时候客户端请求会经过层层代理,我们需要通过$http_x_forwarded_for来进行限制,可以这样写 set $allow false; if ($http_x_forwarded_for = "211.144.204.2") { set $allow true; } if ($http_x_forwarded_for ~ "108.2.66.[89]") { set $allow true; } if ($allow = false) { return 404; } 
 添加账号认证 server {  location / {  auth_basic "please input user&passwd";  auth_basic_user_file key/auth.key;  } } 
 限制请求方法 if ($request_method !~ ^(GET|POST)$ ) {  return 405; } 
 $request_method能够获取到请求nginx的method 配置只允许GETPOST方法访问,其他的method返回405 拒绝User-Agent if ($http_user_agent ~* LWP::Simple|BBBike|wget|curl) {  return 444; } 
 可能有一些不法者会利用wget/curl等工具扫描我们的网站,我们可以通过禁止相应的user-agent来简单的防范 Nginx的444状态比较特殊,如果返回444那么客户端将不会收到服务端返回的信息,就像是网站无法连接一样 图片防盗链 location /images/ {  valid_referers none blocked www.ops-coffee.cn ops-coffee.cn;  if ($invalid_referer) {  return 403;  } } 
 valid_referers:  验证referer,其中none允许referer为空,blocked允许不带协议的请求,除了以上两类外仅允许referer为www.ops-coffee.cn或ops-coffee.cn时访问images下的图片资源,否则返回403 当然你也可以给不符合referer规则的请求重定向到一个默认的图片,比如下边这样 location /images/ {  valid_referers blocked www.ops-coffee.cn ops-coffee.cn  if ($invalid_referer) {  rewrite ^/images/.*.(gif|jpg|jpeg|png)$ /static/qrcode.jpg last;  } } 
 控制并发连接数 可以通过ngx_http_limit_conn_module模块限制一个IP的并发连接数 http {  limit_conn_zone $binary_remote_addr zone=ops:10m;  server {  listen 80;  server_name ops-coffee.cn;    root /home/project/webapp;  index index.html;  location / {  limit_conn ops 10;  }  access_log /tmp/nginx_access.log main;  } } 
 limit_conn_zone: 设定保存各个键(例如$binary_remote_addr)状态的共享内存空间的参数,zone=空间名字:大小 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |