部署安装Nginx服务实例

news2025/8/6 12:54:36

其他服务:

搭建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.conf
 43         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安装部署相对来说也是比较简易的,编译过程会稍微有些难度,若觉得以上内容还行的,可以点赞支持一下!
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ElasticSearch - 分布式文档索引、搜索、更新和删除文档的过程

文章目录1. 分布式文档存储1. 路由一个文档到一个分片中2. 主分片和副本分片如何交互3. 新建、索引和删除文档4. 取回一个文档5. 局部更新文档2. ElasticSearch相关问题1. 路由计算方式&#xff1f;2. 分片控制3. 分布式文档写入(索引)的过程&#xff1f;4. 分布式文档搜索的过…

自动化实战以及自动化性能测试

web自动化测试实战编写web自动化测试用例&#xff1b;创建自动化项目&#xff0c;根据用例来实现脚本无头模式使用selenium4自动化测试工具和junit5单元测试框架结合&#xff0c;如何实现的&#xff0c;以及有什么两点使用了junit5中提供的注解&#xff1b;避免生成过多的对象&…

轻量简单的团队协作工具有哪些?远程办公必备软件排行榜

前段时间的疫情不断反复&#xff0c;让不少企业和团队都开启了居家办公&#xff0c;无论是线上协作还是团队会议&#xff0c;都要使用大量的办公远程软件&#xff0c;因为突如其来的场景大转变&#xff0c;所以无形中也给大家增加了不少烦恼。 经历过了就有经验了&#xff0c;…

Docker安装Jenkins练习纪录一

Docker安装Jenkins练习记录参考博客准备资源centos7下载vmware下载jdk8下载Maven 下载FinalShell下载开始练习一些小问题参考博客 https://blog.csdn.net/lzc2644481789/article/details/124888223 https://blog.csdn.net/qq_52423918/article/details/125169577 准备资源 cen…

2023年天津体育学院专升本专业课考试考生考前防疫及入场须知

天津体育学院2023年高职升本科专业考试考生考前须知 一、防疫要求 1.考生要强化自我健康“第一责任人”的意识和责任&#xff0c;自觉履行考前每日健康监测义务。须于考前7天&#xff08;3月8日前&#xff09;下载《天津体育学院2023年高职升本科专业考试考生健康安全承诺书》&…

【微信小程序开发全流程】篇章0:基于JavaScript开发的校园综合类微信小程序的概览

基于JavaScript开发的校园综合类微信小程序的概览 本文仅供学习&#xff0c;未经同意请勿转载 一些说明&#xff1a;上述项目来源于笔者我本科大三阶段2019年电子设计课程项目&#xff0c;在这个项目中&#xff0c;我主要是负责的部分有前端&#xff0c;前后端的对接&#xf…

深入理解机器学习——偏差(Bias)与方差(Variance)

分类目录&#xff1a;《深入理解机器学习》总目录 偏差&#xff08;Bias&#xff09;与方差&#xff08;Variance&#xff09;是解释学习算法泛化性能的一种重要工具。偏差方差分解试图对学习算法的期望泛化错误率进行拆解&#xff0c;我们知道&#xff0c;算法在不同训练集上学…

兴达易控Modbus转Profinet网关连接1200Profinet转modbus接三菱A800变频器案例

下面介绍A800 变频器通过兴达易控modbus转profinet网关&#xff0c;使1200plc无需编程实现Profinet转modbus协议转换&#xff0c;把modbus变频器轻松组网 网络拓扑如下图 打开博图组态加载GSD文件&#xff0c;modbus转profinet网关从站接口接入到1200PLC上 配置modbus转profine…

【MyBatis】篇二.MyBatis查询与特殊SQL

文章目录1、MyBatis获取参数值case1-单个字面量类型的参数case2-多个字面量类型的参数case3-map集合类型的参数case4-实体类类型的参数case5-使用Param注解命名参数总结2、MyBatis的各种查询功能case1-查询结果是一个实体类对象case2-查询结果是一个List集合case3-查询单个数据…

杂记——16.idea中导入maven项目

