Skip to content

Nginx 安装指南 ​

Nginx 是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。以下是在 Windows、Docker 和 Linux (CentOS) 上安装 Nginx 的详细步骤,旨在为初学者提供一个清晰、易懂的安装指南。

Windows 安装 Nginx ​

1. 下载 Nginx: ​

访问 Nginx 官方网站 nginx.org,在 Download 区域选择适合 Windows 的版本下载。

https://nginx.org/en/download.html

https://nginx.org/download/nginx-1.24.0.zip

alt text

2. 解压缩: ​

下载完成后,解压缩文件到你希望安装 Nginx 的目录,例如 C:\Program Files\nginx-1.24.0。

alt text

3. 运行 Nginx: ​

打开命令提示符(cmd),转到 Nginx 的目录下。通过执行命令 start nginx 来启动 Nginx。如果一切正常,你可以通过访问 http://localhost 在浏览器中看到 Nginx 的欢迎页面。

alt text

4. 管理 Nginx: ​

启动、停止及重新加载配置等管理操作可以通过命令行实现。例如,停止 Nginx 使用命令 .\nginx -s stop,重新加载配置文件使用命令 .\nginx -s reload。

alt text

Mac 安装 nginx ​

1. 判断是否有 Homebrew ​

在 MacOS 上,要查看是否已经安装了 Homebrew,您可以在终端中运行以下命令:

bash
brew --version

如果有如下信息,说明已经安装了 Homebrew

bash
shaohai.li@shaohailideMacBook-Pro vite-docs % brew --version
Homebrew 4.2.18
Homebrew/homebrew-core (git revision c71229c9e34; last commit 2024-04-21)
Homebrew/homebrew-cask (git revision c4f6d93cc7; last commit 2024-04-21)

如果您收到类似于 command not found的错误,那么 Homebrew 可能没有安装。

bash
shaohai.li@shaohailideMacBook-Pro vite-docs % brew --version
zsh: command not found: brew
shaohai.li@shaohailideMacBook-Pro vite-docs %

如果您还没有安装 Homebrew,并且想要安装它,可以使用以下命令:

bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

安装 Homebrew 后,您可以使用brew命令来安装、更新和管理软件包。

2. 查看 nginx 软件信息 ​

查询通过 Homebrew 安装的软件包 nginx 的信息。

bash
brew info nginx
Details

如果未安装会出现下面的提示

bash
shaohai.li@shaohailideMacBook-Pro vite-docs % brew info nginx
==> nginx: stable 1.25.5 (bottled), HEAD
HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
https://nginx.org/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/n/nginx.rb
License: BSD-2-Clause
==> Dependencies
Required: openssl@3 ✔, pcre2 ✘
==> Options
--HEAD
        Install HEAD version
==> Caveats
Docroot is: /opt/homebrew/var/www

The default port has been set in /opt/homebrew/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.

nginx will load all files in /opt/homebrew/etc/nginx/servers/.

To start nginx now and restart at login:
  brew services start nginx
Or, if you don't want/need a background service you can just run:
  /opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\;
