Nginx 服务基础到架构优化

一、安全方面

1.1、隐藏 nginx header 版本号

HTTP header,有个Server:nginx/1.x.x类似会暴露Web服务器所用软件名称以及版本号,这个也是大多数Web服务器最容易暴露版本号的地方,如下:

Server: nginx/1.12.2

修改nginx配置文件,在http模块下加入server_tokens off;

server_tokens off;

Server: nginx

1.2、 防止恶意解析访问企业网站

参考链接https://www.cnblogs.com/Mr-Ding/p/9575670.html

1.3、 防止恶意解析访问企业网站

为了防止别人恶意将大量域名解析到自己的网站上面。我们可以对nginx做防止恶意域名解析,这样就只能通过自己的域名访问网站,其他域名就会显示错误500

server {

listen 80 default;

return 500;

}

1.4、配置 nginx 图片及目录防盗链

未经同意,在别人的网站上调用,调用我们网站的内容来丰富自己,这样会浪费我们服务器的各种资源(网络、CPU、内存、IO等)

location ~* \.(gif|jpg|png|jpeg|zip)$ {  

    expires     30d;  

    valid_referers *.baidu.com *.google.com;  

    if ($invalid_referer) {  

     rewrite ^/ http://localhost/123.jpg;  

     #return 403;  

}  

    root    html/www;

}  

gif|jpg|png|jpeg|zip    表示对这些后缀的文件进行防盗

*.baidu.com *.google.com    表示这个请求可以正常指定文件资源

if{}    如果地址与上面的不匹配则跳转到rewrite指定的地址,也可以直接return返回403

rewrite ^/ http://localhost/123.jpg    可以放一张防盗图片

expires     30d    指定文件30天浏览缓存

1.5、配置 nginx 防爬虫

参考链接https://blog.csdn.net/shangrila_kun/article/details/89501343

1.6、限制 HTTP 请求方法

参考链接https://segmentfault.com/a/1190000019262947

1.7、 防 DOS 攻击

参考链接https://www.cnblogs.com/bokejiayuan/p/4341350.html

二、性能方面

2.1、配置 nginx worker 进程个数

每一个worker进程都是单线程进程,它们调用各个模块以实现多种多样的功能,如果这些模块确认不会出现阻塞式调用,那么,有多少个CPU内核就配置多少个worker进程,如果有可能出现阻塞式调用,就需要稍多一些worker进程

查看cpu核数

[root@local ~ ]# grep processor /proc/cpuinfo|wc -l

2

2.2、根据 CPU 核数进行 nginx 进程优化

Nginx worker_cpu_affinity 设置

worker_cpu_affinity 默认是没有开启的,根据例子我们可以看得出,0001 0010 0100 1000 分别代表第1、2、3、4个逻辑CPU,所以我们可以设置0010 0100 1000来将3个进程分别绑定到第2、3、4个逻辑CPU上

2.3、Nginx worker进程最大打开文件数

worker_rlimit_nofile 65536;

2.4、单个进程允许的客户端最大连接数,配置 nginx 事件处理模型为 epoll

events {

    use epoll;    #使用epoll模型

    worker_connections  20480;    #单个进程允许的客户端最大连接数

    multi_accept on;

}

三、HTTP 协议方面

3.1、 开启高效的文件传输模式(sendfile/tcp_nopush/tcp_nodelay)

http {

    sendfile on; # 开启文件的高效传输模式

    tcp_nopush on; # 激活 TCP_CORK socket 选择

    tcp_nodelay on; #数据在传输的过程中不进缓存

}

tcp_nopush on:当有数据时,先别着急发送, 确保数据包已经装满数据, 避免了网络拥塞

tcp_nodelay on:有时要抓紧发货, 确保数据尽快发送, 提高可数据传输效率

注意:tcp_nopush和tcp_nodelay只能二选一

3.2、设置连接超时时间

当连接很多时,及时断掉那些建立好的但又长时间不做事的连接,以减少其占用的服务器资源。如果黑客攻击,会不断地和服务器建立连接,因此设置连接超时以防止大量消耗服务器的资源

http {

include mime.types;

server_names_hash_bucket_size 512;

default_type application/octet-stream;

sendfile on;

keepalive_timeout 65;

tcp_nodelay on;

client_header_timeout 15;

client_body_timeout 15;

send_timeout 25;

include vhosts/*.conf;

}

keepalive_timeout :该参数用于设置客户端连接保持会话的超时时间,超过这个时间服务器会关闭该连接

client_header_timeout :该参数用于设置读取客户端请求头数据的超时时间,如果超时客户端还没有发送完整的 header 数据,服务器将返回 "Request time out (408)" 错误

client_body_timeout :该参数用于设置读取客户端请求主体数据的超时时间,如果超时客户端还没有发送完整的主体数据,服务器将返回 "Request time out (408)" 错误

send_timeout :用于指定响应客户端的超时时间,如果超过这个时间,客户端没有任何活动,Nginx 将会关闭连接

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,843评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,538评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,187评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,264评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,289评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,231评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,116评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,945评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,367评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,581评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,754评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,458评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,068评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,692评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,842评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,797评论 2 369
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,654评论 2 354