Nginx-配置文件详解

user nginx;

#运行用户。


#worker_processes 1;

#启动进程,通常设置成和CPU的数量相等。


###my add

worker_processes 4;

#启动进程,通常设置成和CPU的数量相等。

worker_cpu_affinity 0001 0010 0100 1000;

#可以用来绑定每个nginx进程所使用的CPU.上面设置为4个CPU,则这里0001表示第一个CPU启用。0010表示第二个CPU启用。这个设置可以把任务分配到每个CPU上面。


worker_rlimit_nofile 65535;

#这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致。现在在linux 2.6内核下开启文件打开数为65535,worker_rlimit_nofile就相应应该填写65535


#####关于系统连接数的优化。

#linux 默认值 open files 和 max user processes 为 1024

#ulimit -n

#1024

#ulimit –u

#1024

#问题描述: 说明 server 只允许同时打开 1024 个文件,处理 1024 个用户进程使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。新装的linux 默认只有1024 ,当作负载较大的服务器时,很容易遇到error: too many open files 。因此,需要将其改大。

#解决方法:

#使用 ulimit –n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit -n 65535 ,-S 指soft ,-H 指hard)

#在/etc/security/limits.conf 最后增加:

#* soft nofile 65535

#* hard nofile 65535

#* soft nproc 65535

#* hard nproc 65535

#重新登录即可生效。

#####关于系统连接数的优化。



###


error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

#全局错误日志及PID文件



events {

worker_connections 10240;

#单个后台worker process进程的最大并发链接数。最大连接数 = worker_processes * worker_connections/4

#worker_connections也是个事件模块指令,用于定义Nginx每个进程的最大连接数,默认是1024.最大客户端连接数由worker_processes和worker_connections决定,即Max_client=worker_processes*worker_connections,在作为反向代理时,max_clients变为:max_clients = worker_processes * worker_connections/4。

#进程的最大连接数受Linux系统进程的最大打开文件数限制,在执行操作系统命令“ulimit -n 65536”后worker_connections的设置才能生效。

##工作进程的最大连接数量,根据硬件调整, 和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行


###mys add

use epoll;

#epoll是多路复用IO中的一种方式,但是仅用于linux2.6以上内核,可以大大提高NGINX性能。

#use是个事件模块指令,用来指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll都是标准的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平台上,而kqueue用在BSD系统中。对于Linux系统,epoll工作模式是首选。



#####

}



