自己整理的NGINX配置文件,以后留着备用

自己整理的nginx配置文件,以后留着备用


#user  nobody; #nginx用户
worker_processes  1; #使用CPU核心数

#日志级别
error_log  logs/error.log  error;#debug | info | notice | warn | error | crit | alert | emerg
 
#PID进程 保存文件
#pid        logs/nginx.pid;
 
events {
  	#use epoll;   #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
    worker_connections  1024;#单个进程最大连接数(最大连接数=连接数*进程数)
}
 
http {
    include       mime.types; #文件扩展名与类型映射表
    default_type  application/octet-stream; #默认文件类型
    
    #limit模块,可防范一定量的DDOS攻击 
    #用来存储session会话的状态,如下是为session分配一个名为one的10M的内存存储区,限制了每秒只接受一个ip的一次请求 1r/s
    limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;
    limit_conn_zone $binary_remote_addr zone=addr:10m;
 

    #设定请求缓存    
    server_names_hash_bucket_size 128;
    client_header_buffer_size 512k;
    large_client_header_buffers 4 512k;
    client_max_body_size 100m;

    #请求日志
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;#表示启动高效传输文件的模式。sendfile可以让Nginx在传输文件时直接在磁盘和tcp socket之间传输数据。如果这个参数不开启,会先在用户空间(Nginx进程空间)申请一个buffer,用read函数把数据从磁盘读到cache,再从cache读取到用户空间的buffer,再用write函数把数据从用户空间的buffer写入到内核的buffer,最后到tcp socket。开启这个参数后可以让数据不用经过用户buffer。
    #激活tcp_nopush参数可以允许把httpresponse header和文件的开始放在一个文件里发布,减少网络报文段的数量
    tcp_nopush     on;
    #激活tcp_nodelay,内核会等待将更多的字节组成一个数据包,从而提高I/O性能
    tcp_nodelay on;
     
    #keepalive_timeout  0;
    keepalive_timeout  65;#连接超时时间,单位是秒

    #gzip压缩配置
    gzip  on;
	gzip_min_length 1k; #不压缩临界值,大于1K的才压缩,一般不用改
	gzip_buffers    4 16k; #缓冲
	gzip_http_version 1.0; #用了反向代理的话,末端通信是HTTP/1.0,有需求的应该也不用看我这科普文了;有这句的话注释了就行了,默认是HTTP/1.1
	gzip_comp_level 4; #压缩级别,1-10,数字越大压缩的越好,时间也越长,看心情随便改吧
	gzip_types text/plain text/css ;#application/x-javascript  application/xml application/javascript application/x-font-woff image/jpeg image/gif image/png;#进行压缩的文件类型,缺啥补啥就行了,JavaScript有两种写法,最好都写上吧,总有人抱怨js文件没有压缩,其实多写一种格式就行了
	gzip_vary on;#跟Squid等缓存服务有关,on的话会在Header里增加"Vary: Accept-Encoding"
	gzip_disable "MSIE [1-6]\.";#IE6对Gzip不怎么友好,不给它Gzip了
    
	#FastCGI相关参数:为了改善网站性能:减少资源占用,提高访问速度
	#fastcgi_connect_timeout 300;
	#fastcgi_send_timeout 300;
	#fastcgi_read_timeout 300;
	#fastcgi_buffer_size 64k;
	#fastcgi_buffers 4 64k;
	#fastcgi_busy_buffers_size 128k;
	#fastcgi_temp_file_write_size 128k;


    upstream tomcats { #服务器集群名字       
    	server localhost:8080 weight=1 max_fails=2 fail_timeout=30s; 
        server localhost:8081 weight=1 max_fails=2 fail_timeout=30s; 
    	#设置由 fail_timeout 定义的时间段内连接该主机的失败次数,以此来断定 fail_timeout 定义的时间段内该主机是否可用。默认情况下这个数值设置为 1。零值的话禁用这个数量的尝试。
    }
    #第一个server
    server {
        listen       80;
        server_name  server1;
        charset utf-8,gbk;
        root   html;
        #access_log  logs/host.access.log  main; #日志
        index  index.html index.htm;
		error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
	#第二个server
    server {
        listen       81;
        server_name  server2;
        index index.html index.htm index.jsp; 
        #access_log  logs/localhost.access.log  main;
        location / { 
         	root html1;
         	index index.html index.htm;	 
         	#allow   localhost ;  #允许访问的ip
         	#allow   127.0.0.1 ;  #允许访问的ip
            #deny    all;    
		} 
		location ~ /.svn/ {
	     	deny all;
	    }
		location /status {
			stub_status on;
			access_log off;
		}
		error_page   404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
	}
	#第三个server 集群
    server {
        listen       82;
        server_name  server3;
        charset utf-8,gbk;
        #access_log  logs/host.access.log  main; #日志
        location / {
            proxy_pass http://tomcats;
            proxy_redirect off;
	        proxy_set_header Host $host;    #后端的Web服务器可以通过X-Forwarded-For>获取用户真实IP
	        proxy_set_header X-Real-IP $remote_addr;
	        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	        client_max_body_size 10m;   #允许客户端请求的最大单文件字节数
	        client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
	        proxy_connect_timeout 90;   #nginx跟后端服务器连接超时时间(代理连接超时)
	        proxy_read_timeout 90;      #连接成功后,后端服务器响应时间(代理接收超时)
	        proxy_buffer_size 4k;       #设置代理服务器(nginx)保存用户头信息的缓冲区大小
	        proxy_buffers 6 32k;        #proxy_buffers缓冲区,网页平均在32k以下的话>,这样设置
	        proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
	        proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
        }
          
    }

    #第四个server开启 目录服务
    server {
        listen       83;
        server_name  server4;
        autoindex on;   #开启nginx目录浏览功能
		autoindex_exact_size off;   #文件大小从KB开始显示
		autoindex_localtime on;   #显示文件修改时间为服务器本地时间
		charset utf-8,GBK;# window下支持中文不友好
		root D:/jar/bootstarp/bootstrap-3.3.5;#名字一定不能有中文
	    location ~/fonts {
         	deny all; 
        }
    }


    
}

 

你可能感兴趣的:(nginx)