前言:
最近相对比较闲,整理下以前工作中学到的东西,将接触到生产环境中的内容都深入学习一下,nginx与tomcat的优化是在山西ott项目上接触到的,直接操作配置文件很容易,但更多的配置参数与优化方式还是需要了解的,先得知道问题在哪里,然后再做。
Nginx调优
目录
软件调优
1.隐藏 Nginx 版本号
2.隐藏 Nginx 版本号和软件名
3.更改 Nginx 服务的默认用户
4.优化 Nginx worker 进程数
5.绑定 Nginx 进程到不同的 CPU 上
6.优化 Nginx 处理事件模型
7.优化 Nginx 单个进程允许的最大连接数
8.优化 Nginx worker 进程最大打开文件数
9.优化服务器域名的散列表大小
10.开启高效文件传输模式
11.优化 Nginx 连接超时时间
12.限制上传文件的大小
13.FastCGI 相关参数调优
14.配置 Nginx gzip 压缩
15.配置 Nginx expires 缓存
16.优化 Nginx日志(日志切割)
17.优化 Nginx 站点目录
18.配置 Nginx 防盗链
19.配置 Nginx 错误页面优雅显示
20.优化 Nginx 文件权限
21.Nginx 防爬虫优化
22.控制 Nginx 并发连接数
23. 集群代理优化
系统内核参数优化
Nginx软件调优
1. 隐藏 Nginx 版本号
为什么要隐藏 Nginx 版本号:一般来说,软件的漏洞都与版本有关,隐藏版本号是为了防止恶意用户利用软件漏洞进行攻击
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
27
28
29
30
31
32
|
[root@localhost ~] # cat /usr/local/nginx/conf/nginx.conf
worker_processes 1 ;
events {
worker_connections 1024 ;
}
http {
include mime.types;
default_type application / octet - stream;
sendfile on;
keepalive_timeout 65 ;
server_tokens off; # 隐藏版本号
server {
listen 80 ;
server_name www.abc.com;
location / {
root html / www;
index index.html index.htm;
}
}
}
...
[root@localhost ~] # /usr/local/nginx/sbin/nginx -t
[root@localhost ~] # /usr/local/nginx/sbin/nginx -s reload
[root@localhost ~] # curl -I 127.0.0.1 # 查看是否隐藏版本号
HTTP / 1.1 404 Not Found
Server: nginx
Date: Thu, 25 May 2017 05 : 23 : 03 GMT
Content - Type : text / html
Content - Length: 162
Connection: keep - alive
|
2.隐藏 Nginx 版本号和软件名
为什么要隐藏 Nginx 版本号和软件名:一般来说,软件的漏洞都与版本有关,隐藏版本号是为了防止恶意用户利用软件漏洞进行攻击,而软件名可以进行修改,否则黑客知道是 Nginx 服务器更容易进行攻击,需要注意的是,隐藏 Nginx 软件名需要重新编译安装 Nginx ,如果没有该方面需求尽量不要做
1) 修改:/usr/local/src/nginx-1.6.3/src/core/nginx.h
1
2
3
|
#define NGINX_VERSION "8.8.8.8" # 修改为想要显示的版本号
#define NGINX_VER "Google/" NGINX_VERSION # 修改为想要显示的软件名
#define NGINX_VAR "Google" # 修改为想要显示的软件名
|
2) 修改:/usr/local/src/nginx-1.6.3/src/http/ngx_http_header_filter_module.c
1
2
|
static char ngx_http_server_string[] = "Server: Google" CRLF; # 修改为想要显示的软件名
static char ngx_http_server_full_string[] = "Server: " NGINX_VER CRLF;
|
3) 修改:/usr/local/src/nginx-1.6.3/src/http/ngx_http_special_response.c
1
2
3
4
5
6
7
8
9
10
11
|
static u_char ngx_http_error_full_tail[] =
" NGINX_VER "(www.google.com)" CRLF # 此行定义对外展示的内容
" |