Nginx配置记录

Posted HaSaKing_721

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx配置记录相关的知识,希望对你有一定的参考价值。

############# 配置影响nginx全局的指令 ###############

user root; #配置用户或者组
worker_processes  4;#允许生成的进程数
error_log  logs/error.log  info;#制定日志路径,级别。
pid        logs/nginx.pid;  #指定nginx进程运行文件存放地址

##############  配置影响nginx服务器或与用户的网络连接 ##############
events {
	accept_mutex on;   #设置网路连接序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
    use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;    #最大连接数
}


############## TCP 长连接配置准备 ##############
stream{

	 log_format proxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';#日志自定义格式

    access_log /opt/software/nginx/logs/tcp-access.log proxy ; #日志
    open_log_file_cache off;

}


############## 配置代理 ##############
http {
    include       mime.types;#文件扩展名与文件类型映射表
    default_type  application/octet-stream; #默认文件类型

    log_format  main  '$remote_addr - $remote_user [$time_iso8601] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'; #日志自定义格式 main

    access_log  logs/access.log  main; #日志
    client_max_body_size 50m;#限制请求体的大小,若超过所设定的大小,返回413错误
    sendfile off;#允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
    server_tokens off; #隐藏版本号
    tcp_nopush     on;# 置与tcp_nodelay“互斥”。它可以配置一次发送数据包的大小。也就是说,数据包累积到一定大小后就发送。
    keepalive_timeout 600;# 连接超时时间 秒
    proxy_connect_timeout 18000; #半个小时  该指令设置与upstream server的连接超时时间
    proxy_send_timeout 18000;#发送请求给upstream服务器的超时时间
    proxy_read_timeout 18000;#与代理服务器的读超时时间
	proxy_buffer_size 128k;#指定了 upstream header 最大长度,如果响应头超过了这个长度,Nginx会报upstream sent too big header错误,然后client收到的是502。
	proxy_buffers   4 64k;#设置存储被代理服务器响应的body所占用的buffer个数和每个buffer大小
	proxy_busy_buffers_size 128k;#proxy_buffers和proxy_buffer_size
    tcp_nodelay on;# 把小包组成成大包,提高带宽利用率,nagle算法
    fastcgi_intercept_errors on; #是否传递4xx和5xx错误信息到客户端
    fastcgi_connect_timeout 300;#指定连接到后端FastCGI的超时时间
    fastcgi_send_timeout 300;#向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间
    fastcgi_read_timeout 300;#接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间。
    fastcgi_buffer_size 64k;#指定读取FastCGI应答第一部分需要用多大的缓冲区
    fastcgi_buffers 4 64k;#指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答。
    fastcgi_busy_buffers_size 128k;#默认值是fastcgi_buffers的两倍
    fastcgi_temp_file_write_size 128k;#在写入fastcgi_temp_path时将用多大的数据块
    fastcgi_next_upstream error timeout invalid_header http_500; #建立了一个可以根据健康状况轮询并可以重试的资源池
    underscores_in_headers on;##该属性默认为off,表示如果header name中包含下划线,则忽略掉

	##压缩
    gzip on; #开启
    gzip_min_length  1k;#设置压缩最小单位,小于不压缩
    gzip_buffers     4 32k;#设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流
    gzip_http_version 1.0;#识别http的协议版本。
    gzip_comp_level 2;#gzip压缩比/压缩级别,1-9
    gzip_types        text/plain application/x-javascript text/css  application/xml text/javascript application/javascript;#压缩类型
    gzip_vary on;#根据客户端的HTTP头来判断,是否需要压缩
	
	

############## upstream配置 ##############
#max_conns 节点的最大连接数
#slow_start 缓慢启动时间
#down 节点下线
#backup 备用节点
#max_fails 允许的最大失败数
#fail_timeout 超过最大失败数后的等待时间
#weight 权重


## ip_hash;#依据请求来源IP对真实服务器的分配 


	#网关路由
    upstream gateway_9999 {
        server  192.168.0.1:9999 max_fails=2 fail_timeout=10s weight=1 ;
    }
	
    server {
        listen       81;
        server_name  localhost;
		add_header 'Access-Control-Allow-Origin' '*';
        location ~* .*\\.(gif|jpg|JPG|JPEG|PNG|jpeg|png|zip|xlsx|xls|apk|xml|css|js|html)$ {
			root /data/yf;
			index index.html index.htm;
		}
    }

    include /usr/local/nginx/conf/conf.d/*.conf;
}

以上是关于Nginx配置记录的主要内容,如果未能解决你的问题,请参考以下文章

Nginx——Nginx启动报错Job for nginx.service failed because the control process exited with error code(代码片段

Nginx配置文件详细介绍

Nginx 跨域

nginx坑记录

记录工作中遇到的那些坑--NGINX配置worker_connections

CSP核心代码片段记录