centos7下nginx.conf优化

2021-06-2811:44:28
评论

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   /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    # 用这个模型来高效处理异步事件
    use epoll;
    # 设置为 on worker 进程轮流接受新链接,官方推荐设置为 off.高负载的情况下设置为 on.
    accept_mutex on;
    # worker进程是否同时接受连接所有新请求。默认为off,表示一次只接受一个新的请求。官方推荐 off
    multi_accept on;
    # 配置 一个 woker 进程处理的连接数
    worker_connections  65535;
}
http {
    charset utf-8;
	# json日志
	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  /var/log/nginx/access.log timingjson;
	
	# 关闭日志
    #access_log off;
	
    # 隐藏响应头中的版本号
    server_tokens off;
    sendfile on;
	
	# MIME
    include                mime.types;
    default_type           application/octet-stream;
	
	# 客户端请求体允许大小
    client_max_body_size 512M;
    fastcgi_buffers 64 4K;
	
    # 设置为非零值时,可限制单个 sendfile() 调用时传输的数据量。如果没有限制,一个快速 连接可能会完全占用工作进程。
    sendfile_max_chunk 5m;
    # tcp_nopush 和 tcp_nodeny 可以一起生效
    # 等数据包累计到一定大小发送,启用 sendfile 生效
    tcp_nopush on;
    # 该选项仅在连接转换到 keep-alive ,长连接状态时启用。让 tcp 尽快发包。
    tcp_nodelay on;
    # 为了尽快释放连接,可以设置小点. 15 至 30
    keepalive_timeout 15;
    keepalive_requests 65535;
    # 客户端请求头部的缓冲区大小,默认 1k,当请求接口的时候需要设置 4k 整数倍.内存设置为系统内存页大小,命令 getconf PAGESIZE 内存页大小
    client_header_buffer_size 4k;
    large_client_header_buffers 8 8k;
    # 根据需求设置,接口请求可以设置大些
    client_body_buffer_size 128k;

    # 下面这个参数将为打开文件指定缓存,默认是没有启用的,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,不删除 ETag 标头
    gzip on;
    gzip_vary on;
    gzip_comp_level 4;
    gzip_buffers 8 128k;
    gzip_min_length 256;
    gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
    gzip_disable msie6;
    gzip_http_version 1.1;
    gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

    # 需要ngx_pagespeed模块支持
    #pagespeed off;

    # HTTP 响应头设置
    add_header Referrer-Policy                      "no-referrer"   always;
    add_header X-Content-Type-Options               "nosniff"       always;
    add_header X-Download-Options                   "noopen"        always;
    add_header X-Frame-Options                      "SAMEORIGIN"    always;
    add_header X-Permitted-Cross-Domain-Policies    "none"          always;
    add_header X-Robots-Tag                         "none"          always;
    add_header X-XSS-Protection                     "1; mode=block" always;
    add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
	# HSTS设置
	# add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
	
    # 引入其他配置文件
	include /etc/nginx/conf.d/*.conf;
    server {
        listen 80;
        server_name  localhost;
        location / {
            root   /usr/share/nginx/html/default;
            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: