自己整理的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;
}
}
}