Nginx02-安装

零、文章目录

Nginx02-安装

1、Nginx官网

  • Nginx官网地址:http://nginx.org/

image-20240923120144794

2、Nginx下载

(1)Nginx下载
  • 下载页地址:http://nginx.org/en/download.html

image-20240923120700198

(2)更老版本下载
  • 下载页地址:http://nginx.org/download/

image-20240923155702928

3、Windows下安装

(1)下载最新稳定版解压如下

image-20240925114653854

image-20240923122912523
(2)两种启动nginx的方法
  • 直接双击nginx.exe,双击后一个黑色的弹窗一闪而过
  • 打开cmd命令窗口,切换到nginx解压目录下,输入命令nginx.exe,回车即可
(3)检查nginx是否启动成功
  • 直接在浏览器地址栏输入网址 http://localhost:80 回车,出现以下页面说明启动成功!

image-20240923123345136

(4)修改nginx配置监听
  • nginx的配置文件是conf目录下的nginx.conf,默认配置的nginx监听的端口为80,如果80端口被占用可以修改为未被占用的端口即可。
  • 当我们修改了nginx的配置文件nginx.conf 时,不需要关闭nginx后重新启动nginx,只需要执行命令 nginx -s reload 即可让改动生效。

image-20240923142129626

(5)三种关闭nginx方法
## 快速停止nginx
nginx -s stop## 完整有序的停止nginx
nginx -s quit## 使用taskkill
taskkill是用来终止进程的,
/f是强制终止 .
/t终止指定的进程和任何由此启动的子进程。
/im示指定的进程名称
taskkill /f /t /im nginx.exe

4、linux环境准备

(1)准备服务器环境
  • 虚拟机:VMware WorkStation,安装教程参考VMware Workstation Pro详解
  • Linux 系统:Centos7.9
  • 上传软件工具:FinalShell
  • 网络:NAT 192.168.119.161
(2)确认CentOS的内核
  • 准备一个内核为 2.6 及以上版本的操作系统,因为 linux2.6 及以上内核才支持 epoll,而 Nginx 需要解决高并发压力问题是需要用到 epoll,所以我们需要有这样的版本要求。
  • 我们可以使用 uname -a 命令来查询linux的内核版本
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
(3)确保CentOS能联网
  • 虚拟机设定NAT网络,参考VMware Workstation Pro详解
[root@localhost ~]# ping www.baidu.com
PING www.a.shifen.com (183.2.172.42) 56(84) bytes of data.
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=1 ttl=128 time=35.1 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=2 ttl=128 time=34.4 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=3 ttl=128 time=31.0 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=4 ttl=128 time=31.2 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=5 ttl=128 time=34.9 ms
64 bytes from 183.2.172.42 (183.2.172.42): icmp_seq=6 ttl=128 time=30.5 ms
...
(4)确认关闭防火墙
  • 这一项的要求仅针对于那些对 Linux 系统的防火墙设置规则不太清楚的,建议大家把防火墙都关闭掉,因为把防火墙关闭掉,可以省掉后续 Nginx 使用过程中遇到的诸多问题。
systemctl stop firewalld      # 关闭运行的防火墙,系统重新启动后,防火墙将重新打开
systemctl disable firewalld   # 永久关闭防火墙,系统重新启动后,防火墙依然关闭
systemctl status firewalld	  # 查看防火墙状态
(5)确认停用selinux
  • selinux(security-enhanced linux),美国安全局对于强制访问控制的实现,在 Linux2.6 内核以后的版本中,selinux 已经成功内核中的一部分。可以说selinux 是 Linux 史上最杰出的新安全子系统之一。虽然有了 selinux,我们的系统会更安全,但是对于使用 Nginx 或者其他的学习过程中,会有很多设置,所以这块建议大家将 selinux 进行关闭。
  • 修改配置文件/etc/selinux/config来进行设置,修改 SELINUX=disabled,然后重启下系统即可生效。

image-20240923221029551

  • 关闭之后,使用sestatus查看是否关闭成功
[root@localhost ~]# sestatus
SELinux status:                 disabled

5、Linux下Nginx安装环境配置

(1)更换YUM源
  • 默认的源是国外的,网速较慢,经常会连不上,更换为国内镜像源
# 备份原有的 Yum 源配置文件
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup# 下载新的 Yum 源配置文件,你可以选择使用阿里云、网易、腾讯云等国内镜像源。以下是使用阿里云作为例子的命令
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo# 清理YUM缓存并重建缓存
sudo yum clean all
sudo yum makecache
(2)GCC
  • Nginx 是使用 C 语言编写的程序,因此想要运行 Nginx 就需要安装一个编译工具。GCC 就是一个开源的编译器集合,用于处理各种各样的语言,其中就包含了 C 语言。
