3. Nginx(Web)配置
最后更新于:2022-04-02 07:46:51
### Web配置
需创建扩展目录
```shell
mkdir -p /usr/local/nginx/conf/extra
```
#### 主配置文件 nginx.conf
```shell
user nginx nginx;
# 设置所有worker进程可以打开的最大文件句柄数
worker_rlimit_nofile 65535;
worker_processes auto;
worker_cpu_affinity auto;
events {
# 让多个worker进程轮询相应新请求
accept_mutex on;
# 限制每个worker进程的并发连接数
worker_connections 10240;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
# 开启高效文件传输模式
sendfile on;
tcp_nodelay on;
tcp_nopush on;
# 设置客户端连接保持会话的超时时间
keepalive_timeout 10;
# 设置客户端请求头读取超时时间
client_header_timeout 15;
# 设置客户端请求主体读取超时时间
client_body_timeout 15;
# 指定响应客户端的超时时间
send_timeout 15;
# 设置最大的容许的客户端请求主体大小
client_max_body_size 10M;
# 将http请求响应头里的nginx版本号信息隐藏
server_tokens off;
# 开启压缩
gzip on;
# 设置容许压缩的页面最小字节数
gzip_min_length 1k;
# 申请4个单位为32K的内存作为压缩结果流缓存
gzip_buffers 4 32k;
# 压缩的版本
gzip_http_version 1.1;
# 由于IE6对Gzip压缩效果不好,建议在IE6的环境下关闭压缩功能
gzip_disable "MSIE[1-6]";
# 压缩比率
gzip_comp_level 3;
# 指定压缩的类型
gzip_types text/plain text/css text/xml application/javascript application/x-javascript;
# 设置从web服务器传给缓存服务器的时候不被解压。只有传送到用户后才解压缩
gzip_vary on;
# 设置为Json格式,方便ELK日志分析软件处理
log_format json_main '{"@timestamp":"$time_iso8601",'
'"remote_addr":"$server_addr",'
'"remote_user":"$remote_user",'
'"request_time":"$request_time",'
'"request":"$request",'
'"body_bytes_sent":"$body_bytes_sent",'
'"request_method":"$request_method",'
'"upstream_response_time":"$upstream_response_time",'
'"upstream_addr":"$upstream_addr",'
'"url":"$uri",'
'"http_x_forwarded_for":"$http_x_forwarded_for",'
'"http_referrer":"$http_referer",'
'"status":"$status"}';
access_log logs/access.log json_main;
error_log logs/error.log error;
include extra/*.conf ;
}
```
#### 扩展配置文件(便于管理) www.conf
```shell
server {
listen 8000;
server_name www.noteshare.cn;
root /data/noteshare/;
set_real_ip_from 10.0.0.0/16;
set_real_ip_from 192.168.0.0/16;
real_ip_header X-Forwarded-For;
real_ip_recursive on;
location / {
index index.html;
}
# 设置资源缓存时间
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 3650d;
}
# 设置资源缓存时间
location ~ .*\.(js|css)?$ {
expires 30d;
}
# 设置状态页访问信息
location /ngx_status {
stub_status on;
access_log off;
allow 192.168.0.0/16;
deny all;
}
access_log logs/lego_access.log json_main;
}
```
';