”尽管囿于现实漩涡,心中却仍是此间少年”。 ​​​​

天灰灰?会不会?
天灰灰?会不会?

应用场景
上次推荐大家开发和线上使用nginx服务器,只是说了proxy反向代理,今天来给你们补上nginx.conf优化,本人也是萌新,也就用到了什么讲什么.有什么意见欢迎留言,砸场子就吃我一套qwe;

nginx.conf

全套代码如下代码

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
user  www-data;

#user nobody;

#定义了nginx对外提供web服务时的worker进程数。最优值取决于许多因素,
#包括(但不限于)CPU核的数量、存储数据的硬盘数量及负载模式。
#不能确定的时候,将其设置为可用的CPU内核数将是一个好的开始(设置为“auto”将尝试自动检测它)。
worker_processes 2;

#日志之类的
# error_log logs/error.log;
#error_log logs/error.log notice;
# error_log logs/error.log info;

#pid logs/nginx.pid;

#events模块中包含nginx中所有处理连接的设置。
events {
#worker_connections 设置可由一个worker进程同时打开的最大连接数。如果设置了上面提到的worker_rlimit_nofile,我们可以将这个值设得很高。
#记住,最大客户数也由系统的可用socket连接数限制(~ 64K),所以设置不切实际的高没什么好处。
worker_connections 2048;
#multi_accept 告诉nginx收到一个新连接通知后接受尽可能多的连接
multi_accept on;
#use 设置用于复用客户端线程的轮询方法。如果你使用Linux 2.6+,你应该使用epoll。如果你使用*BSD,你应该使用kqueue。
#(值得注意的是如果你不知道Nginx该使用哪种轮询方法的话,它会选择一个最适合你操作系统的)
use epoll;


}


http {
# include mime.types;
# default_type application/octet-stream;

#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';

#access_log logs/access.log main;

#server_tokens 并不会让nginx执行的速度更快,但它可以关闭在错误页面中的nginx版本数字,这样对于安全性是有好处的。
server_tokens off;
#keepalive_timeout 0;
sendfile on; # 因为主要是小文件,就不启用 aio 了
sendfile_max_chunk 512k; # 较大的文件不要一次全读取了,浪费内存
tcp_nopush on; # 对于 keepalive 连接,可以尽快发送响应,告诉nginx在一个数据包里发送所有头文件,而不一个接一个的发送。
tcp_nodelay on; # 包填满了再发,与 sendfile 组合用
#给客户端分配keep-alive链接超时时间。服务器将在这个超时时间过后关闭链接。我们将它设置低些可以让ngnix持续工作的时间更长。
keepalive_timeout 10;
#client_header_timeout 和client_body_timeout 设置请求头和请求体(各自)的超时时间。我们也可以把这个设置低些。
client_header_timeout 10;
client_body_timeout 10;
#reset_timeout_connection 告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间。
reset_timedout_connection on;
#send_timeout 指定客户端的响应超时时间。这个设置不会用于整个转发器,而是在两次客户端读取操作之间。如果在这段时间内,客户端没有读取任何数据,nginx就会关闭连接。
send_timeout 10;
#limit_conn_zone 设置用于保存各种key(比如当前连接数)的共享内存的参数。5m就是5兆字节,这个值应该被设置的足够大以存储(32K*5)32byte状态或者(16K*5)64byte状态。
limit_conn_zone $binary_remote_addr zone=addr:5m;
#每个ip的最大连接数
limit_conn addr 100;
#是否开启压缩
gzip on;
#最小压缩大小
gzip_min_length 1000;
#压缩缓冲区内存
gzip_buffers 4 16k;
#允许或者禁止压缩基于请求和响应的响应流。我们设置为any,意味着将会压缩所有的请求。
gzip_proxied any;
#对http1.0协议及以上的进行压缩
gzip_http_version 1.0;
#压缩等级,共1-9
gzip_comp_level 4;
#压缩文件的类型
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
#判断浏览器是否支持gzip
gzip_vary on;
# 禁用IE6的gzip压缩
gzip_disable "MSIE [1-6].";
#设置字符集为utf-8
charset UTF-8;


server {
#监听端口
listen 80;
server_name localhost;
server_tokens off;

#access_log logs/host.access.log main;

#访问根目录
location / {
add_header X-Frame-Options SAMEORIGIN; # 只允许本站用 frame 来嵌套
add_header X-XSS-Protection "1; mode=block"; # XSS 保护
add_header X-Content-Type-Options nosniff;#响应头可以禁用浏览器的类型猜测行为
root /mnt/hexo-auto-deploy/hexo/public;#根目录路径
index index.html index.htm;


}
#用于缓存
location ~.*\.(js|css)?$ {
access_log off;
expires 1h;
}
#用于缓存
location ~* ^.+\.(eot|ttf|otf|woff|woff2|svg)$ {
access_log off;
expires max;
}



}




}

该加的注释我都加了,祝大家一次成功
运行环境 是在阿里云ECS utuntu 16 nginx版本号为1.13.0
当然在liunx这串代码是可以的,window要换一下user还有localhost路径就ok了

附赠liunx下nginx命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo nginx #打开 nginx
nginx -s reload|reopen|stop|quit #重新加载配置|重启|停止|退出 nginx
nginx -t #测试配置是否有语法错误

nginx [-?hvVtq] [-s signal] [-c filename] [-p prefix] [-g directives]

-?,-h : 打开帮助信息
-v : 显示版本信息并退出
-V : 显示版本和配置选项信息,然后退出
-t : 检测配置文件是否有语法错误,然后退出
-q : 在检测配置文件期间屏蔽非错误信息
-s signal : 给一个 nginx 主进程发送信号:stop(停止), quit(退出), reopen(重启), reload(重新加载配置文件)
-p prefix : 设置前缀路径(默认是:/usr/local/Cellar/nginx/1.2.6/)
-c filename : 设置配置文件(默认是:/usr/local/etc/nginx/nginx.conf)
-g directives : 设置配置文件外的全局指令

请注意 nginx -qnginx -t贼tm有用,每次配置文件上去时都测一测,免得没报错你就以为对了,不一定的,相信我,小心无大错,我就是吃过这个亏

愿你深情不被辜负 动情且可以长情