# 安装 gcc
yum install -y gcc# 查看 gcc 版本
gcc --version
(3)PCRE
  • Nginx 在编译过程中需要使用到 PCRE 库(perl Compatible Regular Expressoin 兼容正则表达式库),因为在 Nginx 的 Rewrite 模块和 Http 核心模块都会使用到 PCRE 正则表达式语法。
# 安装 PCRE 和 pcre-devel
yum install -y pcre pcre-devel# 查看 PCRE 是否安装成功
rpm -qa pcre pcre-devel
(4)zlib
  • zlib 库提供了开发人员的压缩算法,在 Nginx 的各个模块中需要使用 gzip 压缩,所以我们也需要提前安装其库及源代码 zlib 和 zlib-devel。
# 安装 zlib 和 zlib-devel
yum install -y zlib zlib-devel# 查看 zlib 和 zlib-devel 是否安装成功
rpm -qa zlib zlib-devel
(5)OpenSSL
  • OpenSSL 是一个开放源代码的软件库包,应用程序可以使用这个包进行安全通信,并且避免被窃听。
  • SSL:Secure Sockets Layer 安全套接协议的缩写,可以在 Internet 上提供秘密性传输,其目标是保证两个应用间通信的保密性和可靠性。在 Nginx 中,如果服务器需要提供安全网页时就需要用到 OpenSSL 库,所以我们需要对 OpenSSL 的库文件及它的开发安装包进行一个安装。
# 安装 OpenSSL 库
yum install -y openssl openssl-devel# 查看 OpenSSL 是否安装成功
rpm -qa openssl openssl-devel
(6)全部软件一键安装
  • 上述命令,一个个来的话比较麻烦,我们也可以通过一条命令来进行安装
# 全部安装 GCC、PCRE、zlib、OpenSSL
yum install -y gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel# 查看安装版本
rpm -qa pcre pcre-devel zlib zlib-devel openssl openssl-devel

6、Linux下Nginx安装

(1)源码简单安装
  • /opt目录下创建 nginx/core 目录,-p 代表允许创建多级目录,进入官网获取最新版本地址链接,然后使用 wget 命令进行下载,如果 wget 命令下载速度慢,可以先下载到 Windows 系统,再使用工具上传到 Linux 下。

image-20240925114736553

# 创建指定目录
mkdir -p /opt/nginx/core# 切换到目录
cd /opt/nginx/core# 下载nginx
wget http://nginx.org/download/nginx-1.26.2.tar.gz# 解压
tar -xzf nginx-1.26.2.tar.gz
  • 配置编译安装
# 进入解压出的目录
cd nginx-1.26.2/# 配置安装的路径
./configure --prefix=/usr/local/nginx# 编译安装
make && make install
  • 启动测试,访问服务器的IP地址http://192.168.119.161/
# 执行 nginx 文件
/usr/local/nginx/sbin/nginx

image-20240924194806131

(2)源码简单安装卸载
  • 将 Nginx 的进程关闭
/usr/local/nginx/sbin/nginx -s stop
  • 将安装的 Nginx 进行删除
rm -rf /usr/local/nginx
  • 删除解压的安装文件
rm -rf /opt/nginx
(3)yum安装
  • 安装 yum-utils
sudo yum  install -y yum-utils
  • 添加 yum 源文件
vim /etc/yum.repos.d/nginx.repo
  • 添加如下内容
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
  • 使用 yum 安装 Nginx
sudo yum install -y nginx
  • 查看是否安装成功
[root@localhost nginx-1.26.2]# yum list | grep nginx
nginx.x86_64                             1:1.26.1-2.el7.ngx            @nginx-stable
nginx-debug.x86_64                       1:1.8.0-1.el7.ngx             nginx-stable
nginx-debuginfo.x86_64                   1:1.26.1-2.el7.ngx            nginx-stable
nginx-module-geoip.x86_64                1:1.26.1-2.el7.ngx            nginx-stable
nginx-module-geoip-debuginfo.x86_64      1:1.26.1-2.el7.ngx            nginx-stable
nginx-module-image-filter.x86_64         1:1.26.1-2.el7.ngx            nginx-stable
nginx-module-image-filter-debuginfo.x86_641:1.26.1-2.el7.ngx            nginx-stable
nginx-module-njs.x86_64                  1:1.26.1+0.8.5-2.el7.ngx      nginx-stable
nginx-module-njs-debuginfo.x86_64        1:1.26.1+0.8.5-2.el7.ngx      nginx-stable
nginx-module-perl.x86_64                 1:1.26.1-2.el7.ngx            nginx-stable
nginx-module-perl-debuginfo.x86_64       1:1.26.1-2.el7.ngx            nginx-stable
nginx-module-xslt.x86_64                 1:1.26.1-2.el7.ngx            nginx-stable
nginx-module-xslt-debuginfo.x86_64       1:1.26.1-2.el7.ngx            nginx-stable
nginx-nr-agent.noarch                    2.0.0-12.el7.ngx              nginx-stable
pcp-pmda-nginx.x86_64                    4.3.2-13.el7_9                updates
  • 查看nginx的安装位置