==> Analytics
install: 13,232 (30 days), 38,227 (90 days), 175,725 (365 days)
install-on-request: 13,197 (30 days), 38,130 (90 days), 175,346 (365 days)
build-error: 9 (30 days)
shaohai.li@shaohailideMacBook-Pro vite-docs %
  • 版本信息: nginx: stable 1.25.5 (bottled), HEAD

    • stable 1.25.5: 指明当前稳定版本为 1.25.5。
    • bottled: 表示这个版本是预编译的,安装过程中不需要从源码编译。
    • HEAD: 表示你也可以安装开发版本(最新的源码版本)。
  • 功能描述:

    • Nginx 是一个 HTTP(S)服务器,同时也是一个反向代理服务器以及 IMAP/POP3 代理服务器。
  • 官网链接: https://nginx.org/

  • 安装状态: Not installed 表示当前没有安装 Nginx。

  • 源码地址: GitHub 链接,可以查看更详细的构建脚本和配置选项。

  • 许可证: BSD-2-Clause,一个较为宽松的开源许可证。

  • 依赖关系:

    • Required: 必需的依赖。
      • openssl@3 ✔: 安装了 OpenSSL 3 版本。
      • pcre2 ✘: 没有安装 PCRE2 库。
  • 可选项:

    • --HEAD: 可以选择安装最新的开发版本。
  • 注意事项 (Caveats):

    • Docroot: 文档根目录设置在/opt/homebrew/var/www。
    • 默认端口: 在/opt/homebrew/etc/nginx/nginx.conf中设置了默认端口为 8080,这样可以免 sudo 权限运行 Nginx。
    • 配置文件加载: Nginx 将会加载/opt/homebrew/etc/nginx/servers/目录下的所有配置文件。
  • 启动命令:

    • 如果希望 nginx 现在启动并在登录时自动启动,可以使用命令:brew services start nginx。
    • 如果不需要背景服务,可以直接运行:/opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\; 来启动 Nginx。
  • 安装统计:

    • 显示了过去 30 天、90 天和 365 天内的安装次数以及按需安装的次数。
    • build-error: 在过去 30 天内,有 9 次构建错误。

3. 安装 pcre2 ​

提示Required: openssl@3 ✔, pcre2 ✘ 说明必须先 安装 pcre2

bash
brew install pcre2

安装日志

Details
bash
shaohai.li@shaohailideMacBook-Pro vite-docs % brew install pcre2

==> Downloading https://formulae.brew.sh/api/formula.jws.json
##O#-  #
==> Downloading https://formulae.brew.sh/api/cask.jws.json
##O#-  #
==> Fetching pcre2
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/pcre2-10.43.arm64_sonoma.bottle.tar.gz
################################################################################################################### 100.0%
==> Pouring pcre2-10.43.arm64_sonoma.bottle.tar.gz
🍺  /opt/homebrew/Cellar/pcre2/10.43: 234 files, 6.3MB
==> Running `brew cleanup pcre2`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
shaohai.li@shaohailideMacBook-Pro vite-docs % brew info nginx
==> nginx: stable 1.25.5 (bottled), HEAD
HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
https://nginx.org/
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/n/nginx.rb
License: BSD-2-Clause
==> Dependencies
Required: openssl@3 ✔, pcre2 ✔
==> Options
--HEAD
        Install HEAD version
==> Caveats
Docroot is: /opt/homebrew/var/www

The default port has been set in /opt/homebrew/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.

nginx will load all files in /opt/homebrew/etc/nginx/servers/.

To start nginx now and restart at login:
  brew services start nginx
Or, if you don't want/need a background service you can just run:
  /opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\;
==> Analytics
install: 13,232 (30 days), 38,227 (90 days), 175,725 (365 days)
install-on-request: 13,197 (30 days), 38,130 (90 days), 175,346 (365 days)
build-error: 9 (30 days)
shaohai.li@shaohailideMacBook-Pro vite-docs %

4. 安装 nginx ​

从 brew info nginx 日志中可以看到 Not installed 关键字,说明 nginx 未安装

bash
brew install nginx

安装日志

Details
bash
shaohai.li@shaohailideMacBook-Pro vite-docs % brew install nginx
==> Fetching nginx
==> Downloading https://mirrors.ustc.edu.cn/homebrew-bottles/nginx-1.25.5.arm64_sonoma.bottle.tar.gz
################################################################################################################### 100.0%
==> Pouring nginx-1.25.5.arm64_sonoma.bottle.tar.gz
==> Caveats
Docroot is: /opt/homebrew/var/www

The default port has been set in /opt/homebrew/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.

nginx will load all files in /opt/homebrew/etc/nginx/servers/.

To start nginx now and restart at login:
  brew services start nginx
Or, if you don't want/need a background service you can just run:
  /opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\;
