【底层】-Nginx基础

真正的稳定,是自己不断成长,不断寻找新的空间。与其要稳定,不如开始拥抱这个变化的时代,让自己准备好。


python真的很好玩

【目录】安全与网络实践

【写在前面】:
耳听为虚,实操为真
【参考材料】:

【Nginx是什么】

  1. Nginx是开源的、高性能的HTTP服务器和反向代理服务器;
  2. Nginx可以为反向代理进行负载均衡;
  3. Nginx基于事件架构驱动,模块化、跨平台。

【Nginx怎么用】

  1. 正向代理
    举个简单例子,公司的私人电脑不允许访问外网,如果想访问外网只能走测试服务器,那私人电脑想访问外网怎么办?可以设置正向代理,即在浏览器中设置代理服务器(测试服务器),通过代理服务器代理访问外网。出发点是使用者主动去配置代理服务器。 正向向代理最大的特点是客户端非常明确要访问的服务器地址;服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端;正向代理模式屏蔽或者隐藏了真实客户端信息,结构如下图所示
正向代理
  1. 反向代理
    举个简单例子,在tomcat中发布一个war包,我们可以直接访问这个tomcat,也可以通过一个代理服务器,由代理服务器去访问tomcat,而这个过程并不需要浏览器知道代理服务器,而是通过反向代理来实现。出发点是客户端不知道有代理服务器,代理服务器代理的是服务端。这个过程隐藏了真正处理业务的服务端信息。结构如下图所示:


    反向代理
  2. 负载均衡
    所谓负载均衡,就是将接受到的请求按照某种规则分摊到其他server上,达到减少单台server压力的作用。结构如下图所示

负载均衡
  1. 负载均衡常用调度算法
    (1). 轮训(默认):即请求按照顺序逐一分配到服务器,这种方式可以给服务器设置权重(weight),用于跳转请求的分配率,权重越大,被分配到请求的几率越大;
    (2). ip_hash: 每个请求按照发起客户端的 ip 的 hash 结果进行匹配,这样的算法下一个固定 ip 地址的客户端总会访问到同一个后端服务器,这也在一定程度上解决了集群部署环境下 Session 共享的问题;
    (3). fair:智能调整调度算法,动态的根据后端服务器的请求处理到响应的时间进行均衡分配。响应时间短处理效率高的服务器分配到请求的概率高,响应时间长处理效率低的服务器分配到的请求少,它是结合了前两者的优点的一种调度算法。但是需要注意的是 Nginx 默认不支持 fair 算法,如果要使用这种调度算法,请安装 upstream_fair 模块。

5.反向代理配置
(1). 访问域名如何使其正确运行在指定的端口server上,结构如下图所示:

域名到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;
       }
   }
}

推荐阅读更多精彩内容

  • nginx概述 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、PO...
    逝者如斯灬阅读 2,928评论 0 15
  • 参考:https://www.cnblogs.com/zhouxinfei/p/7862285.html 侵删 n...
    会飞的鱼_500阅读 937评论 0 1
  • 《老男孩Linux运维》Nginx Documentation 集群简介 集群就是指一组(若干)相互独立的计算机,...
    Zhang21阅读 2,635评论 0 51
  • 看到喜欢的人 上班的八小时都变得甜蜜起来 暗恋的功力 没有人比我更高阶了吧!内心甜的要死 表面要波澜不惊 看他的眼...
    美皮阅读 74评论 0 0
  • 双面电路板特性 单面电路板和双面电路板中的区别就是铜的层数不同。双面电路板是电路板两面都有铜,可以通过过孔导通起到...
    Velision阅读 1,066评论 0 0
  • 01 林丹出轨嫩模成功盖过了刘恺威与王鸥对剧本事件,以迅雷不及掩耳盗铃之势刷爆了朋友圈及各大媒体平台。 一时之间林...
    二璐阅读 296评论 0 21