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
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
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#user nobody nobody;
##指定运行用户和组 ; docker容器注释, 报错无该账号
worker_processes 4;
##指定worker数量,建议此处auto
worker_rlimit_nofile 51200;
## 最大打开文件描述符

error_log logs/error.log notice;

#pid /var/run/nginx.pid;

events {
#use epoll;
## 使用epoll事件驱动模型
worker_connections 51200;
## 一个worker能处理的最大并发
}

http {
server_tokens off;
## 隐藏nginx版本
include mime.types;
default_type application/octet-stream;
## 设置默认版本
charset utf-8;
## 字符集

proxy_redirect off;
## 关闭代理重定向
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 20m;
## 设置客户端请求body的最大允许大小
client_body_buffer_size 256k;
## 设置客户端请求body的缓冲区大小
proxy_connect_timeout 90;
## 与后端服务器连接的超时时长
proxy_send_timeout 90;
## 把请求发送给后端服务器的超时时长
proxy_read_timeout 90;
## 等待后端服务器发送响应报文的超时时长
proxy_buffer_size 128k;
## 从代理服务器接收的响应的第一部分缓冲区
proxy_buffers 4 64k;
## 从代理服务器读取响应的缓冲区number和size
proxy_busy_buffers_size 128k;
## 限制size在响应尚未完全读取时可能忙于向客户端发送响应的缓冲区总数
proxy_temp_file_write_size 128k;
## 该指令设置缓冲临时文件的最大值


# client_body_temp_path /var/tmp/client_body_temp 1 2;
# ## 请求body临时目录
# proxy_temp_path /var/tmp/proxy_temp 1 2;
# ## 代理服务器接受数据临时目录
# fastcgi_temp_path /var/tmp/fastcgi_temp 1 2;
# ## FastCGI服务器接收临时目录
# uwsgi_temp_path /var/tmp/uwsgi_temp 1 2;
# ## uwsgi 服务器接收临时目录
# scgi_temp_path /var/tmp/scgi_temp 1 2;
# ##scgi服务器接收临时目录

ignore_invalid_headers on;
## 开启控制忽略具有无效名称的标头字段
server_names_hash_max_size 256;
## 服务器名称哈希表的最大值
server_names_hash_bucket_size 64;
## 服务器名称哈希表存储bucket大小
client_header_buffer_size 8k;
## 设置缓冲区以读取客户端请求标头
large_client_header_buffers 4 32k;
## 设置缓冲区以读取客户端请求标头最大值number和size
connection_pool_size 256;
## 允许精确调整每个连接的内存分配
request_pool_size 64k;
## 允许精确调整每个请求的内存分配

output_buffers 2 128k;
## 设置用于从磁盘读取响应的缓冲区number和size
postpone_output 1460;
## 客户端数据的传输最小值,单位字节

client_header_timeout 1m;
## 定义读取客户端请求标头的超时时长
client_body_timeout 3m;
## 定义读取客户端请求主体的超时时长
send_timeout 3m;
## 设置将响应传输到客户端的超时时长


log_format main
'$server_addr $remote_addr [$time_local] $msec+$connection '
'"$request" $status $connection $request_time $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

open_log_file_cache max=1000 inactive=20s min_uses=1 valid=1m;

access_log logs/access.log main;
log_not_found on;


sendfile on;
tcp_nodelay on;
## 启用长连接马上响应,提高性能
tcp_nopush off;
## 关闭套接字选项

reset_timedout_connection on;
## 启用重置超时连接
keepalive_timeout 10 5;
## 第一个参数设置长连接超时时长,第二个浏览器识别为keep-alive:timeout=5
keepalive_requests 100;
## 设置可通过一个保持活动连接提供的最大请求数


gzip on;
## 开启压缩
gzip_http_version 1.1;
## 启用压缩时协议最小版本
gzip_vary on;
gzip_proxied any;
## 为所有代理请求启用压缩
gzip_min_length 1024;
## 设置将被gzip压缩的响应的最小长度
gzip_comp_level 6;
## 设置压缩等级 gzip 压缩级别,1-10,数字越大压缩的越好
gzip_buffers 16 8k;
## 设置用于压缩响应的缓冲区number和size
gzip_proxied expired no-cache no-store private auth no_last_modified no_etag;
gzip_types text/plain
application/x-javascript
text/css
application/xml
application/json;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
#禁用IE 6 gzip

#添加反向代理, 需要在不同的二级域名下添加相同内容, 取决与访问人员访问哪个地址
#www.tsinghua-getinfo.com
server {

listen 3002 ssl;
listen 3003;

server_name p9.tsinghua-getinfo.net;

ssl_certificate CA/20200805_p9.tsinghua-getinfo.net.pem;
ssl_certificate_key CA/20200805_p9.tsinghua-getinfo.net.key;

ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;

ssl_ciphers HIGH:!aNULL:!MD5;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;


location / {
root html;
index index.html index.htm;
}

#设置所有文件夹下缓存设置 /需求:需要设置demo文件夹
location ~* \.(html|gif|jpg|jpeg|png|bmp|swf|js|css|svg) {

#禁止缓存,每次都从服务器请求 /添加head头部信息
add_header 'Cache-Control' 'no-cache';
#设置过期时间为30s /缓存时间
#expires 30s;
}
error_page 500 502 503 504 /50x.html;

}



}

gzip相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 开启gzip
gzip on;

# 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
gzip_min_length 1k;

# gzip 压缩级别,1-10,数字越大压缩的越好
gzip_comp_level 2;

# 进行压缩的文件类型。javascript有多种形式。其中的值可以在 mime.types 文件中找到。
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;

# 是否在http header中添加Vary: Accept-Encoding,建议开启
gzip_vary on;

# 禁用IE 6 gzip
gzip_disable "MSIE [1-6]\.";

代理相关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#标准反向代理案例
location /api/getinfo-website/v1/ {
proxy_pass http://172.17.0.1:6005/;
}

# 反向代理demo-api
location /api/demo/ {
# 目标地址
proxy_pass http://101.6.9.41:5000/;
# 将客户端请求的 Host 头信息传递给目标服务器
proxy_set_header Host $host;
# 将客户端真实的 IP 地址传递给目标服务器
proxy_set_header X-Real-IP $remote_addr;
# 将客户端真实的 IP 地址传递给目标服务器
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 将一个自定义的头部信息 X-NginX-Proxy 设置为 true,告诉目标服务器请求经过了 Nginx 反向代理
proxy_set_header X-NginX-Proxy true;
}

nginx
https://www.tohmm.cn/20240525/N-nginx-nginx配置/
作者
H.mm
发布于
2024年5月25日
许可协议