==> Summary
🍺  /opt/homebrew/Cellar/nginx/1.25.5: 26 files, 2.4MB
==> Running `brew cleanup nginx`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
shaohai.li@shaohailideMacBook-Pro vite-docs % brew info nginx
==> nginx: stable 1.25.5 (bottled), HEAD
HTTP(S) server and reverse proxy, and IMAP/POP3 proxy server
https://nginx.org/
Installed
/opt/homebrew/Cellar/nginx/1.25.5 (26 files, 2.4MB) *
  Poured from bottle using the formulae.brew.sh API on 2024-04-21 at 16:25:54
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/n/nginx.rb
License: BSD-2-Clause
==> Dependencies
Required: openssl@3 ✔, pcre2 ✔
==> Options
--HEAD
        Install HEAD version
==> Caveats
Docroot is: /opt/homebrew/var/www

The default port has been set in /opt/homebrew/etc/nginx/nginx.conf to 8080 so that
nginx can run without sudo.

nginx will load all files in /opt/homebrew/etc/nginx/servers/.

To start nginx now and restart at login:
  brew services start nginx
Or, if you don't want/need a background service you can just run:
  /opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\;
==> Analytics
install: 13,232 (30 days), 38,227 (90 days), 175,725 (365 days)
install-on-request: 13,197 (30 days), 38,130 (90 days), 175,346 (365 days)
build-error: 9 (30 days)
shaohai.li@shaohailideMacBook-Pro vite-docs %
bash
shaohai.li@shaohailideMacBook-Pro vite-docs % brew install nginx
==> 正在获取 nginx
==> 正在下载 https://mirrors.ustc.edu.cn/homebrew-bottles/nginx-1.25.5.arm64_sonoma.bottle.tar.gz
################################################################################################################### 100.0%
==> 正在安装 nginx-1.25.5.arm64_sonoma.bottle.tar.gz
==> 注意事项
文档根目录位于: /opt/homebrew/var/www

默认端口已设置在 /opt/homebrew/etc/nginx/nginx.conf 中为 8080,这样 nginx 可以在不需要 sudo 的情况下运行。

nginx 将加载位于 /opt/homebrew/etc/nginx/servers/ 中的所有文件。

要现在启动 nginx 并在登录时重启:
  brew services start nginx
或者,如果你不想/不需要后台服务,你可以直接运行:
  /opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\;
==> 概要
🍺  /opt/homebrew/Cellar/nginx/1.25.5: 26个文件, 2.4MB
==> 正在运行 `brew cleanup nginx`...
通过设置 HOMEBREW_NO_INSTALL_CLEANUP 禁用此行为。
通过设置 HOMEBREW_NO_ENV_HINTS 隐藏这些提示(参见 `man brew`)。
shaohai.li@shaohailideMacBook-Pro vite-docs % brew info nginx
==> nginx: 稳定版 1.25.5 (bottled), HEAD
HTTP(S) 服务器和反向代理,以及 IMAP/POP3 代理服务器
https://nginx.org/
已安装
/opt/homebrew/Cellar/nginx/1.25.5 (26个文件, 2.4MB) *
通过 formulae.brew.sh API 在 2024-04-21 16:25:54 从瓶子安装
来自:https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/n/nginx.rb
许可证:BSD-2-Clause
==> 依赖关系
必需的:openssl@3 ✔, pcre2 ✔
==> 选项
--HEAD
        安装 HEAD 版本
==> 注意事项
文档根目录是:/opt/homebrew/var/www

默认端口已在 /opt/homebrew/etc/nginx/nginx.conf 中设置为 8080,以便 nginx 可以在不需要 sudo 的情况下运行。

nginx 将加载 /opt/homebrew/etc/nginx/servers/ 中的所有文件。

要现在启动 nginx 并在登录时重启:
  brew services start nginx
或者,如果你不想/不需要后台服务,你可以直接运行:
  /opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\;
==> 分析
安装:13,232 (30天), 38,227 (90天), 175,725 (365天)
按需安装:13,197 (30天), 38,130 (90天), 175,346 (365天)
构建错误:9 (30天)
shaohai.li@shaohailideMacBook-Pro vite-docs %

5. 启动 nginx 服务 ​

使用 Homebrew 服务命令启动 nginx,使其成为开机自启服务

bash
brew services start nginx

6. 在登录时启动 nginx 服务: ​

启动 nginx 服务,但不将其设置为开机自启,适用于临时测试或开发用途

