应式网站,装饰网站建设的背景,wordpress advantage,北京公积金网址概念介绍
1). 正向代理
正向代理服务器是一个位于客户端和原始服务器(origin server)之间的服务器#xff0c;为了从原始服务器取得内容#xff0c;客户端向代理发送一个请求并指定目标(原始服务器)#xff0c;然后代理向原始服务器转交请求并将获得的内容返回给客户端。 …概念介绍
1). 正向代理
正向代理服务器是一个位于客户端和原始服务器(origin server)之间的服务器为了从原始服务器取得内容客户端向代理发送一个请求并指定目标(原始服务器)然后代理向原始服务器转交请求并将获得的内容返回给客户端。
正向代理的典型用途是为在防火墙内的局域网客户端提供访问Internet的途径。
正向代理一般是在客户端设置代理服务器通过代理服务器转发请求最终访问到目标服务器。 2). 反向代理
反向代理服务器位于用户与目标服务器之间但是对于用户而言反向代理服务器就相当于目标服务器即用户直接访问反向代理服务器就可以获得目标服务器的资源反向代理服务器负责将请求转发给目标服务器。用户不需要知道目标服务器的地址也无须在用户端作任何设定对于用户来说访问反向代理服务器是完全无感知的。 那么在本小节我们就是要使用nginx来作为反向代理服务器使用。 在nginx中我们可以在nginx.conf中配置反向代理:
server {listen 82;server_name localhost;location / {proxy_pass http://192.168.200.201:8080; #反向代理配置将请求转发到指定服务}
}
上述配置的含义为:
我们访问nginx的82端口时根据反向代理配置会将请求转发到 http://192.168.200.201:8080 对应的服务上。
6.3.2 测试
需求: 在192.168.200.201这台服务器中部署了java应用运行端口为8080并提供了一个可访问的链接 /hello。现在我们需要在访问nginx的82端口时通过nginx将请求转发到192.168.200.201:8080的服务。 1). 在192.168.200.201部署服务并启动
安装JDk
配置环境变量JAVA_HOME
将资料中提供的 helloworld-1.0-SNAPSHOT.jar 上传到服务器端并通过指令 java -jar helloworld-1.0-SNAPSHOT.jar 运行服务。 2). 在192.168.200.200中的nginx.conf中配置反向代理
进入nginx的安装目录并编辑配置文件nginx.conf:
cd /usr/local/nginx/conf/
vim nginx.conf
在http块中,再添加一个server块虚拟主机的配置,监听82端口,并配置反向代理proxy_pass:
server {listen 82;server_name localhost;location / {proxy_pass http://192.168.200.201:8080; #反向代理配置将请求转发到指定服务}
} 3). 检查配置文件并重新加载
nginx -t nginx -s reload
4). 访问 关闭防火墙
systemctl stop firewalld
6.4 负载均衡
6.4.1 概念介绍
早期的网站流量和业务功能都比较简单单台服务器就可以满足基本需求但是随着互联网的发展业务流量越来越大并且业务逻辑也越来越复杂单台服务器的性能及单点故障问题就凸显出来了因此需要多台服务器组成应用集群进行性能的水平扩展以及避免单点故障出现。
应用集群将同一应用部署到多台机器上组成应用集群接收负载均衡器分发的请求进行业务处理并返回响应数据
负载均衡器将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理
有两种实现方式
1、通过软件的形式来选择使用哪一个服务器Nginx
2、硬件也可以帮助实现负载均衡F5
2019年F5 networks收购Nginx 此处的负载均衡器我们将会使用Nginx来实现而Nginx的负载均衡是基于反向代理的只不过此时所代理的服务器不是一台而是多台。
6.4.2 测试
1). 将资料中提供的两个jar包上传到192.168.200.201服务器上 我们在测试时并没有那么多服务器我们可以在一台服务器中启动多个服务运行在不同的端口号上进行测试。 2). 运行上传上来的两个jar包运行端口分别是 8080 8081
由于我们执行 java -jar 指令会占用前台窗口所以我们可以开启两个窗口进行测试。 验证
http://192.168.200.201:8080/hello
http://192.168.200.201:8081/hello
3). 在nginx中配置负载均衡
打开nginx的配置文件nginx.conf并增加如下配置:
#upstream指令可以定义一组服务器
#负载均衡
upstream targetserver{ server 192.168.200.201:8080;server 192.168.200.201:8081;
}
server {listen 8080;server_name localhost;location / {#反向代理配置proxy_pass http://targetserver; }
}
具体的配置位置如下: 4). 重新加载nginx配置文件,访问
nginx -s reload
测试时,我们直接访问nginx的8080端口(http://192.168.200.200:8080), 此时nginx会根据负载均衡策略,将请求转发到后面的两台服务器。 在上述的测试过程中我们看到请求均衡的转发到了8080和8081因为模式的负载均衡策略是轮询。
注意: 上述所有涉及到的端口号都需要在对应的服务器的防火墙中开放或者彻底关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
6.4.3 负载均衡策略
处理上述默认的轮询策略以外在Nginx中还提供了其他的负载均衡策略如下
名称说明特点轮询round_robin默认方式weight权重方式根据权重分发请求,权重大的分配到请求的概率大ip_hash依据ip分配方式根据客户端请求的IP地址计算hash值 根据hash值来分发请求, 同一个IP发起的请求, 会发转发到同一个服务器上least_conn依据最少连接方式哪个服务器当前处理的连接少, 请求优先转发到这台服务器url_hash依据url分配方式根据客户端请求url的hash值来分发请求, 同一个url请求, 会发转发到同一个服务器上fair依据响应时间方式优先把请求分发给处理请求时间短的服务器
权重的配置
#upstream指令可以定义一组服务器
upstream targetserver{ server 192.168.200.201:8080 weight10;server 192.168.200.201:8081 weight5;
}
上述配置的weight权重是相对的在上述的配置中效果就是在大数据量的请求下最终8080接收的请求数是8081的两倍