部署安装Nginx服务实例
其他服务:
搭建zabbix4.0监控服务实例
普罗米修斯监控mysql数据库实战
Linux安装MySQL数据库步骤
一. Nginx概念介绍
1.介绍Nginx程序
Nginx (engine x) 是一款开源且高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。主要特点是占用内存少,并发能力强,事实上Nginx的并发能力确实在同类型的网页服务器中表现较好,宣称Nginx处理静态文件并发可达5万每秒。
2. Nginx对比Apache的优点
● 高并发,响应速度非常块,官方宣称Nginx处理静态文件并发5万每秒;
● 负载均衡及反向代理性能非常强;
● 系统内存和CPU占用率低;
● 可对后端服务进行健康检查;
● 支持PHPcgi方式和FastCGI方式;
● 可以作为缓存服务器、邮件代理服务器;
● 配置代码简洁且易上手;
3. Nginx的模块功能
Nginx web服务器最主要就是各种模块的工作,模块从结构上分为核心模块,基础模块、第三方模块。
其中这三类模块分别是:
● 核心模块:http模块、EVENT模块和MAIL模块等
● 基本模块:HTTP Access模块、HTTP FastCGI模块、HTTP proxy模块和HTTP REwrite模块
● 第三方模块:HTTP Upstream REquest Hash模块、Notice模块和HTTP Access Key模块、Limit req模块等。
Nginx的模块从功能上分为如下三类:
● Handlers(处理器模块):此类模块直接处理请求,并进行输出内容和修改headers信息等操作,Handlers处理器模块一般只能有一个;
● Filters (过滤器模块):此类模块主要对其他处理器模块输出的内容进行修改操作,最后由Nginx输出;
● Proxies (代理类模块):此类模块是Nginx的HTTP Upstream之类的模块,这些模块主要与后端一些服务比如FastCGI等进行交互,实现服务代理和负载均衡等功能。
二. Nginx服务的安装
Nginx的安装部署有很多种方法,其中可以通过yum命令进行安装,也可使用源码安装,这里依次来介绍。
2.1 实验环境准备
安装服务都是在虚拟机VMware Workstation上安装,若想都尝试去安装,可以提前先做好配置过环境的快照。
1)查看服务器版本
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
2)IP是否能ping通
[root@localhost ~]# hostname -I
192.168.102.166 192.168.122.1 [root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data.
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=53 time=28.2 ms
64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=53 time=35.9 ms
3)关闭安全上下文和防火墙
[root@localhost ~]# setenforce 0
[root@localhost ~]# getenforce
Permissive
[root@localhost ~]# iptables -F
[root@localhost ~]# systemctl stop firewalld
4)准备好要安装的软件包
Nginx的官网:http://nginx.org/

RPM包:http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
稳定版源码包:http://nginx.org/download/nginx-1.22.1.tar.gz
2.2 通过YUM安装
2.2.1 安装Nginx
需要先安装yum-utils工具包,才能安装epel源,而epel源默认有nginx的软件包,所以可以依次安装这几个软件包。
yum install yum-utils
yum install epel-release -y
yum install nginx -y
2.2.2 查看Nginx
从epel源中下载nginx的版本是1.20.1
[root@localhost ~]# nginx -v
nginx version: nginx/1.20.1
2.2.3 启动nginx服务
systemctl start nginx
启动服务后即可在网页上输入IP查看

第一种方式已经安装完成了,接下来进行第二种方式的安装,这次是使用rpm包安装,恢复之前配置好的快照,开始第二个实验。
2.3 使用RPM包安装
2.3.1 在官网下载RPM包
前面已经列出所需要的RPM包,先下载好RPM包
wget http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

提示OK就是已经下载成功了
2.3.2 安装RPM包
前面下载好了RPM包,可以看到在当前目录下有刚下载好的包,现在开始安装RPM包。
[root@localhost ~]# ls
anaconda-ks.cfg 公共 视频 文档 音乐
nginx-release-centos-7-0.el7.ngx.noarch.rpm 模板 图片 下载 桌面
[root@localhost ~]# rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm
警告:nginx-release-centos-7-0.el7.ngx.noarch.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 7bd9bf62: NOKEY
准备中... ################################# [100%]
正在升级/安装...1:nginx-release-centos-7-0.el7.ngx ################################# [100%]
使用ls查看repo源地址,也能看到这个nginx.repo安装上了