http {

include /etc/nginx/mime.types;

#设定mime类型,由mime.types文件定义。

default_type application/octet-stream;

#default_type属于HTTP核心模块指令,这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式,例如在没有配置PHP环境时,Nginx是不予解析的,此时,用浏览器访问PHP文件就会出现下载窗口。



###my add

server_name_in_redirect off;

#http://blog.s135.com/post/382/

#在某些情况下(具体可参考 wiki.nginx.org),Nginx 内部重定向规则会被启动.

#例如,当 URL 指向一个目录并且在最后没有包含“/”时,Nginx 内部会自动的做一个 301 重定向,这时会有两种情况:

#1、server_name_in_redirect on(默认),URL 重定向为: server_name 中的第一个域名 + 目录名 + /;

#2、server_name_in_redirect off,URL 重定向为: 原 URL 中的域名 + 目录名 + /。


server_names_hash_bucket_size 128;

##不能带单位!配置个主机时必须设置该值,否则无法运行Nginx或测试时不通过,该设置与server_names_hash_max_size 共同控制保存服务器名的HASH表,hash bucket size总是等于hash表的大小,并且是一路处理器缓存大小的倍数。若hash bucket size等于一路处理器缓存的大小,那么在查找键的时候,最坏的情况下在内存中查找的次数为2。第一次是确定存储单元的地址,第二次是在存储单元中查找键 值。若报出hash max size 或 hash bucket size的提示,则我们需要增加server_names_hash_max_size的值。


server_tokens off;

#隐藏nginx版本号.


client_header_buffer_size 32k;

#客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。

#分页大小可以用命令getconf PAGESIZE 取得。

#但也有client_header_buffer_size超过4k的情况,但是client_header_buffer_size该值必须设置为“系统分页大小”的整倍数。

#这个配置可接收32k以下的header,在浏览器中cookie的字节数上限会非常大,所以实在是不好去使用那最大值。

large_client_header_buffers 4 32k;

#用来指定客户端请求中较大的消息头的缓存最大数量和大小, “4”为个数,“32K”为大小,最大缓存为4个32K

client_max_body_size 32M;

#允许客户端请求的最大单文件字节数。

client_body_timeout 10;

#设置客户端请求主体读取超时时间。如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误,默认值是60。

client_header_timeout 10;

#设置客户端请求头读取超时时间。如果超过这个时间,客户端还没有发送任何数据,Nginx将返回“Request time out(408)”错误。

client_body_buffer_size 128k;

#缓冲区代理缓冲用户端请求的最大字节数http://blog.csdn.net/yui/article/details/6457922


open_file_cache max=65535 inactive=60s;

#这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。

open_file_cache_valid 30s;

#这个是指多长时间检查一次缓存的有效信息。

open_file_cache_min_uses 1;

# 如果有一个文件在inactive时间内一次都没被使用,它将被称除。

#最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的。

open_file_cache_errors on;

#指定是否在搜索一个文件时记录cache错误。


fastcgi_connect_timeout 300;

#指定连接到后端fastcgi的超时时间

fastcgi_send_timeout 300;

#向FastCGI 传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI 传送请求的超时时间。

fastcgi_read_timeout 300;

#接收FastCGI 应答的超时时间,这个值是指已经完成两次握手后接收FastCGI 应答的超时时间。

fastcgi_buffer_size 256k;

#指定读取FastCGI 应答第一部分需要用多大的缓冲区,一般第一部分应答不会超过1k,由于页面大小为32k,所以这里设置为32k。

fastcgi_buffers 2 256k;

#指定本地需要用多少和多大的缓冲区来缓冲FastCGI 的应答。

#定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答请求。如果一个PHP脚本所产生的页面大小为256KB,那么会为其分配4个64KB的缓冲区来缓存;如果页面大小大于256KB,那么大于256KB的部分会缓存到fastcgi_temp指定的路径中,但是这并不是好方法,因为内存中的数据处理速度要快于硬盘。一般这个值应该为站点中PHP脚本所产生的页面大小的中间值,如果站点大部分脚本所产生的页面大小为256KB,那么可以把这个值设置为“16 16k”、“4 64k”等。

fastcgi_busy_buffers_size 256k;

#这个指令我也不知道是做什么用,只知道默认值是fastcgi_buffer_size的两倍。http://www.linuxidc.com/Linux/2010-08/27874.htm

fastcgi_temp_file_write_size 256k;

#在写入fastcgi_temp_path 时将用多大的数据块,默认值是fastcgi_buffer_size 的两倍。



#fastcgi_cache_path /tmp/nginx/fastcgi_cache levels=1:2 keys_zone=TEST:10m inactive=2m;

#这个指令为FastCGI 缓存指定一个路径,目录结构等级,关键字区域存储时间和非活动删除时间。并指定的缓存名称TEST。

#这里最好是放在server段中来调用。如果在这里调用,会对其它站点产生混乱。

#fastcgi_cache TEST;

#开启FastCGI 缓存。个人感觉开启缓存非常有用,可以有效降低CPU 负载,并且防止502 错误。

#fastcgi_cache_valid 200 302 1h;

#fastcgi_cache_valid 301 1d;

#fastcgi_cache_valid any 1m;

#为指定的应答代码指定缓存时间,如上例中将200,302 应答缓存一小时,301 应答缓存1 天,其他为1 分钟。

#fastcgi_cache_min_uses 2;

#缓存在fastcgi_cache_path 指令inactive 参数值时间内的最少使用次数,如上例,如果在5 分钟内某文件1 次也没有被使用,那么这个文件将被移除。

#设置链接请求几次就被缓存

#fastcgi_cache_use_stale error timeout invalid_header http_500;

#不知道这个参数的作用,猜想应该是让nginx 知道哪些类型的缓存是没用的。

#以上为nginx 中FastCGI 相关参数

#另外,FastCGI 自身也有一些配置需要进行优化,如果你使用php-fpm 来管理FastCGI,可以修改配置文件中的以下值:

#<value name="max_children">60</value>

#同时处理的并发请求数,即它将开启最多60 个子线程来处理并发连接。

#<value name="rlimit_files">102400</value>

#最多打开文件数。

#<value name="max_requests">204800</value>

#每个进程在重置之前能够执行的最多请求数。


####




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 /var/log/nginx/access.log main;

#设置日志的格式。


sendfile on;

#指定nginx是否调用sendfile函数来输出文件,对于普通应用必须设置为on,如果用来进行下载等应用磁盘IO负载较重,可设置为off,以平衡磁盘与网络IO处理速度,降低系统的uptime.


tcp_nopush on;


###my add

tcp_nodelay on;


##tcp_nodelay 和 tcp_nopush这两个指令也许是最难理解的nginx配置, 他们对于nginx的影响在网络的较低层。 你可以简单的认为这些指令决定了操作系统如何处理网络缓存和他们何时将这些缓存输出到最终用户(客户端)。 我只能建议大家如果你之前不了解这些概念你最好不要动它。 他们不会显著的改善或者改变性能, 所以最好使用他们的默认值。

###


keepalive_timeout 35;

#连接超时时间。也许你不需要把keepalive-timeout设置为65, 但是10-20应该是比较通用的选择,正如上面一段所说, Nginx会很好的处理这方面。

gzip on;

#开启gzip压缩。

###my add

gzip_buffers 4 16k;

#设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间

gzip_http_version 1.0;

#用于识别http协议的版本,早期的浏览器不支持gzip压缩,用户会看到乱码,所以为了支持前期版本加了此选项,目前此项基本可以忽略

gzip_comp_level 2;

#一般来说gzip_comp_level的值不会在性能方面有多大的差别,设为为4-5即可。 一味的增加它是没有意义的只是浪费的CPU的周期。

#设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大.等级是1-9

gzip_types text/plain application/x-javascript text/css application/xml;

#设置需要压缩的MIME类型,非设置值不进行压缩

gzip_proxied expired no-cache no-store private auth;

#Nginx做为反向代理的时候启用.

#param:off|expired|no-cache|no-sotre|private|no_last_modified|no_etag|auth|any]

#off – 关闭所有的代理结果数据压缩

#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_very on;

#和http头有关系,加个vary头,给代理服务器用的,有的浏览器支持压缩,有的不支持,所以避免浪费不支持的也压缩,所以根据客户端的HTTP头来判断,是否需要压缩

gzip_static on;

#这里是设置对gz文件的识别。

#例如:在站点建立一个a.html文件,然后gzip a.html压缩文件生成了a.html.gz。当此选项打开时,用户可以浏览a.html.gz文件并生成a.html文件的内容。如果此项不开则提示找不到页面。

gzip_min_length 512;

#当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩



output_buffers 1 32k;

postpone_output 1460;


proxy_cache_path /tmp/nginx/cache levels=1:2 keys_zone=staticfilecache:80m inactive=1d max_size=2500m;

##设置缓存目录为二级目录,共享内存区大小,非活动时间,最大容量,注意临时目录要跟缓存目录在同一个分区。

proxy_temp_path /tmp/nginx/proxy;

##设置临时目录

proxy_connect_timeout 300;

#nginx跟后端服务器连接超时时间(代理连接超时)

proxy_read_timeout 120;

#连接成功后,后端服务器响应时间。

proxy_send_timeout 120;

#后端服务器数据回传时间



proxy_buffering on;

#该指令开启从后端被代理服务器的响应内容缓冲.

#如果缓冲区开启,nginx假定被代理的后端服务器会以最快速度响应,并把内容保存在由指令proxy_buffer_size 和 proxy_buffers指定的缓冲区里边.

#如果响应内容无法放在内存里边,那么部分内容会被写到磁盘上。

#如果缓冲区被关闭了,那么响应内容会按照获取内容的多少立刻同步传送到客户端。

#nginx不尝试计算被代理服务器整个响应内容的大小,nginx能从服务器接受的最大数据,是由指令proxy_buffer_size指定的.

#对于基于长轮询(long-polling)的Comet 应用来说,关闭 proxy_buffering 是重要的,不然异步响应将被缓存导致Comet无法工作

proxy_buffer_size 4k;

#设置代理服务器保存用户头信息的缓冲区大小。

#该指令设置缓冲区大小,从代理后端服务器取得的第一部分的响应内容,会放到这里.

#小的响应header通常位于这部分响应内容里边.

#默认来说,该缓冲区大小等于指令 proxy_buffers所设置的;但是,你可以把它设置得更小.

proxy_buffers 8 4k;

#该指令设置缓冲区的大小和数量,从被代理的后端服务器取得的响应内容,会放置到这里. 默认情况下,一个缓冲区的大小等于内存页面大小,可能是4K也可能是8K,这取决于平台。内存页面大小可以用getconf PAGESIZE命令获取。

proxy_temp_file_write_size 64k;

#设定缓存文件夹大小,大于这个值,将从upstream服务器传送。

proxy_busy_buffers_size 16k;

#高负载下缓冲大小。proxy_busy_buffers_size是用来控制同时传输到客户端的buffer数量的.

#http://blog.sina.com.cn/s/blog_5410860001011fq1.html

####


autoindex on;

# 防止目录浏览,应该也可以用在server中。

include /etc/nginx/conf.d/*.conf;

}


conf.d下的配置文件

upstream test{

server 192.168.0.1:3000;

server 192.168.0.2:3000;

}

#轮询检查,每个请求按时间顺序逐一分配到不同的后端服务器 ,如果后端服务器down掉,能自动剔除。


upstream www.a.com{

server 10.1.230.215:80 weight=2 max_fails=3 fail_timeout=20s;

server 10.1.230.216:80 weight=2 max_fails=3 fail_timeout=20s;

server 10.1.230.217:80 weight=2 max_fails=3 fail_timeout=20s;

server 10.1.230.218:80 backup;

keepalive 32;

#做反向代理时很有用。设置保存的最大连接数。这样可以减少不必要的连接建立时间。从而减小网络之间的流量

check interval=3000 rise=2 fall=5 timeout=1000;

#需要nginx_upstream_check_module模块支持

#interval检测时间间隔单位是毫秒

#rise请求2次正常的话,标记为up

#fall表示请求5次都失败,标记为down

#timeout表示超时时间单位是毫秒

#前段nginx做反代,如果后端服务器宕掉的话,nginx是不能把这台realserver提出upstream的,所以还会有请求转发到后端的这台realserver上面去,虽然nginx可以在localtion中启用proxy_next_upstream来解决返回给用户的错误页面,方法在:http://www.linuxyan.com/web-server/67.html,大家可以参考一下,但这个还是会把请求转发给这台服务器的,然后再转发给别的服务器,这样就浪费了一次转发,这次借助与淘宝技术团队开发的nginx模快nginx_upstream_check_module来检测后方realserver的健康状态,如果后端服务器不可用,则所以的请求不转发到这台服务器。

#http://www.linuxyan.com/web-server/90.html

}

#weight指定轮询机率,weight和访问比率成正比,用于后端服务器性能不均的情况。

#server中有以下参数

1.down 表示单前的server暂时不参与负载

2.weight 默认为1.weight越大,负载的权重就越大。

3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误

4.fail_timeout:max_fails次失败后,暂停的时间。

5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。


upstream php{

ip_hash;

server 10.1.230.217:80;

server 10.1.230.215:80;

server 10.1.230.216:80;

server 10.1.230.218:80;

check interval=3000 rise=2 fall=5 timeout=1000;

}

#ip_hash方式,每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session 的问题。


upstream backend {

server server1;

server server2;

fair;

}

#fair,第三方按后端服务器的响应时间来分配请求,响应时间短的优先分配。


upstream backend {

server squid1:3128;

server squid2:3128;

hash $request_uri;

hash_method crc32;

}

#url_hash(第三方)按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法



proxy_temp_path /tmp/nginx/temp;

#设置临时目录

proxy_cache_path /tmp/nginx/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=30g;

#设置缓存目录为二级目录,共享内存区大小,非活动时间,最大容量,注意临时目录要跟缓存目录在同一个分区。


autoindex on;

# 防止目录浏览


server {

listen 80;

#侦听80端口

server_name www.a.com;

#定义使用www.xx.com访问

access_log /var/log/nginx/www.a.com-access_log main;


#######负载均衡配置#########


location ~ /\.ht {

deny all;

# 防止.ht文件被请求

}

if ($host = 'a.com') {

rewrite ^/(.*)$ http://www.a.com/$1 permanent;

}

#如果访问地址是a.com,则转向www.a.com




location =/ {

proxy_pass http://www.a.com;

include /etc/nginx/conf.d/proxy.conf;

proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;

#proxy_next_upstream用来定义故障转移策略,当后端服务节点返回500、502、503、504和执行超时等错误时,自动将请求转发到upstream负>载均衡组中的另一台服务器,实现故障转移

}

#访问首页负载到www.a.com这组服务器。这里并不包括http://www.a.com/index.html,因为下面html会被缓存。


location ^~/(p_w_picpaths|doc)/ {

#所有访问http://www.a.com/p_w_picpaths/....或者http://www.a.com/doc/...都被缓存。保存24小时。

include /etc/nginx/conf.d/proxy.conf;

proxy_pass http://www.a.com;

proxy_cache cache_one;

#对不同的HTTP状态码设置不同的缓存名称

proxy_cache_key $host$uri$is_args$args;

#proxy_cache_key 指定了包含在缓存中的缓存关键字(默认情况下服务器的主机名并没有包含到缓存关键字中)

proxy_cache_valid 200 304 12h;

#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内

expires 24h;

#设置过期时间为24H

}


location /login {

proxy_pass http://www.a.com;

include /etc/nginx/conf.d/proxy.conf;

proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;

}

#访问http://www.a.com/login匹配这条规则。



#tomcat负载1

#location ~ \.(do|jsp|action|xml)$ {

# proxy_pass http://tomcat;

# include /etc/nginx/conf.d/proxy.conf;

# proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;

#}

#这里被区分大小写


#tomcat负载2

location ~ .*\.(do|jsp|action|xml)?$ {

proxy_pass http://tomcat;

include /etc/nginx/conf.d/proxy.conf;

proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;

}

#这个不区分大小写。


#location !~ \.xhtml$ {

#规则F

#}

#location !~* \.xhtml$ {

#规则G

#}

#上面两个规则,当访问 http://www.a.com/a.xhtml 不会匹配规则F和规则G,http://localhost/a.XHTML不会匹配规则G,因为不区分大小写。规则F,规则G属于排除法,符合匹配规则但是不会匹配到.


#ASP负载

location ~*\.(aspx|asp|config)$ {

proxy_pass http://iis;

include /etc/nginx/conf.d/proxy.conf;

proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;

}


#PHP负载,perl cgi负载

location ~*\.(php|cgi)$ {

proxy_pass http://php;

include /etc/nginx/conf.d/proxy.conf;

proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;

}


location ~* /purge(/.*)

#当访问http://www.a.com/purge/...时会匹配这个规则。

{

allow 10.1.230.35;

#allow 10.1.230.0/24;

deny all;

proxy_cache_purge cache_one $host$1$is_args$args;

}

location ~*\.(png|jpg|gif|GIF|jpeg|JPG|PNG|bmp|BMP|JPEG|ico|txt|css|js|htm|html)$

#访问所有不区分大小写PNG,JPG等结尾的匹配这里。

{

include /etc/nginx/conf.d/proxy.conf;

proxy_pass http://www.a.com;

proxy_cache cache_one;

#对不同的HTTP状态码设置不同的缓存名称

proxy_cache_key $host$uri$is_args$args;

#proxy_cache_key 指定了包含在缓存中的缓存关键字(默认情况下服务器的主机名并没有包含到缓存关键字中)

proxy_cache_valid 200 304 12h;

#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内

expires 24h;

#设置过期时间为24H

}


#图片文件开启缓存,并允许一些机器清除缓存。

#如http://www.a.com/p_w_picpath/a.jpb.jpg这个访问图看,则需http://www.a.com/purge/p_w_picpath/a.jpb.jpg来清除缓存。这里的顺序是purge在前,\.(png|jpg等在后。


location / {

proxy_pass http://www.a.com;

include /etc/nginx/conf.d/proxy.conf;

proxy_next_upstream http_500 http_502 http_503 error timeout invalid_header;

#proxy_next_upstream用来定义故障转移策略,当后端服务节点返回500、502、503、504和执行超时等错误时,自动将请求转发到upstream负>载均衡组中的另一台服务器,实现故障转移

}

#这个是默认规则。当所有规则不匹配时匹配这里的规则。



#########################nginx状态##############


location ~*/NginxStatus?$ {

#这里的~*表示不区分大小写,http://www.a.com/nginxstatus或者NGINXSTATUS都可以打开。如果没有后面的?$表示结尾,则输入NGINXSTATUS...都可以打开。

stub_status on;

#stub_status设置为“on”表示启用StubStatus的工作状态统计功能。.

access_log /var/log/nginx/NginxStatus.log;

#access_log 用来指定StubStatus模块的访问日志文件。

auth_basic "NginxStatus";

#auth_basic是Nginx的一种认证机制。

auth_basic_user_file /etc/nginx/htpasswd;

#auth_basic_user_file用来指定认证的密码文件,由于Nginx的auth_basic认证采用的是与Apache兼容的密码文件,因此需要用Apache的htpasswd命令来生成密码文件.

#例如要添加一个webadmin用户,可以使用下面方式生成密码文件:

#/usr/local/apache/bin/htpasswd -c /opt/nginx/conf/htpasswd webadmin

#会得到以下提示信息:

#New password:

#输入密码之后,系统会要求再次输入密码。确认之后添加用户成功。

}

#################################################


location /status {

check_status;


access_log off;

allow 10.1.230.35;

deny all;

}


}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章