1.代理 正向代理:
正向代理服务是由客户端设立的。客户端了解代理服务器和目标服务器都是谁。帮助咱们实现突破访问权限,提高访问的速度,对目标服务器隐藏客户端的ip地址。反向代理:
反向代理服务器是配置在服务端的。客户端是不知道访问的到底是哪一台服务器。达到负载均衡,并且可以隐藏服务器真正的ip地址。EditPlus中server文件发生改动都会根据在yml文件中的设置映射到linux中;一定是保持linux服务的开启
2.负载均衡 当你访问本地上的地址localhost:8080时(本地开启linux两个服务80和81,但是当你访问同一个地址时是怎么确定你访问的那个服务呢?就是根据引映射的ip地址),都会根据location中的windowtomcat指向上面的两个ip地址,这样只要不进行设置这两个被访问到的概率是一样的:这就是负载均衡。
轮询:将客户端发起的请求,平均的分配给每一台服务器。
权重:会将客户端的请求,根据服务器的权重值不同,分配不同的数量。
ip_hash:基于发起请求的客户端的ip地址不同,他始终会将请求发送到指定的服务器上。第一次访问的ip是哪个以后即使设置了权重也没有用都只是访问第一个。
upstream windowtomcat{ server 192.168.32.130:8081; server 192.168.32.130:8080; } server { listen 80; #这个端口的意思是访问宿主机端口号 server_name localhost; location / { proxy_pass http://windowtomcat; #只要访问windowTomcat就会先到这里再反射到上边的连接试下反向代理 } }打破负载均衡分配不同的权重: 3.动静分离
Nginx的并发能力公式:
worker_processes * worker_connections / 4 | 2 = Nginx最终的并发能力
动态资源需要/4,静态资源需要/2.
Nginx通过动静分离,来提升Nginx的并发能力,更快的给用户响应。
1,》为什么动态是/4:因为要有接收和相应 2》要访问静态只要找ndinx的本地资源(事先在nginx服务器放静态资源) 3.1 动态资源代理实现(和之前一样发请求到另一个服务器)
使用proxy_pass动态代理
# 配置如下 location / { proxy_pass 路径; }3.2 静态资源代理实现(需要先配置数据卷,再在nginx服务器映射数据卷中添加静态资源才能实现访问nginx服务器映射本地资源)
使用root静态代理
# 配置如下 location / { root 静态资源路径; index 默认访问路径下的什么资源; autoindex on; # 代表展示静态资源的全部内容,以列表的形式展开。 } # 先修改docker-compose.yml,添加一个数据卷,映射到Nginx服务器的一个目录 # 添加了index.html和1.jpg静态资源 # 修改nginx的配置文件实现步骤: 1》》yml里面加数据卷===把静态资源放在映射的本地文件中,当访问ndinx时直接映射到本地资源实现静态资源的访问。 2》》回到docker_nginx重新加载服务器(这时会发现多个两个映射文件) 3》》分别进入到html页面和imge配置资源 进入imge所在文件夹直接把图片拉倒文件夹内部即可
4》》修改nginx的配置文件 [conf.d文件下的default.conf配置文件中添加动静分离的代理路径]这个路径是nginx内部的路径,根据这个路径的映射再读取到本地的静态资源。
5》》实现访问 192.168.33.136/html 或者192.168.33.136/html/index.hyml 192.168.33.136/img (全部资源) 或者192.168.33.136/img/1,jpg
附录:
》》》一个server可以写多个location 》》》轮询的体现 》》》权重的体现 》》》ip_hash; 的体现(第一次访问的ip是哪个以后即使设置了权重也没有用都只是访问第一个。)
单点故障,避免nginx的宕机,导致整个程序的崩溃
准备多台Nginx。
准备keepalived,监听nginx的健康情况。
准备haproxy,提供一个虚拟的路径,统一的去接收用户得请求。
查看资料中的内容,直接通过运行docker-compose即可
1》在opt下创建一个docker_nginx_cluster目录 2》进入到目录内部 3》把所有的文件全都拉到该目录下即可(在我的资源nginx)