[root@localhost ~]# whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz
  • 启动测试,访问服务器的IP地址http://192.168.119.161/
/usr/sbin/nginx

image-20240924204356066

  • 简单安装VSyum安装:yum安装会默认设设定一大堆参数,大部分是不需要贴别修改的,所以yum安装更简单。
(4)yum安装卸载
  • 将 Nginx 的进程关闭
/usr/sbin/nginx -s stop
  • yum移除nginx
yum remove nginx
(5)源码复杂安装
  • /opt目录下创建 nginx/core 目录,-p 代表允许创建多级目录,进入官网获取最新版本地址链接,然后使用 wget 命令进行下载,如果 wget 命令下载速度慢,可以先下载到 Windows 系统,再使用工具上传到 Linux 下。
# 创建指定目录
mkdir -p /opt/nginx/core# 切换到目录
cd /opt/nginx/core# 下载nginx
wget http://nginx.org/download/nginx-1.26.2.tar.gz# 解压
tar -xzf nginx-1.26.2.tar.gz
  • 配置编译安装
# 进入解压出的目录
cd nginx-1.26.2/# 配置安装的路径
./configure --prefix=/usr/local/nginx \
--sbin-path=/usr/local/nginx/sbin/nginx \
--modules-path=/usr/local/nginx/modules \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--error-log-path=/usr/local/nginx/logs/error.log \
--http-log-path=/usr/local/nginx/logs/access.log \
--pid-path=/usr/local/nginx/logs/nginx.pid \
--lock-path=/usr/local/nginx/logs/nginx.lock# 编译安装
make && make install
  • 启动测试,访问服务器的IP地址http://192.168.119.161/
# 执行 nginx 文件
/usr/local/nginx/sbin/nginx

image-20240924214214310

  • 简答安装VS复杂安装:差异主要是/configure参数不同,说明如下
指令作用默认值
–prefix=PATH指向 Nginx 的安装目录/usr/local/nginx
–sbin-path=PATH指向(执行)程序文件(nginx)的路径<安装目录>/sbin/nginx
–modules-path=PATH指向 Nginx 动态模块安装目录<安装目录>//modules
–conf-path=PATH指向配置文件(nginx.conf)的路径<安装目录>/conf/nginx.conf
–error-log-path=PATH指向错误日志文件的路径<安装目录>/logs/error.log
–http-log-path=PATH指向访问日志文件的路径<安装目录>/logs/access.log
–pid-path=PATH指向 Nginx 启动后进行ID的文件路径<安装目录>/logs/nginx.pid
–lock-path=PATH指向 Nginx 锁文件的存放路径<安装目录>/logs/nginx.lock
(6)源码复杂安装卸载
  • 将 Nginx 的进程关闭
/usr/local/nginx/sbin/nginx -s stop
  • 将安装的 Nginx 进行删除
rm -rf /usr/local/nginx
  • 删除解压的安装文件
rm -rf /opt/nginx

7、Nginx目录结构

(1)安装tree
yum install -y tree
(2)目录结构
  • CGI(Common Gateway Interface):通用网关【接口】,主要解决的问题是从客户端发送一个请求和数据,服务端获取到请求和数据后可以调用CGI【程序】处理及相应结果给客户端的。
  • fastcgi scgi uwsgi等是一些速度比较快的协议
[root@localhost nginx-1.26.2]# tree /usr/local/nginx
/usr/local/nginx
├── client_body_temp
├── conf
│   ├── fastcgi.conf
│   ├── fastcgi.conf.default
│   ├── fastcgi_params
│   ├── fastcgi_params.default
│   ├── koi-utf
│   ├── koi-win
│   ├── mime.types
│   ├── mime.types.default
│   ├── nginx.conf
│   ├── nginx.conf.default
│   ├── scgi_params
│   ├── scgi_params.default
│   ├── uwsgi_params
│   ├── uwsgi_params.default
│   └── win-utf
├── fastcgi_temp
├── html
│   ├── 50x.html
│   └── index.html
├── logs
│   ├── access.log
│   ├── error.log
│   └── nginx.pid
├── proxy_temp
├── sbin
│   └── nginx
├── scgi_temp
└── uwsgi_temp9 directories, 21 files
(3)核心文件
  • nginx 二进制可执行文件(启动、关闭、加载 Nginx)
  • nginx.conf 配置文件
  • error.log 错误的日志记录
  • access.log 访问日志记录
