真正的稳定,是自己不断成长,不断寻找新的空间。与其要稳定,不如开始拥抱这个变化的时代,让自己准备好。
python真的很好玩
【写在前面】:
耳听为虚,实操为真
【参考材料】:
【Nginx是什么】
- Nginx是开源的、高性能的HTTP服务器和反向代理服务器;
- Nginx可以为反向代理进行负载均衡;
- Nginx基于事件架构驱动,模块化、跨平台。
【Nginx怎么用】
- 正向代理
举个简单例子,公司的私人电脑不允许访问外网,如果想访问外网只能走测试服务器,那私人电脑想访问外网怎么办?可以设置正向代理,即在浏览器中设置代理服务器(测试服务器),通过代理服务器代理访问外网。出发点是使用者主动去配置代理服务器。 正向向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息,结构如下图所示
-
反向代理
举个简单例子,在tomcat中发布一个war包,我们可以直接访问这个tomcat,也可以通过一个代理服务器,由代理服务器去访问tomcat,而这个过程并不需要浏览器知道代理服务器,而是通过反向代理来实现。出发点是客户端不知道有代理服务器,代理服务器代理的是服务端。这个过程隐藏了真正处理业务的服务端信息。结构如下图所示:
反向代理 -
负载均衡
所谓负载均衡,就是将接受到的请求按照某种规则分摊到其他server上,达到减少单台server压力的作用。结构如下图所示
- 负载均衡常用调度算法
(1). 轮训(默认):即请求按照顺序逐一分配到服务器,这种方式可以给服务器设置权重(weight),用于跳转请求的分配率,权重越大,被分配到请求的几率越大;
(2). ip_hash: 每个请求按照发起客户端的 ip 的 hash 结果进行匹配,这样的算法下一个固定 ip 地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下 Session 共享的问题;
(3). fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配。响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少,它是结合了前两者的优点的一种调度算法。但是需要注意的是 Nginx 默认不支持 fair 算法,如果要使用这种调度算法,请安装 upstream_fair 模块。
5.反向代理配置
(1). 访问域名如何使其正确运行在指定的端口server上,结构如下图所示:
(2). 上述测试使用Nginx进行反向代理HTTP请求实质有经过几个步骤。首先,访问www.test.com后,会进入hosts文件,寻到对应访问的IP地址(节省去了域名解析的时间)。而后请求变为127.0.0.1:80,而后借助Nginx中的代理配置,将请求代理到端口为8089的端口,即完成使用域名对127.0.0.1:8089的访问。
(3). 具体nginx.conf的配置
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
#设定实际的服务器列表
upstream ac_server{
server 127.0.0.1:8089;
}
server {
listen 80;
server_name www.test.com;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location / {
proxy_pass http://ac_server;
}
}
}
网友评论