不会用nginx?看完即入门

在这里插入图片描述

一、关于nginx

 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
主要用途(包含但不仅限于):

  • Http静态资源服务器
     存储静态资源,如图片文件等。
  • 负载均衡
     如果一台服务器不能承受并发访问压力时,我们可以新增一个服务,其中用nginx可以实现一个入口访问,然后根据nginx的分发策略将全部访问请求分发到不同的服务器上,分散访问压力,使得服务正常运行。
  • 反向代理
     隐藏后端资源服务器信息,与正向代理相反。流程就是客户端发起请求到nginx,nginx经过查询配置,获取到后端真正服务器地址,请求后端服务,然后返回数据给客户端。

二、反向代理

 那么怎样用nginx来实现一个反向代理服务器呢?
 首先启动一个tomcat服务器,用它来模拟后台服务。
 配置文件为conf/server.xml。
端口为8080的tomcat服务器
在这里插入图片描述
 我们不想让外界知道后台服务的地址,那么我们就需要配置nginx方向代理。
 配置文件为conf/nginx.conf
 删除默认的server配置:
在这里插入图片描述
 添加新的server配置:

	server {
		listen       80;
        server_name  localhost;
		location / {
            proxy_pass http://localhost:8080;
            proxy_set_header Host $host:$server_port;
        }
	}

在这里插入图片描述
 此配置意为监听localhost:80/,并将这上面的所有请求代理到localhost:8080服务。
 启动nginx:
 点击双击nginx.exe,黑窗口一闪而过
在这里插入图片描述
 那怎样查看是否启动成功呢?
 打开任务管理器查看是否有两个nginx进程:
在这里插入图片描述
 其中一个是nginx的守护进程。
 当然也可以通过命令行来查看:

tasklist | findstr nginx

在这里插入图片描述
 特别需要注意的是,nginx的位置不能是中文文件夹下否则会报错。
 错误日志可以在logs/error.log中查看:
在这里插入图片描述
 浏览器访问80端口:
在这里插入图片描述
 成功实现反向代理。

三、负载均衡

 nginx中,有多种负载均衡策略

  • 轮询
     在服务列表中根据时间将请求依次分配到服务器。

  • 权重
     根据重要程度分配,权重值越大,转发到这台服务器的请求就会越多。

  • IP Hash
     根据客户端的ip进行hash算法,使得某ip访问的一直是固定的某台服务器,这样可以解决session的问题。

  • Url Hash
     需要安装第三方模块,根据url进行hash算法,使得某url对应的一直是固定的某台服务器。

  • Fair
     需要安装第三方模块,按照后端服务响应时间来分配,响应时间短的优先分配。

     我们主要来介绍一下轮询、权重、IP Hash这三种nginx自身能做的策略。

1.1启动两个tomcat服务

 刚刚我们已经启动了一个8080服务,现在将tomcat包复制一份
在这里插入图片描述
 并修改其中的/conf/server.xml:
 将shutdown端口由8005改为8006:
在这里插入图片描述
 将http端口由8080改为8081:
在这里插入图片描述
 将ajp端口由8009改为8010:
在这里插入图片描述
 分别在两个tomcat的/webapps/ROOT/index.jsp中添加标识:
在这里插入图片描述
 启动8081服务:
在这里插入图片描述

1.2轮询

 nginx配置:

upstream local_server{
        server localhost:8080;
        server localhost:8081;
}

 local_server使我们自己起的名字,server表示可用的后台服务。
在这里插入图片描述
 在nginx.exe所在目录打开命令行,执行重启命令:

nginx -s reload

在这里插入图片描述
 重新访问localhost,会看到在两个服务之间来回切换:
在这里插入图片描述
在这里插入图片描述

1.3权重

 nginx配置

upstream local_server{
		server localhost:8080 weight=8;
        server localhost:8081 weight=2;
}

 重启nginx,并在页面访问localhost,发现8080页面出现频率要比8081高得多。

1.4IP Hash

 nginx配置:

upstream local_server{
		ip_hash;
        server localhost:8080;
        server localhost:8081;
}

 测试方式同上。

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页