(4)文件说明
  • client_body_temp:存放客户端请求体的临时文件。
  • conf:存放Nginx的配置文件。
    • fastcgi.conffastcgi.conf.default:FastCGI 配置文件及其默认配置。
    • fastcgi_paramsfastcgi_params.default:FastCGI 参数文件及其默认配置。
    • koi-utfkoi-win:字符编码转换文件。
    • mime.typesmime.types.default:定义MIME类型的文件及其默认配置。
    • nginx.confnginx.conf.default:Nginx 主配置文件及其默认配置。
    • scgi_paramsscgi_params.default:SCGI 参数文件及其默认配置。
    • uwsgi_paramsuwsgi_params.default:uWSGI 参数文件及其默认配置。
    • win-utf:Windows 平台的字符编码转换文件。
  • fastcgi_temp:存放FastCGI的临时文件。
  • html:存放静态网页文件。
    • 50x.html:错误页面,通常用于显示服务器内部错误。
    • index.html:默认首页。
  • logs:存放Nginx的日志文件。
    • access.log:访问日志。
    • error.log:错误日志。
    • nginx.pid:Nginx 主进程的PID文件。
  • proxy_temp:存放代理请求的临时文件。
  • sbin:存放Nginx的可执行文件。
    • nginx:Nginx 的主可执行文件。
  • scgi_temp:存放SCGI的临时文件。
  • uwsgi_temp:存放uWSGI的临时文件。

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

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

相关文章

模型漫谈:图神经网络(GNN)是什么样的存在

文章大纲&#xff1a; 从生活中的例子谈图与图神经网络 什么是图神经网络&#xff1f;它如何起源&#xff1f; 图神经网络的基本原理和原则 图神经网络的应用方向&#xff1a;以环境科学为例 公众号推荐 在现代科技迅速发展的今天&#xff0c;许多看似复杂的概念其实都有…

【GitHub】上传文件到GitHub

参考视频&#xff1a;手把手教你在github上传文件_哔哩哔哩_bilibili 1.找到文件夹右键&#xff0c;选择open git bash here 2.完成指令 git initgit add *git commit -m "first commit"3.打开该文件夹&#xff0c;打开隐藏文件.git/config 编辑输入邮箱和GitHub用…

python全栈学习记录(二十三)反射、内置方法、类相关的函数、元类

反射、内置方法、类相关的函数、元类 文章目录 反射、内置方法、类相关的函数、元类一、反射二、内置方法1.__str__2.__repr__3.__del__4.__getattr__5.__setattr__ 三、类相关的函数四、元类1.python中类的产生过程2.元类控制类的产生 一、反射 反射的意思是通过字符串来操作…

大模型应用探讨,免费AI写作、一键PPT、免费PDF百种应用、与AI对话

大模型应用平台知识普及, 应用可见评论区 我们生活在一个充满无限可能的数字时代&#xff0c;人工智能技术正在推动着各种创新的边界。大模型应用平台一般包含以下功能。 ## 1. 一键生成论文 写作是学生、研究人员和职场人士都无法避免的任务。大模型应用平台拥有强大的文本生…

Lesson3 - 操作系统软件视角和系统调用

文章目录 硬件支持系统 系统管理硬件异步行为中断的分类 同步行为虚拟地址空间shell系统调用与软中断区分系统调用trace 命令 硬件支持系统 系统管理硬件 计算机硬件由三样东西组成&#xff1a;CPU、内存、I/O设备。为了更有效地管理这些硬件资源&#xff0c;系统设计者引入了…

使用bert模型进行命名实体识别任务

一、实验内容 本实验使用预训练的 BERT 模型进行命名实体识别&#xff08;NER&#xff09;任务&#xff0c;并且使用 Hugging Face 的 Transformers 库完成模型的训练、验证和测试。最后&#xff0c;使用测试集评估模型性能&#xff0c;计算NER指标。 二、算法介绍 Bert是一种…

Observability:使用 OpenTelemetry 自动检测 Go 应用程序

