学习目标:
了解nginx的基础功能
学习内容:
nginx简述
nginx是一个开源且轻量级/高性能的反向代理Web服务器,他实现非常高效的反向代理、负载平衡
优势
- 采用IO多路复用epoll模型
- 跨平台、配置简单、方向代理、高并发连接、内存消耗小、内置健康检查功能、稳定性高、节省带宽、添加浏览器本地缓存、异步处理
Nginx负载均衡算法实现和策略
多台服务器组成集群,用户访问是先访问转发服务器,再由转发服务器将访问分发到压力更小的服务器
策略:采用upstream模式
-
默认轮询:各请求按时间顺序注意分配到不同的后端服务器,如果后端某个服务器宕机,自动剔除
- 权重weight:weight的值越大分配到的访问概率越高,主要用于各服务器性能不均衡的情况
- Ip_hash:各请求按访问ip哈希结果分配,同一ip访问到同一台后端服务器
- url_hash:访问url的hash结果分配请求,每个url定向到同一后端服务器,提高后端缓存服务器的效率
nginx高可用
就是利用负载均衡来实现,反向代理到负载均衡服务器
当上游服务器(真实访问服务器),一旦出现故障或者是没有及时相应的话,应该直接轮训到下一台服务器,保证服务器的高可用
nginx设置X-Frame-Options的两种方法
通过http和server设置 X-Frame-Options ,防止网站被别人用iframe嵌入使用。需要说明的是,只需用其中一个方法即可,在http配置代码块或server配置代码块里设置。
• 添加如下语句即可:add_header X-Frame-Options SAMEORIGIN;重启生效
X-Frame-Options HTTP 响应头是用来给浏览器指示允许一个页面可否在 , 或者 中展现的标记。网站可以使用此功能,来确保自己网站的内容没有被嵌到别人的网站中去,也从而避免了点击劫持 (clickjacking) 的攻击。
- X-Frame-Options 有三个值:
DENY:表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。
SAMEORIGIN:表示该页面可以在相同域名页面的 frame 中展示。
ALLOW-FROM uri:表示该页面可以在指定来源的 frame 中展示。
client_header_buffer_size large_client_header_buffers number size
- 假设client_header_buffer_size的配置为1k,如果(请求行+请求头)的大小如果没超过1k,放行请求。如果(请求行+请求头)的大小如果超过1k,则以large_client_header_buffers配置为准
- 假设large_client_header_buffers的配置为4 8k,则对请求有如下要求:
- 请求行(request line)的大小不能超过8k,否则返回414错误
- 请求头(request header)中的每一个头部字段的大小不能超过8k,否则返回400错误(实际是494错误,但nginx统一返回400了)
- curl -H “header1=aaa” -H “header2=bbb” -v http://127.0.0.1/,这里的header1=xxx和header2=xxx就是请求头中的头部字段
(请求行+请求头)的大小不能超过32k(4 * 8k)