这篇文章我们来讲一下如何从Gitee上拉取项目&#xff0c;并将该项目导入到idea中 目录 1.拉取项目 2.idea导入项目 3.更改相关的配置 3.1更改maven仓库 3.2更改数据库的连接池 1.拉取项目 第一步&#xff1a;找到相关的项目地址 如图所示&#xff0c;在Gitee上找到相关的…

FPGA时序约束(二)利用Quartus18对Altera进行时序约束

系列文章目录 FPGA时序约束&#xff08;一&#xff09;基本概念入门及简单语法 文章目录系列文章目录前言Quartus时序约束不进行时序约束的后果时序约束方法TimeQuest Timing Analyzer 工具来对工程添加约束。创建网表读取SDC文件创建时钟&#xff08;Create Clock&#xff09…

八股总结(三)操作系统内存管理、进程线程、进程同步与通信、中断与异常、常用命令

layout: post title: 八股总结&#xff08;三&#xff09;操作系统内存管理、进程线程、进程同步与通信、中断与异常、常用命令 description: 八股总结&#xff08;三&#xff09;操作系统内存管理、进程线程、进程同步与通信、中断与异常、常用命令 tag: 八股总结 文章目录操作…

基础SQL语法及使用案例

通用SQL语法 SQL语句可以单行或多行书写&#xff0c;以分号结尾。SQL语句可以使用空格/缩进来增强语句的可读性。MySOL数据库的SQL语句不区分大小写&#xff0c;关键字建议使用大写。注释&#xff1a; 单行注释&#xff1a;--注释内容 或 #注释内容(MySQL特有) 多行注释&#…

英伟达驱动爆雷?CPU占用率过高怎么办?

又有一新驱动导致CPU占用率过高&#xff1f; 上周英伟达发布531.18显卡驱动&#xff0c;为大家带来了视频超分辨率技术&#xff0c;并为新发布的热门游戏《原子之心》提供支持。 但在安装新驱动后没过不久就有玩家反映&#xff0c;在游戏结束后会出现CPU占用率突然飙升到10%以…

YOLOv5源码逐行超详细注释与解读(2)——推理部分detect.py

前言 前面简单介绍了YOLOv5的项目目录结构&#xff08;直通车&#xff1a;YOLOv5源码逐行超详细注释与解读&#xff08;1&#xff09;——项目目录结构解析&#xff09;&#xff0c;对项目整体有了大致了解。 今天要学习的是detect.py。通常这个文件是用来预测一张图片或者一…

TCL 拥抱云原生,实现 IT 成本治理优化

作者&#xff1a;行疾 TCL 工程师团队基于阿里云企业云原生 IT 成本治理方案沉淀了一套成熟的 IT 企业成本治理流程与系统&#xff0c;通过阿里云容器服务提供的开箱即用的成本洞察、资源智能画像等功能&#xff0c;进行业务成本拆分、闲置资源可视化发现&#xff0c;并制定弹性…

【开源库学习】从OkHttp到Retrofit(其二 Retrofit)

从OkHttp到Retrofit简单使用实现原理loadServiceMethodConverter简单使用 class RetrofitActivity : AppCompatActivity() {companion object {const val SERVER "https://www.xxx.com/"}var disposable:Disposable? null;override fun onCreate(savedInstanceSt…

Lesson 8.2 CART 分类树的建模流程与 sklearn 评估器参数详解

文章目录一、CART 决策树的分类流程1. CART 树的基本生长过程1.1 规则评估指标选取与设置1.2 决策树备选规则创建方法1.3 挑选最佳分类规则划分数据集1.4 决策树的生长过程2. CART 树的剪枝二、CART 分类树的 Scikit-Learn 快速实现方法与评估器参数详解1. CART 分类树的 sklea…

Linux线程概念

重新认识一下进程 在之前写过的与进程相关的博文中&#xff0c;都把进程看作是只有一个PCB的进程。如图&#xff1a; 而实际上&#xff0c;在Linux中&#xff0c;进程不止一个执行流&#xff0c;而是可能会有几个或很多个。同一个进程中&#xff0c;每一个执行流都指向同一个虚…

【C语言】3天速刷C语言(初识)

【声明】本篇博客只用于对与刚学习C语言的同学的一个初始了解&#xff0c;具体内容请继续关注本专栏后续内容。什么是C语言C语言是一门通用计算机编程语言&#xff0c;广泛应用于底层开发。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及…