一共可以看到nginx的源有300多个包,不过我们用不了那么多,只需要安装服务端的nginx程序即可。

yum install nginx.x86_64 -y
2.4.3 启动nginx服务
[root@localhost ~]# nginx -v
nginx version: nginx/1.22.1
通过RPM包下载的版本是1.22.1
接下来重启服务就行了
systemctl start nginx
在官网输入IP 打开就是到欢迎页面的

由前后做的实验可以发现1.22.1与1.20.1显示的欢迎页面是不一样滴
2.4 通过源码安装Nginx
通过源码的方式来编译Nginx
2.4.1 在官网下载压缩包
http://nginx.org/en/download.html
下载压缩包并解压到当前目录中
wget http://nginx.org/download/nginx-1.22.1.tar.gz
tar xf nginx-1.22.1.tar.gz
mv nginx-1.22.1 nginx #重命名
2.4.2 安装所需的依赖包
[root@localhost ~]# yum install openssl openssl-devel gcc -y
2.4.3 开始编译服务
#编译nginx的家目录与所需组件信息
[root@localhost nginx]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-pcre
#可以判断是否成功
[root@localhost nginx]# echo $?
0
#开始安装
[root@localhost nginx]# make
[root@localhost nginx]# make install
[root@localhost nginx]# cd /usr/local/nginx/sbin/
#验证配置文件是否正确
[root@localhost nginx-1.22.1]# ./nginx -t
[root@localhost sbin]# ./nginx -t
nginx: the configuration file
#提示OK表示没有问题
/usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
#然后就能启动服务了
[root@localhost sbin]# ./nginx
如果编译过程中出现问题,也可使用make -B参数强制编译
参数说明:
- –prefix 表示指定服务的文件目录
- –with-http_ssl_module 启用支持https的支持
- –with-http_stub_status_module 支持查看nginx的状态页。
- –with-pcre 启动pcre库
为什么前面有的模块需要写上with
实际上--with开头的,默认是禁用这个选项的,既是还未开启,若想使用的时候,需要在编译的时候加上;当然还有--without开头的,默认是启用的模块,若不想启动此模块,可以在编译的时候加上这个参数。
若要查看更多模块,可以到官网文档中查看:
参考文档地址:http://nginx.org/en/docs/configure.html
2.4.4 修改Nginx配置文件
[root@localhost sbin]# find / -name nginx.conf
/root/nginx-1.22.1/conf/nginx.conf
/usr/local/nginx/conf/nginx.conf
[root@localhost sbin]# vim /usr/local/nginx/conf/nginx.conf43 location / {44 root html;45 index index.html index.htm;46 }47 location /status {48 stub_status on;49 access_log off;50 }
从第47行开始添加状态显示

如果不确定配置文件是否配置成功,可以使用-t参数验证一下,只要看到OK表示配置没问题
[root@localhost sbin]# ./nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
2.4.5 加载配置文件
重新加载配置文件,nginx可以做到平滑重启服务,感应不到web网页中断的情况
[root@localhost sbin]# ./nginx -s reload
重启之后在网页就能看到信息了,并且由于加上了status状态的组件,在网页上也能看到访问的流量情况。

IP/status可以看到网页流量状态

2.5 在docker上安装Nginx
2.5.1 下载docker源
[root@localhost ~]# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
[root@localhost ~]# yum install docker-ce -y
[root@localhost ~]# docker -v
Docker version 23.0.1, build a5ee5b1
2.5.2 安装镜像加速器
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://mr2x9gr3.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.5.3 拉取nginx程序
[root@localhost ~]# docker pull nginx:latest
latest: Pulling from library/nginx
a2abf6c4d29d: Pull complete
a9edb18cadd1: Pull complete
589b7251471a: Pull complete
186b1aaa4aa6: Pull complete
b4df32aa5a72: Pull complete
a0bcbecc962e: Pull complete
Digest: sha256:0d17b565c37bcbd895e9d92315a05c1c3c9a29f762b011a10c54a66cd53c9b31
Status: Downloaded newer image for nginx:latest
docker.io/library/nginx:latest#查看拉取的内容
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 605c77e624dd 14 months ago 141MB
2.5.4 启动Nginx容器
[root@localhost ~]# docker run --name=nginx-test -p 8080:80 -d nginx
28f0a6717d4921459b9bbe438c0ac464b6bff1a42808a5e7032035b3cff24675
#--name nginx-test:容器名称
#-p 8080:80 :端口进行映射,将本地8080端口映射到80
#-d nginx :设置容器在后台运行
使用IP加8080即可查看

