Ⅱ.nginx

1. 概念

nginx是一个高性能的HTTP与反向代理服务器。它占用内存小,并发能力强,支持5w个并发连接。

2. 反向代理

正向代理:代理客户端,相当于桥梁,客户端通过代理服务器访问服务端,需要对客户端进行配置访问代理服务器。
反向代理:代理服务器,相当于选择开关,反向代理服务器选择服务器拿到数据再返回给客户端,客户端不需要做任何配置

3. 负载均衡

将原本发送到单一服务器的请求发送给nginx,并在多个服务器之间做选择,实现服务器集群的并发。
将请求在服务器之间作平均分配,降低单个服务器的负载。


14833822-d75e62a751c78116.png
负载均衡

4.动静分离

tomcat中静态资源:html,css,js
tomcat中动态资源:jsp,servlet
在两台tomcat服务器中分别部署静态与动态资源,通过nginx反向代理做选择。


14833822-c5fbc7b1df565429.png
动静分离

5. nginx配置

cd /usr/local/nginx/sbin/
#开始运行,访问时记得开放防火墙端口
./nginx
#nginx配置
cd /usr/local/nginx/conf/
vim nginx.conf

5.1 全局块

#表示nginx处理的并发数量
worker_process 1;

5.2 events块

#影响nginx服务器与用户的网络连接
#最大连接数
work connection 1024;

5.3 http块

5.3.1http全局块
5.3.2server块
server {
  #nginx暴露给客户端的端口
  listen 80;
  #主机名称
  server_name;

}

6.nginx常用命令

#先进去nginx目录
cd /usr/local/nginx/sbin/

#查看nginx版本号
./nginx -v

#启动nginx
./nginx

#关闭nginx
./nginx -s stop

#重加载nginx
./nginx -s reload

7. 实现反向代理

7.1 安装tomcat(8080)

cd /tomcat/bin/
./startup.sh
#开放端口
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd -reload
firewall-cmd --list-all
14833822-4afa1065ff6194b8.png
反向代理

7.2 修改nginx.conf

server {
  #nginx暴露端口
  listen 80;
  #暴露ip
  server_name 192.168.17.129;

  location / {
    root html;
    #被代理ip:port
    proxy_pass http://127.0.0.1:8080;
  }
}

server {
  #nginx暴露端口
  listen 80;
  #暴露ip
  server_name 192.168.17.129;

  检测到edu做如下跳转
  location ~ /edu/ {
  proxy_pass http://127.0.0.1:8080;
   }
  检测到vod做如下跳转
  loaction ~ /vod/ {
  proxy_pass http://127.0.0.1:8081;
  }
}

正则表达式
= 相等
~包含
~*包含且不区分大小写

8. 负载均衡

分配策略

  1. 轮询(默认)
    每个请求按时间顺序自动分配,服务器宕机自动剔除。
  2. 权重
    根据权重进行分配
  server 192.168.17.129:8080 weight=5;
  server 192.168.17.129:8081 weight=10;
  1. ip_hash
    让用户指定访问一台服务器
upstream myserver {
  ip_hash;
  server 192.168.17.129:8080;
  server 192.168.17.129:8081;
}

4.fair
根据请求的响应时间进行分配

upstream myserver {
  server 192.168.17.129:8080;
  server 192.168.17.129:8081;
}

简单实现

upstream myserver {
  server 192.168.17.129:8080;
  server 192.168.17.129:8081;
}
server {
  listen 80;
  server_name 192.168.17.129;

  location / {
    root html;
    proxy_pass http://mysrver;
  }
}

9. 动静分离

server {
  #nginx暴露端口
  listen 80;
  #暴露ip
  server_name 192.168.17.129;

  location /image/ {
    #静态文件路径
    root  /data/;
    #列出文件目录
    autoindex on;
  }

 location /www/ {
    #静态文件路径
    root  /data/;
    #列出文件目录
    index.html;
  }
}

10. 高可用

定义:利用主nginx服务器与备份nginx服务器保证后台的高可用性。主服务器宕机会自动切换到备份服务器。


14833822-6970e6abab8241ce.png
高可用
  1. 在两台服务器上安装nginx
  2. 在两台服务器上安装keepalived
yum install keepalived -y
  1. 修改配置
vi /etc/keepalived/keepalived.conf
#全局配置
smtp_sever 192.168.17.129  #nginx地址
smtp_connect_timeout 30 #nginx超时时间
router_id LVS_DEVELBACK  #是主机hosts配置的地址

#脚本配置
interval 2  #脚本检测时间间隔
weight -20  #脚本条件成立时降低权重

#虚拟ip配置
state MASTER/BACKUP  #主/从
interface ens33  #网卡名
priority 100/90  #主从优先级
virtual_ipaddress {
    192.168.17.50 虚拟ip地址
}

4.启动主从nginx,启动主从keepalived

./nginx
systemctl start keepalived.service

11. nginx 原理

  1. 工作模式


    14833822-3121067cc1e1a5a1.png
    master-worker
  2. worker


    14833822-01bbf2fbe6100907.png
    worker
  3. master-worker好处
    (1)可以进行热部署:nginx -s reload
    (2)每一个worker是一个独立的进程,不用加锁,可以保证服务不会中断。
  4. worker数量设置
    io多路复用(linux中),每个worker进程可以把cpu发挥到极致,worker数量与cpu数量相等时最理想的状态。
  5. worker连接数
    一个请求占用worker的2个连接数(静态资源)或四个连接数(动态资源访问tomcat)。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
银河麒麟是一个基于Linux系统的操作系统,而Nginx则是一个轻量级的Web服务器和反向代理服务器。要在银河麒麟上进行Nginx的离线安装,可以按照以下步骤进行操作: 1. 下载Nginx安装包:在银河麒麟的官方网站或者Nginx官方网站上下载适用于Linux系统的Nginx压缩包。确保下载的安装包版本与操作系统的架构相匹配。 2. 安装依赖软件包:在离线环境下,需要手动安装Nginx所依赖的软件包。可以通过在终端执行命令`sudo apt install`来安装所需的依赖软件包。具体的依赖包名称可以在Nginx官方文档或者银河麒麟的软件包管理器中查找。 3. 解压安装包:将下载好的Nginx安装包解压到指定目录,可以使用命令`tar -zxvf`来解压。解压后,会得到一个包含Nginx相关文件的文件夹。 4. 编译和安装:进入解压后的文件夹,执行`./configure`命令来进行编译配置。该命令会检查系统环境并生成对应的Makefile文件。然后执行`make`命令进行编译,最后执行`sudo make install`命令安装Nginx到系统中。 5. 启动Nginx:安装完成后,可以使用命令`sudo nginx`来启动Nginx服务器。可以通过`sudo systemctl start nginx`命令来启动Nginx的systemd服务。可以通过`sudo systemctl enable nginx`命令将Nginx设置为开机自启动。 通过以上步骤,就可以在银河麒麟的离线环境下成功安装Nginx服务器。在安装完成后,可以通过在浏览器中输入服务器IP地址来验证Nginx是否正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值