nginx反向代理之缓存,负载均衡,动静分离的配置详解

配置文件nginx.conf的配置介绍:

http {
    include       mime.types;
    default_type  application/octet-stream;
     sendfile        on;
    keepalive_timeout  65;
    proxy_cache_path /cache/nginx/ levels=1:1 keys_zone=mycache:23m;
     #建立缓存目录,目录必须是nginx用户,levels是可建目录几级,mycache是名称,开启缓存,只能在http中开启,具体功能可在http,server,location,if中使用
        fastcgi_cache_path /cache/fastcgi levels=1:1 keys_zone=fcgicache:10m inactive=3m max_size=1g;  
    #factcgi接口使用的命令,建立fastcgi的缓存
       upstream upservers {
               #建立后端负载均衡技术
                #ip_hash;负载均衡中的指令,可不加
                server 192.168.1.11 max_fails=2 fail_timeout=1 weight=2;
                 #添加一台服务器,max_fails失败两次即暂停,fail_timeout 失败后暂停的时间,weigth权重
                server 192.168.1.12  max_fails=2 fail_timeout=1;
                  #后加down即人为停掉这台服务
                  }
 server {
        listen       80;
        server_name  localhost;
        add_header X-Via $server_addr;   # 可以放在任意里面,首部自定义添加内容
        add_header X-cache $upstream_cache_status;    #根据是否缓存命中给出状态,如miss,hit
       location / {
           proxy_pass http://upservers/;
              #按组的形式,把后端已经作成组的服务器加进来
        }
        location /root {
                proxy_pass http://192.168.1.11/root/;   #代理后端服务器
                proxy_set_header Host $remote_addr;   #日志会记录源ip的日志,而不是代理服务器请求的日志,还需要修改后端服务器的日志格式logFormat "%{X-Real-IP}i"
                proxy_cache mycache;  #使用mycahce缓存,http中定义
                proxy_cache_valid 200 1d; #根据响应码确定缓存市场,可多次定义
                proxy_cache_valid 301 10m;
                proxy_cache_valid any 1m; #其他未定的一律1m缓存
                proxy_cache_use_stale error timeout invalid_header http_500 http_502 http_504; #缓存过期后,哪些情况可以继续使用缓存,以上缓存命令在其他location 中可继续使用
        }
        location /forum/ { #此处可以用其他名字,可以不同
                        proxy_pass http://192.179.1.11/bbs/;  #此处必须加上/bbs/        
                      }
        location ~* \.(jpg|png|gif)$ {
                          proxy_pass http://192.168.1.12;  #因为是正则表达式,所以不能加,表示所有访问图片类型的都走这台服务器
                        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
               #动静分离,动态页面全走这里
                #注意此处开启php动态功能,需要安装php-fpm,并重启服务
                #如果想用mysql,可安装php-msyql,  mysql-server,并重启服务即可
           root  /usr/share/nginx/html;
           fastcgi_pass   127.0.0.1:9000;
           fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
           include        fastcgi_params;
        }
}


你可能感兴趣的:(负载均衡,缓存,nginx配置,动静分离)