总结
nginx安装部署相对来说也是比较简易的,编译过程会稍微有些难度,若觉得以上内容还行的,可以点赞支持一下!

相关文章:
部署安装Nginx服务实例
其他服务: 搭建zabbix4.0监控服务实例 普罗米修斯监控mysql数据库实战 Linux安装MySQL数据库步骤 一. Nginx概念介绍 1.介绍Nginx程序 Nginx (engine x) 是一款开源且高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。主要特点是占用…...
云原生架构设计原则及典型技术
云原生是面向云应用设计的一种思想理念,充分发挥云效能的最佳实践路径,帮助企业构建弹性可靠、松耦合、易管理可观测的应用系统,提升交付效率,降低运维复杂度。代表技术包括不可变基础设施、服务网格、声明式 API 及 Serverless 等…...
【Linux】-- 工具介绍 vim_gcc/g++_gdb
目录 Linux中的软件管理工具 – yum 在Linux下安装软件的方式 认识yum 查找软件包 安装 卸载 lrzsz.x86_64 rz sz Linux中的编辑器 – vim vim的基本概念 vim各模式切换 vim命令模式命令 vim底行模式命令 gcc / g gcc / g的作用 gcc / g语法 预处理 编译 汇…...
JAVA SE: IO流
一、Java流式输入输出原理Java对于输入输出是以流(Stream)的方式进行的,JDK提供各种各样的“流”类,以获取不同类型的数据。可以理解为将管道插入到文件中,然后从管道获取数据。这个管道外边还可以套管道,外边的管道对数据进行处理…...
打破原来软件开发模式的无代码开发平台
前言传统的系统开发是需要大量的时间和成本的,如今无代码开发平台的出现就改变了这种状况。那么你知道什么是无代码开发平台?无代码开发对企业来说有什么特殊的优势么?什么是无代码平台无代码平台指的是:使用者无需懂代码或手写代码,只需通…...
06-redux中的hook
知识点06-redux的hook 在函数组件中要和redux连接,分为两个步骤 前提状态机已经主备就绪 注入store到根组件 在函数组件中,使用Provider包裹根组件,并将store注入这一步,依旧是不能少的 import store from "./redux/store…...
watch监听不到数组对象的变化
watch监听不到数组对象的变化一、利用索引直接改变arr的值二、修改数组的长度arr.length三、添加和修改对象属性和值Vue不能监听到数组和对象值的变化其实和双向绑定的原理有关。Vue双向绑定原理是利用js中的Object.defineproperty重定义对象的GET和SET方法,而同时这…...
言语理解与表达之语句表达
考点一语句填空提问方式:填入划横线处最恰当的一句是( )1.横线在结尾:总结前文提出对策2.横线在开头:需概括文段的中心内容3.横线在中间:注意与上下文联系把握好主题词,保证文段话题一致实例1和…...
2023年全国最新食品安全管理员精选真题及答案14
百分百题库提供食品安全管理员考试试题、食品安全员考试预测题、食品安全管理员考试真题、食品安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 131.食品生产企业在一年内()次因违反《中华人民共…...
【MySQL】约束
文章目录1. 约束2. 非空约束 NOT NULL3. 唯一性约束 UNIQUE4. 主键约束 PRIMARY KEY5. 自增约束 AUTO_INCREMENT6. 外键约束FOREIGN KEY7. 默认值约束 DEFAULT8. 小结1. 约束 为了保证数据的完整性,SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面…...
C语言学习(三)
#include <stdio.h> int main(void){int a; scanf("%d",&a); printf("%d",a); return 0;} 正在上传…重新上传取消正在上传…重新上传取消&符号作用是把键盘中输入的值给变量a,使用scanf()时输入数值,需要按一下enter…...
TOUGH系列软件建模及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合
TOUGH2系列软件传统地下水模拟软件Feflow和Modflow不同,TOUGH2系列软件采用模块化设计和有限积分差网格剖分方法,通过配合不同EOS模块,软件可以处理各种复杂地质条件下,诸如地热能开发,非饱和带水气运移、油气运移&…...
k8s学习之路 | k8s 工作负载 ReplicaSet
文章目录1. ReplicaSet 基础概念1.1 RS 是什么?1.2 RS 工作原理1.3 什么时候使用 RS1.4 RS 示例1.5 非模板 Pod 的获得1.6 编写 RS1.7 使用 RS1.8 RS 替代方案2. ReplicaSet 与 ReplicationController2.1 关于 RS、RC2.2 两者的选择器区别2.3 总结1. ReplicaSet 基础…...
python实现半色调技术图像转换
半色调技术 半色调技术是一种将灰度图像转换为黑白图像的技术。它是通过将灰度图像的像素值映射到黑白像素值上来实现的。 比如说,在一块只能显示纯黑或纯白的屏幕上,如何将一张灰度图显示出灰度的效果,这时就可以用半色调技术实现。 如下…...
c++面试技巧-基础篇
1.面试官:简述C语言的优缺点。 应聘者:C语言的优缺点如下。 • C语言的优点:C语言既保留了C语言的有效性、灵活性、便于移植等全部精华和特点,又添加了面向对象编程的支持,具有强大的编程功能,可方便地构…...
三八妇女节即将到来,跨境电商如何玩转节日营销?
随着国际妇女节的到来,跨境电商商家们都开始了为自己的店铺进行节日营销的准备。商家做节日营销的目的都是一样的,无非都是增加曝光率,拉动客流,增加营业额。但是每一个节日营销的形式是可以不一样的。今年有什么营销玩法呢&#…...
【Java学习笔记】10.条件语句 - if...else及switch case 语句
前言 本章介绍Java的条件语句 - if…else和switch case 语句。 Java 条件语句 - if…else Java 中的条件语句允许程序根据条件的不同执行不同的代码块。 一个 if 语句包含一个布尔表达式和一条或多条语句。 语法 if 语句的语法如下: if(布尔表达式) {//如果布…...
解析STM32启动过程
相对于ARM上一代的主流ARM7/ARM9内核架构,新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后,CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动,即固定了复位后的起始地址为0x…...
微信小程序开发自学笔记 —— 八、小程序基础库的更新迭代
小程序基础库的更新迭代 小程序基础库 小程序的运行环境是分成渲染层和逻辑层的,在渲染层可以用各类组件组建界面的元素,在逻辑层可以用各类API来处理各种逻辑,组件、API其实都是小程序基础库进行包装提供的,基础库的职责还要处…...
Mysql迁移Postgresql
目录原理环境准备操作系统(Centos7)Mysql客户端安装Psql客户端安装数据库用户空字符串处理成null导表脚本dbmysql2pgmysqlcopy测试在mysql中建表导表测试查看pg中的表原理 Mysql抽取:mysql命令重定向到操作系统文件,处理成csv文件; PG装载&a…...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
TDengine 快速体验(Docker 镜像方式)
简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
图表类系列各种样式PPT模版分享
图标图表系列PPT模版,柱状图PPT模版,线状图PPT模版,折线图PPT模版,饼状图PPT模版,雷达图PPT模版,树状图PPT模版 图表类系列各种样式PPT模版分享:图表系列PPT模板https://pan.quark.cn/s/20d40aa…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
图解JavaScript原型:原型链及其分析 | JavaScript图解
忽略该图的细节(如内存地址值没有用二进制) 以下是对该图进一步的理解和总结 1. JS 对象概念的辨析 对象是什么:保存在堆中一块区域,同时在栈中有一块区域保存其在堆中的地址(也就是我们通常说的该变量指向谁&…...
中科院1区顶刊|IF14+:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点
中科院1区顶刊|IF14:多组学MR联合单细胞时空分析,锁定心血管代谢疾病的免疫治疗新靶点 当下,免疫与代谢性疾病的关联研究已成为生命科学领域的前沿热点。随着研究的深入,我们愈发清晰地认识到免疫系统与代谢系统之间存在着极为复…...
