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 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/416459.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web学习笔记(二十一)

目录 1.构造函数创建对象 1.1规则 1.2 new关键字调用构造函数时,函数内部做了什么事情? 1.3总结 2.混合模式创建对象 3.JavaScript 继承---借助构造函数 4.原型链 4.1原型链实现方法继承 5.完美的组合继承 6.call方法的使用 1.构造函数创建对象…

【GB28181】wvp-GB28181-pro快速修改登录页面名称(前端)

引言 作为一个非前端开发人员,自己摸索起来比较费劲,也浪费了很多时间 本文快速帮助开发者修改为自己名称的一个国标平台 文章目录 一、 预期效果展示二、 源码修改-前端三、 验证修改效果一、 预期效果展示 二、 源码修改-前端 需要修改的文件位置: 项目工程下web_src目录…

一、深度学习介绍

目录 1、深度学习与机器学习的区别 1.1 特征提取方面 1.2 数据量和计算性能要求 1.3 算法代表 2、深度学习应用场景 1、深度学习与机器学习的区别 1.1 特征提取方面 1.2 数据量和计算性能要求 1.3 算法代表 2、深度学习应用场景

Linux课程四课---Linux开发环境的使用(vim编辑器的相关)

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

CP AutoSar之LIN Driver详细说明

本文遵循autosar标准:R22-11 1 简介 本文指定了 AUTOSAR 基础软件模块 LIN 驱动程序的功能、API 和配置。 1.1 范围 LIN驱动程序适用于ISO 17987主节点和从节点。AUTOSAR中的LIN实现偏离了本LIN驱动器规范中所述的ISO 17987规范,但LIN总线上的行为不…

搜维尔科技:CATIA为建筑、基础设施和城市规划提供虚拟孪生力量

超越传统项目交付方法限制的协作 复杂建筑和基础设施项目开发的设计和工程流程需要多个利益相关者和所有项目阶段的密切合作。此外,日益复杂的施工项目要求所有团队都依赖 CATIA 和3D EXPERIENCE 虚拟孪生技术作为“通用语言”,以促进协作并减少阶段之间…

Pytorch添加自定义算子之(5)-配置GPU形式的简单add自定义算子

参考:https://zhuanlan.zhihu.com/p/358778742 一、头文件 命名为:add2.h void launch_add2(float *c,const float *a,const float *b,int n);

开发前端需求时,我们该如何准确预估个人工时

公众号:程序员白特,欢迎一起交流学习 原文作者:掘金-悟空和大王 前言 分享一篇前端开发人员比较感兴趣的话题,如何评估工时。 领导为什么会压工时? 使他的KPI更好看不清楚做这个东西实际要多长时间因为第2点的原因&…

极狐GitLab 使用指南:开启多种导入导出源

GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 极狐GitLab 支持从主流的平台将项目导入到极狐GitLab&#xff…

Qt|QTreewidget类下函数qt助手详解说明示例(上)

该系列持续更新,喜欢请一键三连,感谢各位大佬。 QT5.14.2 参考官方QT助手 文章目录 QTreeWidget ClasspropertiesPublic Functions默认构造函数默认析构函数添加根节点void addTopLevelItem(QTreeWidgetItem *item)添加多个根节点void addTopLevelItems…

图神经网络实战——图论

图神经网络实战——图论 0. 前言1. 图属性1.1 有向图和无向图1.2 加权图与非加权图1.3 连通图非连通图1.4 其它图类型 2. 图概念2.1 基本对象2.2 图的度量指标2.2 邻接矩阵表示法 3. 图算法3.1 广度优先搜索3.2 深度优先搜索 小结系列链接 0. 前言 图论 (Graph theory) 是数学…

从代码到内容:使用C#和Fizzler探索Instagram的深处

文章摘要: Instagram是一个流行的社交媒体平台,拥有数亿的用户和海量的图片和视频内容。如果您想要从Instagram上获取一些有用的信息或数据,您可能需要使用爬虫技术来自动化地抓取和分析网页内容。本文将介绍如何使用C#和Fizzler这两个强大的…

Facebook元宇宙大观:数字化社交的未来愿景

近年来,元宇宙(Metaverse)概念备受关注,被认为是数字化社交的未来趋势。作为全球领先的社交媒体平台之一,Facebook正积极探索元宇宙的发展路径,构想着一个数字化社交的未来愿景。在本文中,我们将…

FLStudio20.8编曲制作软件中文版下载及功能全面介绍

一、主要功能 FL Studio 20.8,作为一款深受音乐制作人和作曲家喜爱的软件,具备多种核心功能,满足从创作到完成的整个音乐制作流程。 音频录制与编辑:用户可以轻松录制外部音频,如乐器演奏、人声等,并在软…

PBM学习——从基础到精通!!!

本专栏着重讲解PBM学习所得,学习笔记、心得,并附有视频素材资料,视频详细目录如下: PBM相关参数解释1 PBM相关参数解释2 PBM相关案例实践1 PBM相关案例实践2 PBM相关案例实践2 PBM相关案例实践3 PBM多相流中次相界面设置1 PBM多相流中次相界面设置2 欧拉多相流曳力1 欧拉多…

opengles 绘制图元 ——glDrawArrays() 相关API介绍 (十)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、opengles3.0 绘制图元介绍二、绘图图元 API 介绍1. glDrawArrays()1.1 glDrawArrays()函数原型1.2 GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN 三者的区别1.3 使用GL_TRIANGLES, G…

苹果App Store上架工具介绍

文章目录 摘要引言正文1. Xcode2. [appuploder](https://www.applicationloader.net/)3. [克魔助手](https://keymob.com/) 4.[ipa guard](https://www.ipaguard.com/)总结参考资料 摘要 苹果App Store作为iOS应用程序的主要分发渠道,上架应用程序需要遵守规定和通…

kafka消费者接收不到消息

背景: 对kafka消息进行监听,生产者发了消息,但是消费端没有接到消息,监听代码 消费端,kafka配置 spring.kafka.bootstrap-serverskafka.cestc.dmp:9591 spring.kafka.properties.sasl.jaas.configorg.apache.kafka.…

动态规划之使用最小花费爬楼梯【LeetCode】

动态规划之使用最小花费爬楼梯 LCR 088. 使用最小花费爬楼梯解法1解法2 LCR 088. 使用最小花费爬楼梯 LCR 088. 使用最小花费爬楼梯 解法1 状态表示(这是最重要的):dp[i]表示以第i级台阶为楼层顶部,到达第i层台阶的最低花费。 状…

threejs 大场景下,对小模型进行贴图处理

接上篇小模型的删除☞threeJS 大模型中对小模型进行删除-CSDN博客 针对已有模型,根据数据状态进行贴图处理,例如:机房内电脑告警状态、电脑开关机状态下的不同状态贴图等 示例模型还是以丛林小屋为例:针对该模型中的树干进行贴图…