副问题[/!--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: 开启https
- ssl_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=空间名字:巨细
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|