前言
本篇文章将详细的注释nginx配置文件中的每个参数的意思,可以看成是一份参考文档,方便以后查阅。
#指定 Nginx Worker 进程运行用户以及用户组
#你可以把这行改成"user root;",那nginx就是以root用户的身份运行,这样可以解决一下比如本地某些静态资源文件无权访问的问题
#user nobody;
#开启进程数 <=CPU数
worker_processes 1;
#错误日志保存位置
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#进程号保存文件
#pid logs/nginx.pid;
#每个进程最大连接数(最大连接=连接数x进程数)每个worker允许同时产生多少个链接,默认1024
events {
worker_connections 1024;
}
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_user_agent" "$http_x_forwarded_for"';
#请求日志保存位置
#access_log logs/access.log main;
#打开发送文件
sendfile on;
#设置request请求body大小,不设置默认1M,上传大文件时通常会超过1M
client_max_body_size 8m;
#缓冲区代理缓冲用户端请求的最大字节数,
#client_body_buffer_size 128k;
#nginx跟后端服务器连接超时时间(代理连接超时)
#proxy_connect_timeout 600;
#连接成功后,后端服务器响应时间(代理接收超时)
#proxy_read_timeout 600;
#后端服务器数据回传时间(代理发送超时)
#proxy_send_timeout 6000;
#设置代理服务器(nginx)保存用户头信息的缓冲区大小
#proxy_buffer_size 16k;
#proxy_buffers缓冲区,网页平均在64k以下的设置
#proxy_buffers 4 64k;
#高负荷下缓冲大小(proxy_buffers*2)
#proxy_busy_buffers_size 64k;
#设定缓存文件夹大小,大于这个值,将从upstream服务器传
#proxy_temp_file_write_size 64k;
#tcp_nopush on;
#keepalive_timeout 0;
#连接超时时间
keepalive_timeout 65;
#打开gzip压缩
gzip on;
#不压缩临界值,大于1K的才压缩,一般不用改
gzip_min_length 1k;
#设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流,这里设置以16k为单位的4倍申请内存
gzip_buffers 4 16k;
#默认为http 1.1,现在99.99%的浏览器基本上都支持gzip解压了,所有无需设置此项
#gzip_http_version 1.0;
#gzip压缩比,1 最小处理速度最快,9 最大但处理最慢(传输快但比较消耗cpu)
gzip_comp_level 2;
#要压缩的文件类型,注意"text/html"类型无论是否指定总是会被压缩的
gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/javascript application/x-httpd-php image/jpeg image/gif image/png;
#on的话会在Header里增加"Vary: Accept-Encoding",给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩
#我这里的浏览器肯定支持gzip压缩,所以就不开启此功能了
gzip_vary off;
#IE6对Gzip不怎么友好,不给它Gzip压缩了
gzip_disable "MSIE [1-6]\.";
#设定请求缓冲
#client_header_buffer_size 1k;
#large_client_header_buffers 4 4k;
#设定负载均衡的服务器列表,名字可以随意定义,只要下面在引用的时候对应好就行
#upstream myproject {
#weigth参数表示权值,权值越高被分配到的几率越大
#max_fails 当有#max_fails个请求失败,就表示后端的服务器不可用,默认为1,将其设置为0可以关闭检查
#fail_timeout 在以后的#fail_timeout时间内nginx不会再把请求发往已检查出标记为不可用的服务器
# backup 当其他非backup状态的server不能正常工作时,才请求该server,简称热备
#}
#负载均衡的服务器列表,这里配置了两个服务地址,每次请求过来时就会按照权重从这两个服务中选择一个来转发
#upstream myapp {
# ip_hash; 每个请求按访问ip的hash结果分配
# least_conn; 把请求转发给连接数较少的后端服务器
# server 192.168.1.10:8080 weight=1 max_fails=2 fail_timeout=30s;
# server 192.168.1.11:8080 weight=2 max_fails=2 fail_timeout=30s;
# server 192.168.1.13:8080 backup;
#}
#配置虚拟主机,基于域名、ip和端口
server {
#监听端口
listen 80;
#监听域名,域名可以有多个,用空格隔开,也可以写成ip
server_name localhost;
#charset koi8-r;
#nginx访问日志放在logs/host.access.log下,并且使用main格式(还可以自定义格式)
#access_log logs/host.access.log main;
#返回的相应文件地址
location / {
#把请求该nginx的客户端ip地址设置到请求头里面去,key为X-real-ip,方便后续服务获取客户端真实ip
#proxy_set_header X-real-ip $remote_addr;
#负载均衡反向代理,使用上面定义的名为myapp的负载均衡的服务器列表,使请求按照负载均衡配置转发到各个服务器上
#proxy_pass http://myapp;
#deny 127.0.0.1; # 拒绝的ip
#allow 192.168.1.10; # 允许的i
#添加返回头信息,通过添加以下返回头可以使请求支持跨域
#add_header Access-Control-Allow-Origin *;
#add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept, Authorization";
#add_header Access-Control-Allow-Methods "GET, POST, OPTIONS, PUT, DELETE";
#返回根路径地址,这是个相对路径,即nginx目录下的html目录
root html;
#默认访问文件
index index.html index.htm;
}
#配置反向代理tomcat服务器:拦截以.jsp结尾的请求转向到tomcat,192.168.1.10:8080是个tomcat服务
#location ~ \.jsp$ {
# proxy_pass http://192.168.1.10:8080;
#}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
#错误页面及其返回地址,这里指发生500、502、503、504的都跳转到/50x.html
error_page 500 502 503 504 /50x.html;
#/50x.html的请求到nginx目录下的html目录中寻找对应的页面,即html文件夹下的50x.html
location = /50x.html {
root html;
}
}
#虚拟主机配置:
server {
listen 1234;
server_name cool_summer_moon.com;
location / {
#正则表达式匹配uri方式:在/usr/local/nginx/cool_summer_moon.com下 建立一个test123.html 然后使用正则匹配
#location ~ test {
## 重写语法:if return (条件 = ~ ~*)
#if ($remote_addr = 192.168.1.200) {
# return 401;
#}
#if ($http_user_agent ~* firefox) {
# rewrite ^.*$ /firefox.html;
# break;
#}
root cool_summer_moon.com;
index index.html;
}
#location /goods {
# rewrite "goods-(\d{1,5})\.html" /goods-ctrl.html;
# root cool_summer_moon.com;
# index index.html;
#}
#配置访问日志
access_log logs/bhz.com.access.log main;
}
# HTTPS server
#
#server {
# listen 443 ssl;
# server_name localhost;
# ssl_certificate cert.pem;
# ssl_certificate_key cert.key;
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 5m;
# ssl_ciphers HIGH:!aNULL:!MD5;
# ssl_prefer_server_ciphers on;
# location / {
# root html;
# index index.html index.htm;
# }
#}
}
结束语
如果本篇的内容对你有帮助,请随手点个赞,谢谢大家!