nginx是一款自由的、开源的、高性能的HTTP服务器和 反向代理 服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行 负载均衡 的实现。Nginx百度百科
正向代理
当我们需要访问一下外国网站时由于一定的原因,无法正常访问,此时找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!
上述这样的代理模式称为正向代理,正向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息。 客户端必须要进行一些特别的设置才能使用正向代理。
反向代理
反向代理的处理方式,例如某宝网站,每天同时连接到网站的访问人数已经爆表,单单个服务器不能满足用户访问量的要求,就出现分布式部署;也就就是用户访问URL时,nginx通过一定的规则把用户的请求分发到不同的服务器上,实现负载均衡。 实际运行方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。 示意图:
项目场景
通常情况下,我们在实际项目操作时,正向代理和反向代理很有可能会存在在一个应用场景中,正向代理代理客户端的请求去访问目标服务器,目标服务器是一个反向单利服务器,反向代理了多台真实的业务处理服务器
nginx安装部署
通过https://nginx.org/en/download.html 下载
放在本地解压缩
在命令行中启动nginx服务
强制停止nginx服务器,如果有未处理的数据,丢弃 nginx -s stop
如果有未处理的数据,等待处理完成之后停止
nginx -s quit
在conf文件夹中找到nginx.conf配置文件
main # 全局配置 events { # nginx工作模式配置 } http { # http设置 .... server { # 服务器主机配置 .... location { # 路由配置 .... } location path { .... } location otherpath { .... } } server { .... location { .... } } upstream name { # 负载均衡配置 .... } include vhost/*.conf; #引入目录下的配置文件,方便维护管理 }
主要由6个部分组成:
main:用于进行nginx全局信息的配置 events:用于nginx工作模式的配置 http:用于进行http协议信息的一些配置 server:用于进行服务器访问信息的配置 location:用于进行访问路由的配置 upstream:用于进行负载均衡的配置
Nginx 常用命令
测试配置文件 安装路径下/nginx/sbin/nginx -t
启动命令 /nginx/sbin/nginx
停止命令 /nginx/sbin/nginx -s stop 或者 nginx -s quit
重启命令 /nginx/sbin.nginx -s reload
查看进程ps -ef|grep nginx
平滑重启 kill -HUP 【Nginx 主进程号】
nginx支持的负载均衡调度算法方式
1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver { server 192.168.0.14; server 192.168.0.15; }
2、指定权重 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; }
3、IP绑定 ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决集群部署环境下session共享的问题。
upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; }
4、fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver { server server1; server server2; fair; }
5、url_hash(第三方) 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; hash_method crc32; }
配置系统的host文件 添加一条 127.0.0.1 www.imooc1.com
127.0.0.1 www.imooc1.com
单机配置多应用
配置两个tomcat服务器
在环境变量配置中新增 CATALINA_BASE ,CATALINA_HOME,TOMCAT_HOME ,配置对应tomcat对应的路径
在tomcat 的conf的文件夹中server.xml 修改。 修改tomcat的端口不能一样,并将tomcat1配置文件中的 CATALINA_BASE ,CATALINA_HOME,TOMCAT_HOME 全部修改为CATALINA_BASE2 ,CATALINA_HOME2,TOMCAT_HOME2 分别启动两个tomcat
upstream www.imooc1.com{ server www.imooc1.com:7088; #默认为权重,访问7088和9080 端口的比例为1:1 server www.imooc1.com:9080; # server 127.0.0.1:7088; # server 127.0.0.1:9080; } server { listen 80 default_server; listen [::]:80 default_server; autoindex on; server_name www.imooc1.com; access_log off ; index index.html index.htm index.jsp index.php; #error_page 404 /404.html; if ( $query_string ~* ".*[\;'\<\>].*" ){ return 404; } location / { proxy_pass http://www.imooc1.com; add_header Access-Control-Allow-Origin *; } }
用户通过访问www.imooc1.com,nginx通过去权重规则,调用7088或9080端口, 实现负载均衡
原文链接:https://blog.csdn.net/qq_28938627/article/details/80532442?utm_medium=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.wap_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase