centos7下nginx.conf优化

2021-06-2811:44:28
评论
2,576 3236字

nginx.conf初始化配置

vim /etc/nginx/conf/nginx.conf
# 配置 worker 进程所属用户,用户组
user nginx nginx;
# 配置 worker 进程数量,为避免 cpu 切换损耗,配置和系统内核数一样即可,或者 auto
worker_processes auto; 
# 配置 cpu 亲和,auto 代表自动绑定
worker_cpu_affinity auto;
# nginx 进程打开文件描述符数目,此值覆盖 ulimit -n 的值。
worker_rlimit_nofile 65535;
error_log   /data/nginx/logs/error.log;
pid        logs/nginx.pid;
events {
    # 用这个模型来高效处理异步事件
    use epoll;
    # 设置为 on worker 进程轮流接受新链接,官方推荐设置为 off.高负载的情况下设置为 on.
    accept_mutex on;
    # worker进程是否同时接受连接所有新请求。默认为off,表示一次只接受一个新的请求。官方推荐 off
    multi_accept on;
    # 配置 一个 woker 进程处理的连接数
    worker_connections  4096;
}
http {
    # 关闭日志
    #access_log off;
	log_format timingjson escape=json '{"@timestamp":"$time_iso8601",'
		'"@source":"$server_addr",'
		'"hostname":"$hostname",'
		'"ip":"$http_x_forwarded_for",'
		'"client":"$remote_addr",'
		'"request_method":"$request_method",'
		'"scheme":"$scheme",'
		'"domain":"$server_name",'
		'"http_host":"$host",'
		'"referer":"$http_referer",'
		'"request":"$request_uri",'
		'"args":"$args",'
		'"size":$body_bytes_sent,'
		'"status": $status,'
		'"responsetime":$request_time,'
		'"upstreamtime":"$upstream_response_time",'
		'"upstreamaddr":"$upstream_addr",'
		'"http_user_agent":"$http_user_agent",'
		'"https":"$https"'
	'}';
	access_log  logs/access.json.log timingjson;
    # 隐藏响应头中的有关操作系统和web server(Nginx)版本号的信息,这样对于安全性是有好处的。
    server_tokens off;
    sendfile on;
    # 设置为非零值时,可限制单个 sendfile() 调用时传输的数据量。如果没有限制,一个快速 连接可能会完全占用工作进程。
    sendfile_max_chunk 5m;
    # tcp_nopush 和 tcp_nodeny 可以一起生效
    # 等数据包累计到一定大小发送,启用 sendfile 生效
    tcp_nopush on;
    # 该选项仅在连接转换到 keep-alive ,长连接状态时启用。让 tcp 尽快发包。
    tcp_nodelay on;
    # 为了尽快释放连接,可以设置小点. 15 至 30
    keepalive_timeout 15;
    # 客户端请求头部的缓冲区大小,默认 1k,当请求接口的时候需要设置 4k 整数倍.内存设置为系统内存页大小,命令 getconf PAGESIZE 内存页大小
    client_header_buffer_size 4k;
    large_client_header_buffers 8 8k;
    # 根据需求设置,接口请求可以设置大些
    client_body_buffer_size 128k;
    # 设置客户端请求体最大允许大小,默认 1m。检查的是 Content-Length。设置为 0 不检查。针对具体 location 配置
    client_max_body_size 1m;
    # 下面这个参数将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,
    # inactive是指经过多长时间文件没被请求后删除缓存。
    open_file_cache max=262140 inactive=20s;
    # 下面这个是指多长时间检查一次缓存的有效信息。
    open_file_cache_valid 30s;
    # open_file_cache指令中的inactive参数时间内文件的最少访问次数,低于这个数,缓存清除
    open_file_cache_min_uses 1;
    open_file_cache_errors on;
    reset_timedout_connection on;
    client_body_timeout 10;
    send_timeout 2;
    # 限制每个 ip 的连接数
    limit_conn_zone $binary_remote_addr zone=conn_limit_per_ip:10m;
    # 限制每个 ip 每秒的请求数
    limit_req_zone $binary_remote_addr zone=req_limit_per_ip:10m rate=10r/s;
    gzip on;
    # 在响应头中增加,Vary: Accept-Encoding
    gzip_vary on;
    # gzip压缩级别1-9,数字越大压缩效果越好,压缩时间也就越长CPU越高
    gzip_comp_level 5;
    # 申请内存时大小,如果源文件 9k,超过了 8K,那会申请 16*8K。
    gzip_buffers 8 128k;
    gzip_min_length 5K;
    gzip_proxied any;
    gzip_disable msie6;
    gzip_http_version 1.1;
    # 文本(js、text、css、xml、json)压缩比较好,图片已经进行过压缩,在压缩,效果不是很明显,还浪费 cpu
    gzip_types text/plain text/css text/xml text/javascript application/javascript application/json application/xml+rss application/rss+xml application/atom+xml image/svg+xml;
    # 安全相关 header
    add_header X-Frame-Options "SAMEORIGIN" always;
    add_header Feature-Policy "autoplay 'none'; camera 'none'" always;
    add_header X-XSS-Protection "1; mode=block" always;
    add_header X-Content-Type-Options "nosniff" always;
    add_header Referrer-Policy "no-referrer-when-downgrade" always;
    add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
    # 引入其他配置文件
        include /etc/nginx/conf.d/*.conf;
    server {
        listen 80;
        listen [::]:80;
        server_name  localhost;
        location / {
            root   html;
            index  index.html index.htm;
        }
	}
}

豌豆日志
  • 本文由 发表于 2021-06-2811:44:28
  • 转载请务必保留本文链接:https://pealog.com/515.html
Centos7 nat转发 系统运维

Centos7 nat转发

学校实验室有台服务器申请了固定的公网IP,能连接外部网络,同时该机器和其它几台内部服务器连接在一个路由器上。需要将该服务器的网络共享给其它内网服务器。进行如下设置即可。 首先,外网服务器有两根网线连接...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: