当前位置: 首页 > news >正文

部署安装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服务实例

其他服务&#xff1a; 搭建zabbix4.0监控服务实例 普罗米修斯监控mysql数据库实战 Linux安装MySQL数据库步骤 一. Nginx概念介绍 1.介绍Nginx程序 Nginx (engine x) 是一款开源且高性能的HTTP和反向代理web服务器&#xff0c;同时也提供了IMAP/POP3/SMTP服务。主要特点是占用…...

云原生架构设计原则及典型技术

云原生是面向云应用设计的一种思想理念&#xff0c;充分发挥云效能的最佳实践路径&#xff0c;帮助企业构建弹性可靠、松耦合、易管理可观测的应用系统&#xff0c;提升交付效率&#xff0c;降低运维复杂度。代表技术包括不可变基础设施、服务网格、声明式 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)的方式进行的&#xff0c;JDK提供各种各样的“流”类&#xff0c;以获取不同类型的数据。可以理解为将管道插入到文件中&#xff0c;然后从管道获取数据。这个管道外边还可以套管道&#xff0c;外边的管道对数据进行处理…...

打破原来软件开发模式的无代码开发平台

前言传统的系统开发是需要大量的时间和成本的&#xff0c;如今无代码开发平台的出现就改变了这种状况。那么你知道什么是无代码开发平台?无代码开发对企业来说有什么特殊的优势么?什么是无代码平台无代码平台指的是&#xff1a;使用者无需懂代码或手写代码&#xff0c;只需通…...

06-redux中的hook

知识点06-redux的hook 在函数组件中要和redux连接&#xff0c;分为两个步骤 前提状态机已经主备就绪 注入store到根组件 在函数组件中&#xff0c;使用Provider包裹根组件&#xff0c;并将store注入这一步&#xff0c;依旧是不能少的 import store from "./redux/store…...

watch监听不到数组对象的变化

watch监听不到数组对象的变化一、利用索引直接改变arr的值二、修改数组的长度arr.length三、添加和修改对象属性和值Vue不能监听到数组和对象值的变化其实和双向绑定的原理有关。Vue双向绑定原理是利用js中的Object.defineproperty重定义对象的GET和SET方法&#xff0c;而同时这…...

言语理解与表达之语句表达

考点一语句填空提问方式&#xff1a;填入划横线处最恰当的一句是&#xff08; &#xff09;1.横线在结尾&#xff1a;总结前文提出对策2.横线在开头&#xff1a;需概括文段的中心内容3.横线在中间&#xff1a;注意与上下文联系把握好主题词&#xff0c;保证文段话题一致实例1和…...

2023年全国最新食品安全管理员精选真题及答案14

百分百题库提供食品安全管理员考试试题、食品安全员考试预测题、食品安全管理员考试真题、食品安全员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 131.食品生产企业在一年内&#xff08;&#xff09;次因违反《中华人民共…...

【MySQL】约束

文章目录1. 约束2. 非空约束 NOT NULL3. 唯一性约束 UNIQUE4. 主键约束 PRIMARY KEY5. 自增约束 AUTO_INCREMENT6. 外键约束FOREIGN KEY7. 默认值约束 DEFAULT8. 小结1. 约束 为了保证数据的完整性&#xff0c;SQL规范以约束的方式对表数据进行额外的条件限制。从以下四个方面…...

C语言学习(三)

#include <stdio.h> int main(void){int a; scanf("%d",&a); printf("%d",a); return 0&#xff1b;} 正在上传…重新上传取消正在上传…重新上传取消&符号作用是把键盘中输入的值给变量a,使用scanf()时输入数值&#xff0c;需要按一下enter…...

TOUGH系列软件建模及在地下水、CO2地质封存、水文地球化学、地热等多相多组分系统多过程耦合

TOUGH2系列软件传统地下水模拟软件Feflow和Modflow不同&#xff0c;TOUGH2系列软件采用模块化设计和有限积分差网格剖分方法&#xff0c;通过配合不同EOS模块&#xff0c;软件可以处理各种复杂地质条件下&#xff0c;诸如地热能开发&#xff0c;非饱和带水气运移、油气运移&…...

k8s学习之路 | k8s 工作负载 ReplicaSet

文章目录1. ReplicaSet 基础概念1.1 RS 是什么&#xff1f;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实现半色调技术图像转换

