2018-08-29
运维
0

目录

负载均衡
动静分离
反向代理
代理缓存

本篇主要是自己学习Nginx 负载均衡、动静分离、代理和代理缓存后的文章记录

负载均衡

image.png

image.png backup当其他服务器都无法访问时,会访问设置backup的网址

nginx
http { upstream www.imooc.com { ip_hash; # //根据ip来分配地址,不能和backup同时使用; server 127.0.0.1:8081; server 127.0.0.1:8082 max_fails=1 fail_timeout=10s weight=5; # //weight为权重,使用时需去除其他分配规则如ip_hash server 127.0.0.1:8083 backup; server www.baidu.com down; } server{ listen 80; server_name localhost; location / { proxy_pass http://www.imooc.com; } } }

动静分离

image.png

详情查看

nginx
http { upstream cs { server localhost:7071; } server { listen 7999; server_name localhost; location / { proxy_pass http://cs; } location ~ .*\.(js|css)$ { root opt/cs; } } }

反向代理

nginx
location / { proxy_pass http://127.0.0.1:8088; # //需加协议前缀,如http:// }

代理相关配置:

image.png

代理缓存

image.png

image.png

image.png

image.png

nginx
# 代理缓存在经过nginx代理的时候,不会去请求服务器,会直接去拿取nginx上的缓存。 # levels 设置缓存文件目录层次;levels=1:2 表示两级目录 # keys_zone 设置缓存名字和共享内存大小 # max_size 最大缓存空间,如果缓存空间满,默认覆盖掉缓存时间最长的资源。 # inactive 在指定时间内没人访问则被删除 # use_temp_path 临时存放管理,off为关闭 http { proxy_cache_path cache levels=1:2 keys_zone=imooc_cache:10m max_size=10g inactive=60m use_temp_path=off; upstream www.imooc.com { server 127.0.0.1:8081; server 127.0.0.1:8082 max_fails=1 fail_timeout=10s weight=5; server 127.0.0.1:8083; server www.baidu.com down; } }
nginx
# proxy_cache不填写,则缓存设置无效 server{ listen 80; server_name localhost; location / { proxy_pass http://www.imooc.com; proxy_cache imooc_cache; # 缓存的名称 proxy_cache_valid 200 304 12h; # 缓存过期周期,200,304的缓存12小时 proxy_cache_valid any 10m; # 其余的缓存周期为十分钟 proxy_cache_key $host$uri$is_args$args; # 缓存维度 add_header Nginx-Cache "$upstream_cache_status"; # 添加response返回头 proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; # 一台服务出现问题时,转到其他服务运行 } }
nginx
# 不缓存部分页面 server{ listen 80; server_name localhost; if ($request_uri ~ ^/(1|2|3)) { set $cookie_nocache 1; } location / { proxy_pass http://www.imooc.com; proxy_cache imooc_cache; proxy_cache_valid 200 304 12h; proxy_cache_valid any 10m; proxy_cache_key $host$uri$is_args$args; add_header Nginx-Cache "$upstream_cache_status"; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_no_cache $cookie_nocache $arg_nocache $arg_comment; proxy_no_cache $http_pragma $http_authorization; } }

本文作者:BARM

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!