bash
brew services run nginx

7. 禁用 nginx 服务自动启动 ​

停止 nginx 服务,并取消其开机自启设置

bash
brew services stop nginx

8. 重启 nginx 服务 ​

重启 nginx 服务,适用于配置更改后或更新后需要重启服务

bash
brew services restart nginx

9. 列出所有服务: ​

显示所有通过 Homebrew 管理的服务及其状态,如运行中、已停止等

bash
brew services list

这些命令涵盖了对服务的基本操作,可以帮助你有效管理和维护通过 Homebrew 安装的服务。

10. brew services run nginx 命令和 brew services start nginx 的区别 ​

brew services run nginx 和 brew services start nginx 这两个命令都用于启动你系统上的 Nginx 服务,但它们的使用场景略有不同:

  1. brew services start nginx:

    • 这个命令用来将 Nginx 作为后台服务启动,并将其注册为开机自启动。这意味着,只要不明确停止或禁用,Nginx 服务将在系统重启后自动运行。
    • 这种方式通常用于需要持续运行的服务,如网站服务器或数据库。
  2. brew services run nginx:

    • 与 start 命令不同,run 命令用于立即启动服务,但不会注册为开机自启。这意味着 Nginx 将立即启动,但在你关闭电脑或注销时会停止。
    • 这种方式适用于临时使用服务的情况,当你不需要服务在重启或注销后自动启动时。这对于测试或开发非常有用,当你不需要服务永久运行时。

总结来说,如果你需要 Nginx 成为一个永久的、始终在线的服务,自动随电脑启动,使用 brew services start nginx。如果你只是临时需要,使用 brew services run nginx 可以避免重启或关机后服务自动启动。

11. Mac Homebrew 删除 nginx ​

要从 Homebrew 完全删除 Nginx,你可以使用以下命令:

bash
brew uninstall nginx

这个命令会从你的系统中删除 Nginx 软件包及其安装的所有文件。如果 Nginx 是以服务的形式运行的,这个命令还会停止服务并从系统的服务列表中移除它。

如果你在删除过程中想同时清理缓存或不再需要的文件,可以使用:

bash
brew cleanup

这个命令会清理 Homebrew 的缓存,删除没有用的下载档案和老旧版本的软件包,帮助你释放磁盘空间。

12. 打开 html 代码目录 ​

bash
open /opt/homebrew/var/www

可以修改这里的 index.html 来查看 http://localhost:8080 的变化

13. 打开配置文件目录 ​

bash
open /opt/homebrew/etc/nginx
bash
code /opt/homebrew/etc/nginx

修改 nginx.config 配置文件

Docker 安装 Nginx ​

使用 Docker 安装 Nginx 是一种快速、简单的方式,前提是你已经安装了 Docker。

1. 拉取 Nginx 镜像: ​

在终端或命令提示符中,运行命令 docker pull nginx 来拉取最新的 Nginx 官方镜像。

alt text

2. 运行 Nginx 容器: ​

拉取完镜像后,运行以下命令启动 Nginx 容器:

bash
docker run --name nginx-container -p 80:80 -d nginx

该命令创建并启动了一个名为 nginx-container 的容器,将容器的 80 端口映射到了主机的 80 端口,并在后台运行。

alt text

3. 访问 Nginx: ​

通过浏览器访问 http://localhost,你应该能看到 Nginx 的欢迎页面。

alt text

4. 管理 Nginx 容器: ​

你可以通过 Docker 命令来管理容器,如使用 docker stop nginx-container 命令来停止容器,或者用 docker start nginx-container 命令来启动容器。

4.1 查看 Docker 容器 ​

要查看当前运行的 Docker 容器,可以使用以下命令:

bash
docker ps

如果你想查看所有的容器(包括未运行的),可以使用命令:

bash
docker ps -a

这些命令将列出容器的 ID、创建时间、状态等信息。

4.2 停止 Docker 容器 ​

停止运行中的容器,你已经知道可以使用:

bash
docker stop nginx-container

4.3 重新启动 Docker 容器 ​

如果需要重新启动容器,可以使用命令:

bash
docker restart nginx-container

