nginx中的那些词儿 - Go语言中文社区

nginx中的那些词儿


谈到nginx,就会想到“反向代理”,“高可用”,“负载均衡”等等,我呢也是刚刚了解,做一个笔记,仅供参考。
引用图片
当发送一个请求时,先到管理员,管理员发信号给master,由master发信号给worker,worker争取资源返回。

1. 反向代理

1.正向代理
(1)当客户端访问要进行互联网访问,不能直接访问,要通过在客户端 配置代理服务器,来进行服务联网,访问到目标服务。
例如:用户通过浏览器访问www.gogal.com,在浏览器配置之后,访问www.abc.com,以可以访问到目标服务
弊端:需要客户端自己做配置
在这里插入图片描述
(2)配置
目标:客户端输入www.123.com:8080 访问到156.122.100.10 服务器8080端口
操作:
a.服务器启动服务,端口8080开启,并且,服务器对外开放该端口
b.在本地(windows系统)配置host文件
156.122.100.10 www.123.com
2.反向代理
(1)客户端不需要配置,只需将请求发送到反向代理服务器,由反向代理服务器选择目标获取数据,再返回给客户端。在用户眼中,反向代理服务与服务端是一体的,这样可以隐藏真实服务器的ip地址。
在这里插入图片描述 (2)配置
目标:客户端输入www.123.com 访问到156.122.100.10 服务器8080端口
操作:
a.服务器启动服务,端口8080开启,并且,服务器对外开放该端口
b.在服务器安装好nginx,配置nginx.conf文件
c.在本地(windows系统)配置host文件
156.122.100.10 www.123.com

//虚拟主机配置
server {
 listen: 80
 server_name: 156.122.100.10    //虚拟服务器的识别路径
 #反向代理配置
 location / {
 	root html;
 	proxy_pass: http://127.0.0.1:8080;  //重点:反向代理转发路径
 	index index.html index.html;
 }
}

目标:客户端输入156.122.100.10:9001/edu/ 访问到156.122.100.10 服务器8080端口;客户端输入156.122.100.10:9001/dev/ 访问到156.122.100.10 服务器8081端口
操作:
a.服务器启动2个服务,端口8080,8081开启,并且,服务器对外开放端口
b.在服务器安装好nginx,配置nginx.conf文件

server {
 listen: 9001   //监听端口
 server_name: 156.122.100.10    //虚拟服务器的识别路径
 #反向代理配置
 location ~/edu/ { //正则表达式,路径中包含edu
 	proxy_pass: http://127.0.0.1:8080;  //重点:反向代理转发路径
 }
  location ~/dev/ { //正则表达式,路径中包含dev
 	proxy_pass: http://127.0.0.1:8081;  //重点:反向代理转发路径
 }
}

2. 负载均衡

(1)当客户端请求变大、数据量变大时候,单纯增加硬件配置来提高性能就不是很优的解决方式,就有了负载均衡概念:增加服务器数量,将请求均发到各个服务器上的这个过程。
在这里插入图片描述
(2)配置
目标:客户端输入156.122.100.1/edu/ a.html,负载均衡,平均分担到8080端口、8081端口。
操作:
a.服务器启动2个服务,端口8080,8081开启,服务下都有/edu/a.html页面。并且,服务器对外开放端口
b.在服务器安装好nginx,配置nginx.conf文件

http {
//第一步:负载均衡的主列表
 upstream myserver {  
 	server 156.122.100.1:8080;
 	server 156.122.100.1:8081;
 }
 server {
  listen: 80       //监听端口
  server_name: 156.122.100.1   //虚拟服务器的识别路径
  #反向代理配置
   location / {
 	 root html;
 	 proxy_pass: http://myserver;  //第二步:反向代理转发路径
 	 index index.html index.html;
  }
 }
}

(3)策略
轮询:(默认)艰苦艰苦
**权重:**默认权重为1,权重越高被分配的客户端越多

 upstream myserver {  
 	server 156.122.100.1:8080 weight:10;
 	server 156.122.100.1:8081 weight:5;
 }

ip_hash
每个请求访问IP的hash结果分配,使每个访客固定访问一个后端服务器,解决session问题。

 upstream myserver {  
 	ip_hash;
 	server 156.122.100.1:8080;
 	server 156.122.100.1:8081;
 }

3. 动静分离

(1)为了加快网站解析速度,将动态页面和静态页面用不同服务器来解析,加快解析速度,降低单个服务器的压力。主要是前端服务,静态文件例如:html,js,css;动态文件例如:jsp,servlet。
在这里插入图片描述
(2)配置
目标:客户端输入156.122.100.1/edu/image/1.png,访问图片资源;156.122.100.1/edu/www/1.html,访问html资源。
操作:
a.服务器创建相应的文件
b.在服务器安装好nginx,配置nginx.conf文件

server {
 listen: 80  //监听端口
 server_name: 156.122.100.10    //虚拟服务器的识别路径
 #反向代理配置
 location /www/ { //www文件目录下
 	root /data/;
 	index index.html index.html;
 }
   location /image/ { //image目录下
 	root /data/;
 	autoindex on;   //列出文件
 }
}

4. 高可用

(1)高可用:
例如当发送一个请求时,nginx将请求分发到不同的服务中,在这个过程中,如果nginx宕机了,那服务就无法正确请求了。所以,为了避免就要高可用。
例如,当发送一个请求时,有2个nginx服务,一个做主服务器,另一个做备份服务器,当主服务宕机了,备份服务器就顶上。
在这里插入图片描述

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_37971615/article/details/104689973
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