nginx配置文件详解(收藏)

前言

本篇文章将详细的注释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;
    #    }
    #}

}

结束语

如果本篇的内容对你有帮助,请随手点个赞,谢谢大家!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值