`
liyonghui160com
  • 浏览: 777033 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nginx.conf配置文件详解

阅读更多

 

 

#运行用户
    user www www;
    #启动进程,通常设置成和cpu的数量相等
    worker_processes  4;
	worker_cpu_affinity 0001 0010 0100 1000;
	
	worker_processes  8;
	worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

    #全局错误日志及PID文件 日志级别:debug|info|notice|warn|error|crit
    error_log  /var/log/nginx/error.log error;
    pid        /var/run/nginx.pid;
	
	worker_rlimit_nofile 51200; 更改worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制

    #工作模式及连接数配置
    events {
        use epoll;             #epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,可以大大提高nginx的性能
        worker_connections  1024;#单个后台worker process进程的最大并发链接数
        multi_accept off;       #多个worker按串行方式来处理连接,也就是一个连接只有一个worker被唤醒,其他的处于休眠状态。设置为off后,多个worker按并行方式来处理连接,也就是一个连接会唤醒所有的worker,知道连接分配完毕,没有取得连接的继续休眠。当你的服务器连接数不多时,开启这个参数会让负载有一定程度的降低。但是当服务器的吞吐量很大时,为了效率,请关闭这个参数

    }

    #设定http服务器,利用它的反向代理功能提供负载均衡支持
    http {
        include       mime.types;#设定mime类型,类型由mime.type文件定义
        default_type  text/html;
		client_max_body_size 8m; #客户端上传的body的最大值
		
		lua_max_pending_timers 10240;

        sendfile on; #sendfile 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件,对于普通应用,必须设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为 off,以平衡磁盘与网络I/O处理速度,降低系统的uptime.
        tcp_nopush on; #数据包会累积一下再一起传输,可以提高一些传输效率
        server_tokens off;#关闭在错误页面中的nginx版本数字
        
		if_modified_since exact  #判断页面是不是最新的,浏览器本地最新的浏览器从本地获取。
		
        tcp_nodelay  on; #小的数据包不等待直接传输
		access_log off; 
		error_log /var/log/nginx/error.log crit;#告诉nginx只能记录严重的错误
		
		limit_conn addr 100;#为给定的key设置最大连接数。这里key是addr,我们设置的值是100,也就是说我们允许每一个IP地址最多同时打开有100个连接
		
		#连接超时时间
        keepalive_timeout  10; #keepalive_disable none; 
		client_header_timeout 10;#设置请求头和请求体(各自)的超时时间。我们也可以把这个设置低些
		client_body_timeout 10;
		reset_timeout_connection on;#关闭不响应的客户端连接
		send_timeout 10;#客户端没有读取任何数据,nginx就会关闭连接
       
	    client_header_buffer_size 128k; #设置header的缓冲大小
	    large_client _header_buffer 4 128k;#客户请求头缓冲大小。nginx默认会用client_header_buffer_size这个buffer来读取header值,如果header过大,它会使用large_client_header_buffers来读取
		
		#开启gzip压缩
        gzip  on;
        gzip_disable "MSIE [1-6]\.(?!.*SV1)"; #禁用某些浏览器的gizp   Microsoft Internet Explorer,简称MSIE
		gzip_proxied any;   #Nginx作为反向代理的时候启用,根据某些请求和应答来决定是否在对代理请求的应答启用gzip压缩
							#expired - 启用压缩,如果header头中包含 "Expires" 头信息
							#no-cache - 启用压缩,如果header头中包含 "Cache-Control:no-cache" 头信息
							#no-store - 启用压缩,如果header头中包含 "Cache-Control:no-store" 头信息
							#private - 启用压缩,如果header头中包含 "Cache-Control:private" 头信息
							#no_last_modified - 启用压缩,如果header头中不包含 "Last-Modified" 头信息
							#no_etag - 启用压缩 ,如果header头中不包含 "ETag" 头信息
							#auth - 启用压缩 , 如果header头中包含 "Authorization" 头信息
							#any - 无条件启用压缩
		gzip_min_length 1000; #对数据启用压缩的最少字节数。如果一个请求小于1000字节,我们最好不要压缩它
		gzip_comp_level 4; #设置数据的压缩等级。这个等级可以是1-9之间的任意数值,9是最慢但是压缩比最大的。我们设置为4,这是一个比较折中的设置
		gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
		
		#php fastcgi的缓存
		fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=5m;
		fastcgi_cache_key "$scheme$request_method$host$request_uri";
		fastcgi_connect_timeout 300;
		fastcgi_send_timeout 300;
		fastcgi_read_timeout 300;
		fastcgi_buffer_size 16k;
		fastcgi_buffers 16 16k;
		fastcgi_busy_buffers_size 16k;
		fastcgi_temp_file_write_size 16k;
		fastcgi_cache TEST;
		fastcgi_cache_valid 200 302 1h;
		fastcgi_cache_valid 301 1d;
		fastcgi_cache_valid any 1m;
		fastcgi_cache_min_uses 1;
		fastcgi_cache_use_stale error timeout invalid_header http_500;
		
	   
        

        open_file_cache max=204800 inactive=20s;#nginx打开文件 缓存的同时也指定了缓存最大数目,以及缓存的时间,缓存溢出,最长使用过的文件(LRU)将被移除
        open_file_cache_valid 30s;#在open_file_cache中指定检测正确信息的间隔时间
		open_file_cache_min_uses 2;#定义了open_file_cache中指令参数不活动时间期间里最小的文件数
		open_file_cache_errors on;
		
		#proxy代理缓存
		proxy_cache_path /cache/proxy_cache levels=1:2 keys_zone=cache_one:100m inactive=1d max_size=30g; #100m和30G,按照服务要求,适当增大
		proxy_temp_path /cache/proxy_temp;

        include /etc/nginx/conf.d/*.conf;
        include /etc/nginx/sites-enabled/*;

        #设定负载均衡的服务器列表,实现nginx的内部跳转
        upstream mysvr {
			#weigth参数表示权值,权值越高被分配到的几率越大
			#本机上的Squid开启3128端口
			server 192.168.8.1:80  weight=5;
			server 192.168.8.2:80  weight=1;
			server 192.168.8.3:80  weight=6;
        }
		
		
		server {
        listen 2001;
        server_name  gmslog.jd.com;
			location / {
				autoindex on;
				root   "/export/Logs/gms-log";
				index  index.html index.log;
			}
		}


       server {
        #侦听80端口
        listen 80;
        #定义使用www.xx.com访问
        server_name  www.xx.com;
		index index.html index.htm
        #设定本虚拟主机的访问日志格式
		log_format tick "$msec|||$u_t|||$http_x_forwarded_for|||$u_domain|||$u_url|||$u_title|||$u_referrer|||$u_sh|||$u_sw|||$u_cd|||$u_lang|||$http_user_agent|||$u_utrace|||$u_account|||$u_time";
        access_log  logs/www.xx.com.access.log  tick buffer=32k;
		open_log_file_cache max=1000 inactive=10s min_size=2 valid=1m#记录日志缓存
		
		location / { 
			proxy_cache cache_one;
			proxy_cache_min_uses 3;
			proxy_cache_revalidate on;
			proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
			proxy_cache_key "$host$request_method$uri$is_args$args";
			proxy_cache_valid  200 304 12h;
			proxy_cache_valid  301 302 1m;
			proxy_cache_valid  any 1m;
			proxy_pass http://mysvr;
			proxy_redirect off;
			proxy_next_upstream http_503 http_500 http_502 error timeout invalid_header;
			proxy_set_header Host  $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			add_header  N-Cache "$upstream_cache_status From $host";
			log_not_found off;
			expires 1d;
		}
		
		location = /access {
			access_by_lua_block {
     
				--ngx.say(ngx.var.header_Accept);
				ngx.exec("/test");
				
			}
		 }
		 
		 
		location = /test {
			default_type 'text/plain';
			resolver 192.168.177.255;
			
			set $cache_key "1234567890";
			
			
			
			content_by_lua_file conf/test.lua;
		}
		 
		##获取post过来的参数,get过来的参数,获取header
		location /form {  
			set_form_input $name;
			content_by_lua '  
				local say = ngx.say;
				local header_Content_type = ngx.req.get_headers()["Cache-Control"]
				if not header_Content_type then
					say("error");
				end
				say(header_Content_type);
				local name = ngx.var.name;
				say(name);
				local age = ngx.var.arg_age;
				say(age);
			';  
		}
		
		
		# rewrite
		location /face {
			#rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;
			rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg break;
			proxy_pass http://192.168.149.90/api/rec/list?name=123;

		}
		

        # 定义错误提示页面
        error_page   500 502 503 504 /50x.html; 
            location = /50x.html {
            root   /root;
        }

        #静态文件,nginx自己处理
        location ^~ /(images|static)/ {
            root /var/www/virtual/htdocs;
            #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
            expires 30d;
        }
		
		location ~* \.(gif|jpg|jpeg)$ {
			root /var/www/virtual/htdocs;
            #过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点。
            expires 30d;
		}
		
        #设定查看Nginx状态的地址
        location /NginxStatus {
            stub_status            on;
            access_log              on;
            auth_basic              "NginxStatus";
            auth_basic_user_file  conf/htpasswd;
        }
		
		location / {
			deny  192.168.1.1;
			allow 192.168.1.0/24;
			allow 10.1.1.0/16;
			allow 2001:0db8::/32;
			deny  all;
		}
		
		location /face {
			rewrite ^(.*)$ http://211.151.188.190:8080/face.jpg redirect;

		}
		
        #禁止访问 .htxxx 文件
        location ~ /\.ht {
            deny all;
        }
        
        }
    }

 

分享到:
评论

相关推荐

    Nginx配置文件(nginx.conf)配置详解[定义].pdf

    Nginx配置文件(nginx.conf)配置详解 Nginx配置文件(nginx.conf)是Nginx服务器的核心配置文件,用于定义Nginx服务器的行为和配置。下面是Nginx配置文件的详细配置解释: 用户和组 Nginx配置文件中指定了用户和组,...

    Nginx配置文件(nginx.conf)配置详解

    Nginx配置文件(nginx.conf)配置详解

    nginx.conf 文件详解

    非常详细的 nginx.conf 配置文件详解,几乎涵盖了该配置文件能用到的所有知识点,喜欢的同学可以下载!希望对你有帮助!

    Nginx 配置文件 nginx.conf 详解

    Nginx 配置文件 nginx.conf 详解 Nginx 配置文件 nginx.conf 是 Nginx 服务器的核心配置文件,它控制着 Nginx 服务器的行为和性能。在这个配置文件中,我们可以设置服务器的用户和组、工作进程数、错误日志、进程...

    nginx nginx.conf配置

    **Nginx与Nginx.conf配置详解** Nginx是一款高性能、轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,以其稳定性高、性能出色、配置简单以及占用资源少等优点,在互联网行业中被广泛应用。...

    nginx.conf配置详细说明

    《Nginx.conf配置详解》 Nginx是一款高性能、轻量级的Web服务器和反向代理服务器,因其高效稳定和灵活的配置而备受青睐。本文将深入解析Nginx的核心配置文件`nginx.conf`,帮助读者理解其背后的运行机制和配置选项...

    适用于windows和linux下的的nginx.conf路由文件

    **Nginx 配置文件详解** `nginx.conf` 是 Nginx 服务器的主要配置文件,它定义了 Nginx 的工作模式、监听端口、虚拟主机、路由规则等核心设置。Nginx 作为一款高性能的反向代理服务器和负载均衡器,广泛应用于Web...

    nginx FTP服务(nginx.conf已经配置到了D:\\ftp目录,可自行更改)

    在本场景中,我们看到Nginx已经被配置为一个FTP服务器,其配置文件`nginx.conf`位于`D:\ftp`目录。这个配置允许其他计算机通过FTP协议访问服务器的D盘`ftp`子目录下的文件。 首先,我们要理解Nginx如何与FTP集成。...

    nginx.conf

    nginx.conf配置文件详解, Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器,特点是占有内存少,并发能力强,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等

    nginx配置文件nginx.conf中文注释说明

    ######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数。 worker_processes 8; #全局错误日志定义类型,[ debug | info | notice | ...

    详解nginx.conf 中 root 目录设置问题

    在配置 Nginx 服务器时,`nginx.conf` 文件是核心配置文件,它决定了 Nginx 如何响应客户端请求。其中,`root` 指令是用于设置服务器返回文件时的基本目录。本文将深入探讨 `root` 目录设置中的常见问题及其解决方案...

    Nginx配置文件(nginx.conf)配置详解(总结)

    现在经常碰到有新用户问一些很基本的问题,最近整理了一下,Nginx的配置文件nginx.conf配置详解如下: user nginx nginx ; Nginx用户及组:用户 组。window下不指定 worker_processes 8; 工作进程:数目。根据...

    详解Nginx服务器中的nginx.conf配置文件

    Nginx 配置文件主要分成四部分:main(全局设置)、http(HTTP 的通用设置)、server(虚拟主机设置)、location(匹配 URL 路径)。还有一些其他的配置段,如 event,upstream 等。 通用设置  user nginx  指定...

    Nginx配置文件nginx.conf详细说明

    在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 error_log /var/log/nginx/...

    Nginx服务器Nginx.com配置文件详解

    在此记录下Nginx服务器nginx.conf的配置文件说明, 部分注释收集与网络. #运行用户 user www-data; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志及PID文件 error_log /var/log/nginx/...

    nginx压缩包下载直接使用,使用前请在nginx.conf中配置好服务

    `nginx.conf` 是 Nginx 的主配置文件,它定义了 Nginx 的全局设置、事件处理方式、HTTP 服务器、location 规则等。基本的配置结构如下: ```nginx user nobody; worker_processes 1; events { worker_...

    nginx的各项详细配置-超多注释

    本篇文章将详细介绍Nginx的各项配置,并结合提供的"nginx.conf"配置文件和"nginx.txt"说明文件,深入解析Nginx的配置语法和应用场景。** ### 1. Nginx基本结构 Nginx的配置文件主要由多个块组成,包括全局块、...

Global site tag (gtag.js) - Google Analytics