注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

itoedr的it学苑

记录从IT文盲学到专家的历程

 
 
 

日志

 
 

nginx的配置结构化分析一例----『新手资料』  

2013-05-08 19:24:20|  分类: nginx编程 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

::nginx加密认证案例::
location /NginxStatus {
         stub_status on;
         access_log on;
         auth_basic "NginxStatus";        #认证开始处
         auth_basic_user_file conf/htpasswd;   # 定义认证库文件
              }
   }
}
备注:nginx认证库文件制工具
conf/htpasswd 文档的内容用 apache 提供的 htpasswd 工具来产生即可!
查看 Nginx 运行状态 输入地址http://www.rekfan.com/NginxStatus/ 。

#设定http服务器,利用他的反向代理功能提供负载均衡支持
http {
        #设定mime类型
include conf/mime.types;
         default_type application/octet-stream;
        #设定日志格式
log_format main '$remote_addr - $remote_user [$time_local] '
         '"$request" $status $bytes_sent '
         '"$http_referer" "$http_user_agent" '
         '"$gzip_ratio"';
         log_format download '$remote_addr - $remote_user [$time_local] '
         '"$request" $status $bytes_sent '
         '"$http_referer" "$http_user_agent" '
         '"$http_range" "$sent_http_content_range"';
$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态;成功是200,
$body_bytes_s ent :记录发送给客户端文件主体内容大小;
$http_referer:用来记录从那个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;

通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址;
#设定请求缓冲
client_header_buffer_size 1k;
         large_client_header_buffers 4 4k;
        #关闭报错时的Nginx版本显示
server_tokens off;
sendfile on; #打开系统函数sendfile()支持
tcp_nopush on;   #防止网络阻塞
tcp_nodelay on;   #防止网络阻塞
keepalive_timeout 65;
        #上述四项可以有效提高文件传输性能

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;
         #设置上述数值设置太小时若负载上来时可能报 502 Bad Gateway
         
        #开启gzip模块
  gzip on;
  gzip_min_length 1k;   #最小压缩文件大小
  gzip_buffers 4 16k;   #压缩缓冲区
  gzip_http_version 1.0;   #压缩版本(默认1.1,前端为squid2.5使用1.0
  gzip_comp_level 2;   #压缩等级
  gzip_types text/plain application/x-javascript text/css application/xml;
  #压缩类型,默认就已经包含text/html 所以下面就不用再写了,当然写上去的话,也不会有问题,但是会有一个warn
             gzip_vary on; #此选项可让前端的缓存服务,如squid缓存经过nginx压缩的数据
    #该选项在做反向代理时设定压缩,后面参数为验证的header头信息,再做相应的压缩处理,关闭为off
    #gzip_proxied expired no-cache no-store private no_last_modified no_etag auth any
         #设定access log
access_log logs/access.log main;
client_header_timeout 3m;
         client_body_timeout 3m;
         
        #设定负载均衡的服务器列表
upstream mysvr {
        #weigth参数表示权值,权值越高被分配到的几率越大
#本机上的Squid开启3128端口
server 192.168.8.1:3128 weight=5;
         server 192.168.8.2:80 weight=1;
         server 192.168.8.3:80 weight=6;
         }
         
        #设定虚拟主机
     server {
listen 80;  #配置监听端口
server_name 192.168.8.1 www.rekfan.com; #IP地址或者域名 ,多域名用空格隔开
charset gb2312;  #默认编码
index index.html index.htm index.php; #默认访问文件,从前到后的顺序查找
#limit_conn connlimit 20;  限制一个IP只能最多只能发起20个连接,超过报 503 Service unavailable
         
        #设定本虚拟主机的访问日志格式
log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer"'
         '"$http_user_agent" $http_x_forwarded_for';
        #设定本虚拟主机的访问日志路径  
access_log logs/www.rekfan.com.access.log main;
        #假如访问 /img/*, /js/*, /css/* 资源,则直接取本地文档,不通过squid
        #假如这些文档较多,不推荐这种方式,因为通过squid的缓存效果更好
location ~ ^/(img|js|css)/ {
         root /rekfan.com/Html;
         access_log  off;  #不记录访问日志
expires 24h;  #缓存过期时间
}
        #对 "/" 启用负载均衡,location ~* .(mp3|exe)$ 对以“mp3或exe”结尾的地址进行负载均衡
location / {
        #设置被代理服务器的端口或套接字,以及URL
proxy_pass http://mysvr;
         proxy_redirect off;
         proxy_set_header Host $host;
         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;
         proxy_send_timeout 90;
         proxy_read_timeout 90;
         proxy_buffer_size 4k;
         proxy_buffers 4 32k;
         proxy_busy_buffers_size 64k;
         proxy_temp_file_write_size 64k;
}
        #设定查看Nginx状态的地址
location /NginxStatus {
         stub_status on;
         access_log on;
         auth_basic "NginxStatus";
         auth_basic_user_file conf/htpasswd;
              }
   }
}

备注:conf/htpasswd 文档的内容用 apache 提供的 htpasswd 工具来产生即可!
查看 Nginx 运行状态 输入地址http://www.rekfan.com/NginxStatus/ 。输入验证帐号密码,即可看到类似如下内容:
Active connections: 328  
        server accepts handled requests  
        9309 8982 28890  
        Reading: 1 Writing: 3 Waiting: 324
  评论这张
 
阅读(100)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017