半色调技术 半色调技术是一种将灰度图像转换为黑白图像的技术。它是通过将灰度图像的像素值映射到黑白像素值上来实现的。 比如说&#xff0c;在一块只能显示纯黑或纯白的屏幕上&#xff0c;如何将一张灰度图显示出灰度的效果&#xff0c;这时就可以用半色调技术实现。 如下…...

c++面试技巧-基础篇

1.面试官&#xff1a;简述C语言的优缺点。 应聘者&#xff1a;C语言的优缺点如下。 • C语言的优点&#xff1a;C语言既保留了C语言的有效性、灵活性、便于移植等全部精华和特点&#xff0c;又添加了面向对象编程的支持&#xff0c;具有强大的编程功能&#xff0c;可方便地构…...

三八妇女节即将到来,跨境电商如何玩转节日营销?

随着国际妇女节的到来&#xff0c;跨境电商商家们都开始了为自己的店铺进行节日营销的准备。商家做节日营销的目的都是一样的&#xff0c;无非都是增加曝光率&#xff0c;拉动客流&#xff0c;增加营业额。但是每一个节日营销的形式是可以不一样的。今年有什么营销玩法呢&#…...

【Java学习笔记】10.条件语句 - if...else及switch case 语句

前言 本章介绍Java的条件语句 - if…else和switch case 语句。 Java 条件语句 - if…else Java 中的条件语句允许程序根据条件的不同执行不同的代码块。 一个 if 语句包含一个布尔表达式和一条或多条语句。 语法 if 语句的语法如下&#xff1a; if(布尔表达式) {//如果布…...

解析STM32启动过程

相对于ARM上一代的主流ARM7/ARM9内核架构&#xff0c;新一代Cortex内核架构的启动方式有了比较大的变化。ARM7/ARM9内核的控制器在复位后&#xff0c;CPU会从存储空间的绝对地址0x000000取出第一条指令执行复位中断服务程序的方式启动&#xff0c;即固定了复位后的起始地址为0x…...

微信小程序开发自学笔记 —— 八、小程序基础库的更新迭代

小程序基础库的更新迭代 小程序基础库 小程序的运行环境是分成渲染层和逻辑层的&#xff0c;在渲染层可以用各类组件组建界面的元素&#xff0c;在逻辑层可以用各类API来处理各种逻辑&#xff0c;组件、API其实都是小程序基础库进行包装提供的&#xff0c;基础库的职责还要处…...

Mysql迁移Postgresql

目录原理环境准备操作系统(Centos7)Mysql客户端安装Psql客户端安装数据库用户空字符串处理成null导表脚本dbmysql2pgmysqlcopy测试在mysql中建表导表测试查看pg中的表原理 Mysql抽取&#xff1a;mysql命令重定向到操作系统文件&#xff0c;处理成csv文件&#xff1b; PG装载&a…...

关于信息安全认证CISP、PTE对比分析

CISP 注册信息安全专业人员 CISP-PTE 注册渗透测试工程师&#xff08;以下简称PTE&#xff09; 1 、发证机构 CISP与PTE的发证机构都是中国信息安全测评中心&#xff0c;政府背景给认证做背书&#xff0c;学员信息都在中国政府可控的机构手中&#xff1b; 如果想在政府、国…...

游戏场景编辑器和骨骼动画相关软件

游戏场景编辑器 一.Tiled(2D) Tiled 是帮助你开发游戏内容的 2D 地图编辑器。它的主要功能是可以编辑各种形式的瓦片地图&#xff0c;还支持通过用空图片这种强大的方式来标记额外信息给游戏使用。Tiled 关注的是总体灵活性&#xff0c;同时尽量保持直观性。 Tiled Map 不但…...

vue3常用的API

目录 1.ref函数 2.reactive函数 3.reactive对比ref 4.computed函数 5.watch函数 6.toRef 7..provide && inject 1.ref函数 作用: 定义一个响应式的数据 语法: const xxx ref(initValue) 创建一个包含响应式数据的引用对象&#xff08;reference对象&#xff…...

Qt中使用

LIB库路径&#xff0c;include 头文件&#xff0c;运行的时候记得吧dll库带上&#xff0c;这基本就完成了。准备工作&#xff1a;Qt可以是傻瓜式的安装就行&#xff0c;GE的驱动里面有exe&#xff0c;直接点击安装即可&#xff0c;完了记得到安装路径把“.h”“.liib”和“.dll…...

controller-runtime搭建operator开发环境

