nginx常用配置解释

该配置文件下配置了三个站点

1.\work  127.0.0.1:8181\hp

2.\es      127.0.0.1:9091\es

3.\          127.0.0.1:9191\

 


#user  nobody;
#  参考:https://blog.csdn.net/qq_33730348/article/details/80481962
# 工作进程:一般设置等于小于CPU的核心数 如果不知道怎么配置 可以配置为auto 
#worker_processes  auto;
worker_processes  1;
# 进程的最大打开文件数
worker_rlimit_nofile 65535;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;

#pid        logs/nginx.pid;



events {
	# 调整Nginx单个进程允许客户端的最大连接数
	# (假如是nginx直接返回数据到浏览器,那么就最大连接数是worker_connections*worker_processes)
	# (假如是反向代理的话还要除以2,因为有一半的连接是nginx和服务器的连接)
    worker_connections  4096;
	#设定Nginx的工作模式 通常不需要明确指定它,因为nginx默认使用最有效的方法。
	#use		icop;
	#最大可用客户数;
	#maxClient	2000;
	# 防止惊群效应
	accept_mutex	on;
	# 开启进程同时接收多个请求
	multi_accept	on;
}


http {

    include       mime.types;
    default_type  application/octet-stream;
	#日志格式
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_x_forwarded_for"';
	# 访问日志
    access_log  logs/access.log  main;

	# 开启高效文件传输
    sendfile        on;
	# 数据包不会马上发出去,等待一定大小在一次发出,有助于解决网络堵塞
	tcp_nopush		on;
    # 马上发送数据
	# tcp_nodelay		on;
   
	
	#设置可通过一个保持活动连接提供的最大请求数。在发出最大请求数后,将关闭连接。
	#	keepalive_requests number;
    #keepalive_timeout  0;
	#用于设置客户端连接保持会话的超时时间为60秒。超过这个时间,服务器会关闭该连接
    keepalive_timeout  65;
	#限制用户通过某一请求向服务端发送请求的次数
	keepalive_requests 70;
	#开启压缩
    gzip  on;
	#从header头中获取的主机名
	proxy_set_header Host $host;
	#获取header头中获取的主机的真实IP
	proxy_set_header X-Real-IP $remote_addr;
	#后端服务器可以从X-Forwarded头中获取用户的真实ip 
	proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_connect_timeout 90s; #Nginx跟后端服务器连接超时时间(代理连接超时)
    proxy_send_timeout 90s;#后端服务器数据回传时间(代理发送超时)
    proxy_read_timeout 120s;#连接成功后,后端服务器响应时间(代理接收超时)
	proxy_buffer_size	4k;#设置代理服务器nginx保存用户头信息的缓冲区大小
	proxy_buffers	4	32k;#proxy_buffers缓冲区,网页平均在32k以下的设置
	proxy_busy_buffers_size	64k;#高负荷下缓冲大小(proxy_buffers*2)
	proxy_temp_file_write_size	64k;#设定缓冲文件夹大小,大于这个值,就会发出
	
	
	# 上传文件大小限制
	client_max_body_size 100m;
	#设置读取客户端请求头数据的超时时间 如果超过这个时间,客户端还没有发送完整的header数据,服务端将数据返回“Request time out (408)”错误
	client_header_timeout 30;
	# 设置读取客户端请求主体的超时时间。这个超时仅仅为两次成功的读取操作之间的一个超时,
	# 非请求整个主体数据的超时时间,如果在这个超时时间内,客户端没有发送任何数据,Nginx将返回“Request time out(408)”错误,默认值是60.
	client_body_timeout 30;
	#指定响应客户端的超时时间。这个超时时间仅限于两个链接活动之间的事件,如果超过这个时间,客户端没有任何活动,Nginx将会关闭连接,默认值为60s,可以改为参考值25s
	send_timeout 30;
	#设置用于请求主体的缓冲区大小
	client_body_buffer_size		128k;
	
	server {
        listen       80;
        server_name  localhost;
		charset		utf-8;

        #charset koi8-r;

		# 匹配/woker请求
		location = /woker/ { 
			proxy_pass   http://127.0.0.1:8181;
        } 
		# 匹配woker站点.do 和jsp 结尾的请求
        location ~ ^/woker/.*\.(do|jsp)$ { 
			proxy_pass   http://127.0.0.1:8181;
        }
        location ~ ^/woker/.*{ 
			# 对应的woker站点的目录上一级
			root E:/IDEA_SOURCE/worker/target/;
			expires 30d; 
        } 
		
		# 匹配另一站点首页
		location = / { 
			proxy_pass   http://127.0.0.1:9191;
        }
		location = /market { 
			proxy_pass   http://127.0.0.1:9191;
        }		
		
		# 静态资源文件下载
		location ~ ^/(upload|resources|images)/.* {
			# /对应的目录的上一级目录
			root E:/webapp/app/;
			expires 30d; 
		}
		location = /favicon.ico {
			# /对应的目录的上一级目录
			root E:/webapp/app/;
			expires 30d; 
		}
		# 匹配/站点jsp和do结尾请求
		location ~ ^/.*\.(jsp|do|html)$ { 
			proxy_pass   http://127.0.0.1:9191;
        } 
		
		# 匹配es站点
		location /es/ { 
			proxy_pass   http://localhost:9091;
        } 
		
		# nginx状态查看配置
		location /NginxStatus{
			stub_status		on;
			
			allow			127.0.0.1;
			#auth_basic		"NginxStatus";
			#auth_basic_user_file	confpasswd.conf;	
		}
		
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }
}

反向代理一些配置详解: 

nginx常用配置解释_第1张图片

proxy_connect_timeout 90s; # 代表上图中 2 的时间

 

你可能感兴趣的:(nginx)