Linux安装Nginx&配置Keepalived高可用

Vmwaire 安装 Linux

解决启动没有IP地址问题

cd /etc/sysconfig/network-scripts
vi ifcfg-ens33

在这里插入图片描述

# 重启linux
reboot
# 再次查看ip 
ip addr

Linux 镜像地址下载

ps: 发现阿里有一个工具箱,里面有各种镜像

阿里镜像地址
https://developer.aliyun.com/mirror/

安装nginx

ps: 如果yum 安装nginx 会把nginx 的很多目录拆分开,找起来有点费劲,可以在网上把完整的包下载下来,然后再手动安装,也可以安装自己想要的nginx 模块

Nginx 下载地址
http://nginx.org/download/

Nginx环境依赖安装

缺少gcc
缺少pcre
缺少zlib

cd /usr/local/nginx-1.23.0
./configure

# 更新一下yum源
yum update

# 编译的时候会提示缺少什么依赖 
yum install -y gcc

# 安装pcre 
yum install -y pcre 
yum install -y pcre-devel

# 安装zlib
yum install -y zlib-devel

# 再次编译 指定安装目录 以及指定nginx 需要的模块
./configure --prefix=/usr/local/nginx

# 编译安装
make & make install

# 启动nginx
cd /usr/local/nginx/sbin/
./nginx

# 全局设置使用nginx 命令
 vi /etc/profile
 
# 在最后一行追加
export PATH=/usr/local/nginx/sbin:$PATH

# 重新加载配置文件
source /etc/profile

# 进入到任意目录测试一下nginx 命令
# 设置通过 systemctl 控制nginx
vi /usr/lib/systemd/system/nginx.service

# 设置开启自启
systemctl enable nginx.service

# 通过systemctl启动nginx
systemctl start nginx.service
[ Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
[Install]
WantedBy=multi-user.target

Nginx 功能了解

正向代理

正向代理:如果把局域网外的Internet想象成一个巨大的资源库,则局域网中的客户端要访问Internet,则需要通过代理服务器访问,这种代理服务就称为正向代理

反向代理

反向代理:其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真是的服务器IP地址。

负载均衡

负载均衡:将请求分发到各个服务器上,将原来的单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器上。

动静分离

Nginx 配置文件了解 nginx.config

全局块

主要会设置一些影响nginx服务器整体运行的配置指令,主要包括配置运行Nginx服务器的用户(组)、允许生成的worker process数,进程PID存放路径、日志存放路径和类型一级配置文件的引入等。

worker_processes 1;

这是Nginx 服务器并发处理服务的关键配置,worker_processes 值越大,可以支持的并发处理数量也越多,但是会受到硬件、软件等设备的制约。

events

主要是影响Nginx服务器与用户的网络连接,常用的设置包括是否开启对多 work process下网络连接进行序列化,是否允许同时接受多个网络连接,选取那种事件驱动模型来处理连接请求,每个work process 可以同时支持的最大连接数等。

worker_connections 1024;

支持的最大连接数为1024个。

http

包块文件引入,MINME-TYPE定义、日志自定义、连接超时时间、单链接请求数上限等。

server

ps: 这里是匹配的listen监听的端口号 + server_name,server_name 可以配置域名或者ip地址,域名也支持正则匹配。

server_name 正则匹配规则

  1. 完整匹配 server_name www.bbc.com,www.bba.com
  2. 通配符匹配 server_name *.bbc.com
  3. 通配符结束匹配 server_name www.*
  4. 正则匹配 ~1+.bba.com$

location 正则表达式说明
5. = 用于不包含正则表达式的uri前,要求请求字符串与uri严格匹配,如果匹配成功,就停止继续向下继续搜索,并立即处理请求。
6. ~ 用于表示uri包含正则表达式,并且区分大小写。
7. ~* 用于表示uri包含正则表达式,并且不区分大小写
8. ^~ 用于不含正则表达式的uri前,要求Nginx服务器找到标识uri和请求字符串匹配度最高的location,立即使用此location 处理请求,而不再使用location中的正则uri 和请求字符串匹配。
PS:如果uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

location

Nginx 配置高可用(keepalived)

# yum 安装keepalived 
yum install keepalived -y

# 修改keepalived 配置文件 
# 主要是修改那个为MASTER BACKUP 
# 以及配置供以访问的虚拟IP
# 配置网卡 ens33 供绑定虚拟IP
cd /etc/keepalived
vi keepalived.conf 

# 启动keepalived
systemctl start keepalived 

# 查看启动状态
systemctl status keepalived

启动成功后可以看到已经在ens33 网卡上绑定的虚拟IP
在这里插入图片描述

! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 192.168.10.1
   smtp_connect_timeout 30
   router_id LVS_DEVEL
   vrrp_skip_check_adv_addr
   vrrp_strict
   vrrp_garp_interval 0
   vrrp_gna_interval 0
}

vrrp_instance VI_1 {
    state BACKUP
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.10.200
    }
}


  1. 0-9 ↩︎

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值