# Nginx
https://blog.csdn.net/tsummerb/article/details/79248015 对nginx 正向、反向带来写的比较好的文章
# nginx 的正向代理?
我忘记是2018年在哪一家公司面试了,面试官问我,你知道什么是nginx 正向代理?我楞了下,说不知道,后面想一直知道这个知识点。直到我直到这个知识点后,傻楞了,我一个前端知道个锤子nginx 正向代理啊,我去! 算了,本着学习的心态,不想回忆起这个沙雕面试官了。
- 正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。
- 内网服务 主动要求请求外网的地址服务, 内网服务->访问->外网 。((⊙_⊙)?,所以我ssh 到服务器 curl 百度 ,也算了)
- (
应该可以本来按着a 页面返回给用户,结果我让百度页面返回给用户?恩?
) - 以 通过代理软件访问facebook 这样的例子,比较形象
server{
resolver 8.8.8.8
}
# nginx 的反向代理?
- proxy_pass
- upstream
- 外网 主动请求内网服务, 外网->请求->内网服务
- 请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,nginx扮演的就是一个反向代理角色
- 用户去访问淘宝,但返回给用户的内容的服务器,可能来自浙江,可能来自北京
# nginx负载均衡
- 硬件负载均衡
- 软件负载均衡
与硬件主机实现一种消息队列分发机智
- 负载均衡调度算法
- weight轮询
皇帝翻牌子比较形象了!可以设定一些权重,来增加获得宠幸的几率,被打入冷宫的out 出局。。。
- ip_hash
客户端ip的hash匹配,一个固定ip从会访问到同一个后端,一定程度解决了集群下,session共享问题
- fair
智能调整算法调度?动态的 根据后端服务器的请求处理处理的响应时间,进行均衡的分配,响应时间短的,分配到的几率高,长的,分配的少!需要安装upstream_fair 模块
- url_hash
根据url+hash 结果,每次请求的url都指定到后端固定服务器,nginx作为静态服务器下,提高缓存效率。需要安装hash 软件包
# 一段基于vue项目nginx 配置文件
{
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
location / {
root F:\baidu\dist;
try_files $uri $uri/ @router;
index index.html;
}
location @router {
rewrite ^.*$ /index.html last;
}
location ^~/api/{
proxy_pass http://www.baidu.com/;
}
}
}
}