作者&#xff1a;来自 Elastic Damien Mathieu 使用 OpenTelemetry 检测 Go 应用程序可以深入了解应用程序的性能、依赖项和错误。我们将向你展示如何使用 Docker 自动检测 Go 应用程序&#xff0c;而无需更改应用程序代码。 在快节奏的软件开发领域&#xff0c;尤其是在云原生…

分治算法(3)_快速选择_数组中的第K个最大元素

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 分治算法(3)_快速排序_数组中的第K个最大元素 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#…

【原创】Anaconda+VScode+PySide6 完美配置Python开发环境,亲测!

准备工作 下载安装 Anaconda 下载安装Visual Studio Code 配置系统环境变量 配置Anaconda环境变量 将Anaconda安装目录及Scripts 、Library\bin 两个子目录添加到用户变量或系统变量的Path变量中。 Anaconda自带最新版Python&#xff0c;如果已经安装Python&#xff0c;建议…

Mybatis测试案例

1.创建springboot工程 创建实体类user和接口 user类 注意&#xff1a;java和mysql的对象的属性数据类型要一致 mapper接口 2.配置mybatis(连接数据库信息) # spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver #地址url spring.datasource.urljdbc:mysql://localho…

【Python】Mistune:高效的 Python Markdown 解析器

Mistune 是一个轻量且强大的 Python Markdown 解析器。它的设计目标是兼顾速度和扩展性&#xff0c;同时兼容 CommonMark 标准。Mistune 支持多种渲染器&#xff08;Renderers&#xff09;和插件&#xff0c;能够根据需求将 Markdown 转换为 HTML、LaTeX 或自定义格式。此外&am…

Java中数组的应用

Java中数组的应用 数组数组的使用使用方式1-动态初始化数组的定义&#xff1a;数组的引用&#xff08;使用/访问/获取数组元素&#xff09;&#xff1a;快速入门案例 使用方式2-动态初始化**先声明**数组**再创建**数组使用方式1和2的比较 使用方式3-静态初始化初始化数组快速入…

[嵌入式Linux]—STM32MP1启动流程

STM32MP1启动流程 1.启动模式 STM32MP1等SOC支持从多种设备中启动&#xff0c;如EMMC、SD、NAND、NOR、USB、UART等。其中USB、UART是作为烧录进行启动的。 STM32MP1内部ROM中存储有一段出厂代码来进行判断从哪种设备中启动&#xff0c;上电后这段代码会被执行&#xff0c;这…

CPU中的寄存器是什么以及它的工作原理是什么?

在计算机科学中&#xff0c;寄存器是数字设备中的一个重要组成部分&#xff0c;它用于存储数据和指令以快速处理。寄存器充当临时存储区&#xff0c;信息可以在这里被快速访问和操作&#xff0c;以执行复杂任务。寄存器是计算机中最基础的存储类型&#xff0c;它们在帮助机器高…

【Unity】版本不一致且未升级资产,导致 Unity Sprite 2D 动画播放错误

自己的 Unity版本是 2022.3.45f1。目前折腾的这插件 2D Action RPG Engine: Mythril2D &#xff0c;推荐使用的 Unity 版本是 2021.3.18。 倒腾了这个 unity animation 动画半天&#xff0c;发现这个 animation sprite resolver 在导入动画帧的时候&#xff0c;一直都导入的是…

allegro 替换过孔

操作步骤如下 1.选择操作对象&#xff08;需要替换的过孔&#xff09;&#xff0c;右键–>Repace……–>Selected…… 2.在弹出的窗口中选择最终需要的过孔既可以

【Matlab学习日记】② 常用滤波以及噪声分析方法(上)

关注星标公众号&#xff0c;不错过精彩内容 作者 | 量子君 微信公众号 | 极客工作室 【Matlab学习日记】专栏目录 第一章 ① Sinmulink自动代码生成教程 第二章 ② 常用滤波以及噪声分析方法&#xff08;上&#xff09; 文章目录 前言一、使用滤波的目的二、常见的几种噪声和表…

算法闭关修炼百题计划(四)

仅供个人复习 1.两数相加2.寻找峰值3.寻找旋转排序数组中的最小值4.寻找旋转排序数组中的最小值II5.搜索旋转排序数组6.岛屿的最大面积7.最大数8.会议室9.最长连续序列 1.两数相加 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储…

STM32 通用同步/异步通信

一、串行通信简介 CPU与外围设备之间的信息交换称为通信。基本的通信方式有并行通信和串行通信两种。STM32单片机提供了功能强大的串行通信模块&#xff0c;即通用同步/异步收发器&#xff08;USART&#xff09;。 1.串行通信 串行通信是数据字节一位一位地依次传送的通信方式。…