目录 基本结构 注入CRD 基本结构 首先下载相应的go pkg go get -u sigs.k8s.io/controller-runtime 接下来需要创建控制器和Manager Operator的本质是一个可重入的队列编程模式&#xff0c;而Manager可以用来管理Controller、Admission Webhook&#xff0c;包括访问资源对…...

FPGA使用GTX实现SFP光纤收发SDI视频 全网首创略显高端 提供工程源码和技术支持

目录1、前言2、设计思路和框架3、vivado工程详解4、上板调试验证并演示5、福利&#xff1a;工程代码的获取1、前言 FPGA实现SDI视频编解码目前有两种方案&#xff1a; 一是使用专用编解码芯片&#xff0c;比如典型的接收器GS2971&#xff0c;发送器GS2972&#xff0c;优点是简…...

Django 之 CharField 和 TextField

CharField test_char models.CharField(max_length288)设置长度为 288 并不会报错&#xff0c;这取决于你的数据库后端&#xff0c;mysql char 类型长度为 255&#xff0c;django 里面设置超过 255 并不会有提示&#xff0c;个人感觉有点误导人&#xff0c;起码给个警告也行&…...

recyclerview 使用的坑

1.有不同的布局 12_GridLayoutManager setSpanSizeLookup()方法 - 简书 setSpanSizeLookup 这个方法要会 spanCount和 getSpanSize spanCount/getSpanSize() 才是这一项所占的宽度 2.均分 item布局要设置宽度为match_paraent 3.设置完了。发现高度不一样&#xff0c;…...

DBeaver连接mysql、oracle数据库

1. DBeaver连接mysql 1&#xff09; 下载DBeaver https://dbeaver.io/download/&#xff0c;并安装 2) 新建数据库连接 3&#xff09;选择mysql驱动程序 4&#xff09;填写连接设置内容 5&#xff09;点击 “编辑驱动设置”&#xff0c;并填写相关信息 6&#xff09;选择本地…...

Kivy GridLayout 布局

Kivy GridLayout 是一种用于构建用户界面的布局类型&#xff0c;可以帮助我们快速创建具有固定列和行的网格布局。GridLayout 布局是可以适用于任意数量的行和列的布局&#xff0c;然后在这些行和列中放置 UI 元素。 Kivy 的 GridLayout 使用起来类似于 HTML 的表格&#xff0c…...

wordpress首页只能是page/关键词指数查询

别人文章参考&#xff1a;https://blog.csdn.net/kkevinyang/article/details/80539940 第三类错误&#xff1a;supervisord进程被占用的错误 查询进程&#xff0c;kill掉在重启 ps -ef | grep supervisord 报错信息&#xff1a; Exited too quickly (process log may have…...

岳阳整站优化/关键词搜索推广

UINavigationController详解 通过这个接口可以初始化自定义的工具栏和导航栏 - (instancetype)initWithNavigationBarClass:(Class)navigationBarClass toolbarClass:(Class)toolbarClass NS_AVAILABLE_IOS(5_0) 使用水平滑动过渡。如果视图控制器已在堆栈中在调用就没有效果 -…...

罗定建设局网站/最新做做网站

文章目录使styled-component 像SPA中使用step1 安装插件step2 根目录下创建 .babelrcstep3 创建page/_document.js自定义 Document参考 特别感谢[应用主题] 需完成上一步使styled-component 像SPA中使用 step1 安装插件 yarn add babel-plugin-styled-componentsstep2 根目录…...

做设计那个素材网站最好/企业seo关键字优化

1&#xff0c;git安装完之后&#xff0c;打开git bash 命令行&#xff0c;执行以下命令&#xff1a; ssh-keygen -t rsa 然后按三下默认回车 2.执行查看公钥的命令&#xff1a; cat ~/.ssh/id_rsa.pub 3.最后把公钥复制放在阿里云的增加公钥里面 在本地仓库执行初始化&am…...

乌鲁木齐人才网/搜索引擎优化的技巧

计算机操作系统期末考试题目及答案(选择题)答案绝对正确广药师姐一、单项选择题(本大题共20小题&#xff0c;每小题2分&#xff0c;共40分)。1位示图方法可用于()A、盘空间的管理B盘的驱动调度C、文件目录的查找D页式虚拟存贮管理中的页面调度凡是有盘空间三个字就选2.下列关于…...

做百度竞价用什么网站/万州网站建设

思路&#xff1a;因为数据范围较大相乘会爆ull所以加上快速乘 #include <cstdio> #include <cstring> #include <algorithm> #include <set> #include<bits/stdc.h> using namespace std; typedef long long ll; #define space putchar( ) #def…...