Nginx实践篇
静态资源WEB服务
1.什么是静态资源:
非服务器动态运行生成的文件
2、静态资源服务场景
3、配置语法-文件读取
Syntax: sendfile on|off
Default: sendfile off;
Context: http,server.location, if in location
Syntax: tcp_nopush on|off
Default: tcp_nopush off;
Context: http,server.location
作用: sendfile 开启的情况下, 提高网络包的传输效率
Syntax: tcp_nodelay on|off
Default: tcp_nodelay off;
Context: http,server.location
作用: keepalive连接下, 提高网络包的传输实时性
Syntax :gzip on|off
Default: tcp_nodelay off;
Context: http,server.location if in location
作用: 传输过程的包的压缩
Syntax :gzip_comp_level ;
Default: gzip_comp_level 1 ;
Context: http,server,location, if in location
作用: 设置压缩比
Syntax : gzip_http_version 1.0|1.1;
Default: gzip_http_version 1.1 ;
Context: http,server.location
作用: 设置压缩的版本
4、扩展Nginx压缩模块
http_gzip_static_module 预读模块
http_gunzip_module 应用支持gunzip的压缩方式
5、 跨站/跨域访问(CSRF为了防止出现)
syntax: add_header name value [always] ;
default: –
context: http,server,location, if in location
建议对origin做设置, 只允许特定的站点进行访问
6、防盗链(基础版)
首要方式: 区别哪些请求是非正常的用户请求
1)、基于http_refer防盗链模块配置
代理服务
代理协议类型:
正向代理:
配置语法
Syntax: proxy_pass_url; 反向代理
Default–
Context:location, if in location, limit except
可以在location添加IP语法判断
Syntax: proxy_buffering on|off 缓冲区配置
Default: proxy_buffering on;
Context: http,server,location
扩展配置: proxy_buffer_size proxy_buffer、proxy_busy_buffers_size
Syntax: proxy_redirect default 跳转重定向(需要把地址进行重写的时候)
proxy_redirect off ; proxy_redirect redirect replacement
Default: proxy_redirect default ;
Context:http,server,location
Syntax: proxy_set_header field value; 头信息配置
Default: proxy_set_header Host $ proxy_host;
proxy_set_header Connetiom close;
Context: http,server,location
扩展配置: proxy_hide_header、proxy_set_body
常用配置:
X-Real-IP $remote_addr 获取用户的真实IP
注: 可以使用include #fileName 进行直接引入配置文件, 增减文件的可用性
负载均衡调度器SLB
GSLB
nginx属于七层负载均衡的SLB
Syntax: upstream name {…}
Default:–
Context: http
案例:
weigth是加权轮询, 七个请求有五个可以命中第五个
ip_hash能够根据ip访问同一个后端的机器, 但是这样会出现问题:
url_hash:
Syntax: hash key [consistent]
default:–
Context: upstream
动态缓存
缓存服务: 相当于当nginx具有缓存的时候就不需要去服务端请求服务了
配置语法:
Syntax: proxy_cache zone |off ; #缓存地址配置
Default: proxy_cache off;
Context: http, server, location
Syntax: proxy_cache_vaild [code…] time; #缓存周期控制
Default: –
Context: http, server, location
syntax: proxy_cache_key string; #缓存的纬度
Default: proxy_cache_key
s
c
h
e
m
e
scheme
schemeproxy_host$request_u
Context: http, server, location