4.4 删除 Docker 容器 ​

在删除 Docker 容器之前,需要先确保容器已经停止运行。然后,使用以下命令删除容器:

bash
docker rm nginx-container

如果你有很多不再需要的容器要删除,可以通过 docker container prune 命令来一次性删除所有停止状态的容器。

4.5 删除 Docker 镜像 ​

在删除镜像之前,确保没有任何容器正在使用该镜像。删除 Docker 镜像使用以下命令:

bash
docker rmi nginx

如果你想删除所有未被容器使用的镜像,可以使用命令:

bash
docker image prune

或者,如果你想删除系统上所有未使用的镜像和悬空镜像,可以使用命令:

bash
docker system prune

请注意,在执行删除操作时务必谨慎,确保你不再需要那些容器或镜像。这些命令对于保持 Docker 环境的清洁和管理是非常有帮助的。

Linux(CentOS)安装 Nginx ​

阿里云购买云服务器和安装 Centos 系统以及 ssh 登录云服务器

CentOS 上安装 Nginx 可以通过 EPEL 仓库来进行,该仓库包含了许多额外的软件包。

EPEL 仓库 是什么?

Details

"EPEL 仓库"指的是“额外软件包企业 Linux 仓库”(Extra Packages for Enterprise Linux),它是一个由 Fedora 社区打造,为 Red Hat Enterprise Linux(RHEL)及其衍生版本如 CentOS 和 Scientific Linux 提供高质量软件包的项目。这些软件包并不包含在默认的系统软件仓库中,但是对于那些需要额外软件或更新版本软件的用户来说非常有用。

添加 EPEL 仓库,意味着你在系统的软件仓库列表中添加了一个新的源,从而可以安装和管理 EPEL 仓库中的软件包。这通常是通过安装一个特定的软件包来完成的,该软件包包含了添加仓库所需的配置信息。

在 CentOS 上添加 EPEL 仓库的步骤一般如下:

  1. 打开终端:首先,你需要打开你的终端或命令行界面。

  2. 安装 EPEL 仓库:通过运行以下命令来安装 EPEL 仓库:

sudo yum install epel-release

这个命令会从 CentOS 的默认仓库中下载并安装 epel-release 包。这个包包含了添加 EPEL 仓库所需的所有配置。

  1. 确认仓库已被添加:安装完成后,EPEL 仓库就被添加到你的系统中了。你可以通过运行 yum repolist 命令来确认 EPEL 仓库是否已经被成功添加。你应该在列出的仓库中看到 EPEL。

通过添加 EPEL 仓库,你将能够访问许多不在 CentOS 默认仓库中的软件包,这样可以极大地扩展你的系统的功能和软件选择。这对于需要使用最新软件或特定软件包的用户来说尤其有用。

1. 添加 EPEL 仓库:运行以下命令来添加 EPEL 仓库: ​

bash
sudo yum install epel-release

2. 安装 Nginx: ​

添加了 EPEL 仓库后,可以通过以下命令安装 Nginx:

bash
sudo yum install nginx

3. 启动 Nginx 服务: ​

安装完成后,使用以下命令启动 Nginx:

bash
sudo systemctl start nginx

如果你想让 Nginx 在系统启动时自动启动,可以使用 sudo systemctl enable nginx 命令。

4. 配置防火墙: ​

如果你的系统开启了防火墙,需要运行以下命令来允许 HTTP 和 HTTPS 流量:

bash
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

5. 访问 Nginx: ​

在浏览器中访问 http://localhost 或者你服务器的 IP 地址,你应该能看到 Nginx 的默认欢迎页面。

6. 管理 Nginx 服务: ​

可以通过 sudo systemctl stop nginx 来停止 Nginx 服务,通过 sudo systemctl restart nginx 来重启服务,或者通过 sudo systemctl status nginx 来查看服务状态。


以上是在不同平台上安装 Nginx 的基本步骤,希望对初学者有所帮助。在安装和配置过程中,根据你的具体需求和环境,可能还需要进一步调整配置文件。这只是开始,随着你对 Nginx 的深入学习,你将能够充分利用其强大的功能。