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
2. 解压缩:
下载完成后,解压缩文件到你希望安装 Nginx 的目录,例如 C:\Program Files\nginx-1.24.0
。
3. 运行 Nginx:
打开命令提示符(cmd),转到 Nginx 的目录下。通过执行命令 start nginx
来启动 Nginx。如果一切正常,你可以通过访问 http://localhost
在浏览器中看到 Nginx 的欢迎页面。
4. 管理 Nginx:
启动、停止及重新加载配置等管理操作可以通过命令行实现。例如,停止 Nginx 使用命令 .\nginx -s stop
,重新加载配置文件使用命令 .\nginx -s reload
。
Mac 安装 nginx
1. 判断是否有 Homebrew
在 MacOS 上,要查看是否已经安装了 Homebrew,您可以在终端中运行以下命令:
brew --version
如果有如下信息,说明已经安装了 Homebrew
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 可能没有安装。
shaohai.li@shaohailideMacBook-Pro vite-docs % brew --version
zsh: command not found: brew
shaohai.li@shaohailideMacBook-Pro vite-docs %
如果您还没有安装 Homebrew,并且想要安装它,可以使用以下命令:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
安装 Homebrew 后,您可以使用brew
命令来安装、更新和管理软件包。
2. 查看 nginx 软件信息
查询通过 Homebrew 安装的软件包 nginx 的信息。
brew info nginx
Details
如果未安装会出现下面的提示
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 库。
- Required: 必需的依赖。
可选项:
- --HEAD: 可以选择安装最新的开发版本。
注意事项 (Caveats):
- Docroot: 文档根目录设置在
/opt/homebrew/var/www
。 - 默认端口: 在
/opt/homebrew/etc/nginx/nginx.conf
中设置了默认端口为 8080,这样可以免 sudo 权限运行 Nginx。 - 配置文件加载: Nginx 将会加载
/opt/homebrew/etc/nginx/servers/
目录下的所有配置文件。
- Docroot: 文档根目录设置在
启动命令:
- 如果希望 nginx 现在启动并在登录时自动启动,可以使用命令:
brew services start nginx
。 - 如果不需要背景服务,可以直接运行:
/opt/homebrew/opt/nginx/bin/nginx -g daemon\ off\;
来启动 Nginx。
- 如果希望 nginx 现在启动并在登录时自动启动,可以使用命令:
安装统计:
- 显示了过去 30 天、90 天和 365 天内的安装次数以及按需安装的次数。
- build-error: 在过去 30 天内,有 9 次构建错误。
3. 安装 pcre2
提示Required: openssl@3 ✔, pcre2 ✘
说明必须先 安装 pcre2
brew install pcre2
安装日志
Details
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 未安装
brew install nginx
安装日志
Details
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 %
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,使其成为开机自启服务
brew services start nginx
6. 在登录时启动 nginx 服务:
启动 nginx 服务,但不将其设置为开机自启,适用于临时测试或开发用途
brew services run nginx
7. 禁用 nginx 服务自动启动
停止 nginx 服务,并取消其开机自启设置
brew services stop nginx
8. 重启 nginx 服务
重启 nginx 服务,适用于配置更改后或更新后需要重启服务
brew services restart nginx
9. 列出所有服务:
显示所有通过 Homebrew 管理的服务及其状态,如运行中、已停止等
brew services list
这些命令涵盖了对服务的基本操作,可以帮助你有效管理和维护通过 Homebrew 安装的服务。
10. brew services run nginx 命令和 brew services start nginx 的区别
brew services run nginx
和 brew services start nginx
这两个命令都用于启动你系统上的 Nginx 服务,但它们的使用场景略有不同:
brew services start nginx
:- 这个命令用来将 Nginx 作为后台服务启动,并将其注册为开机自启动。这意味着,只要不明确停止或禁用,Nginx 服务将在系统重启后自动运行。
- 这种方式通常用于需要持续运行的服务,如网站服务器或数据库。
brew services run nginx
:- 与
start
命令不同,run
命令用于立即启动服务,但不会注册为开机自启。这意味着 Nginx 将立即启动,但在你关闭电脑或注销时会停止。 - 这种方式适用于临时使用服务的情况,当你不需要服务在重启或注销后自动启动时。这对于测试或开发非常有用,当你不需要服务永久运行时。
- 与
总结来说,如果你需要 Nginx 成为一个永久的、始终在线的服务,自动随电脑启动,使用 brew services start nginx
。如果你只是临时需要,使用 brew services run nginx
可以避免重启或关机后服务自动启动。
11. Mac Homebrew 删除 nginx
要从 Homebrew 完全删除 Nginx,你可以使用以下命令:
brew uninstall nginx
这个命令会从你的系统中删除 Nginx 软件包及其安装的所有文件。如果 Nginx 是以服务的形式运行的,这个命令还会停止服务并从系统的服务列表中移除它。
如果你在删除过程中想同时清理缓存或不再需要的文件,可以使用:
brew cleanup
这个命令会清理 Homebrew 的缓存,删除没有用的下载档案和老旧版本的软件包,帮助你释放磁盘空间。
12. 打开 html 代码目录
open /opt/homebrew/var/www
可以修改这里的 index.html 来查看 http://localhost:8080 的变化
13. 打开配置文件目录
open /opt/homebrew/etc/nginx
code /opt/homebrew/etc/nginx
修改 nginx.config 配置文件
Docker 安装 Nginx
使用 Docker 安装 Nginx 是一种快速、简单的方式,前提是你已经安装了 Docker。
1. 拉取 Nginx 镜像:
在终端或命令提示符中,运行命令 docker pull nginx
来拉取最新的 Nginx 官方镜像。
2. 运行 Nginx 容器:
拉取完镜像后,运行以下命令启动 Nginx 容器:
docker run --name nginx-container -p 80:80 -d nginx
该命令创建并启动了一个名为 nginx-container
的容器,将容器的 80 端口映射到了主机的 80 端口,并在后台运行。
3. 访问 Nginx:
通过浏览器访问 http://localhost
,你应该能看到 Nginx 的欢迎页面。
4. 管理 Nginx 容器:
你可以通过 Docker 命令来管理容器,如使用 docker stop nginx-container
命令来停止容器,或者用 docker start nginx-container
命令来启动容器。
4.1 查看 Docker 容器
要查看当前运行的 Docker 容器,可以使用以下命令:
docker ps
如果你想查看所有的容器(包括未运行的),可以使用命令:
docker ps -a
这些命令将列出容器的 ID、创建时间、状态等信息。
4.2 停止 Docker 容器
停止运行中的容器,你已经知道可以使用:
docker stop nginx-container
4.3 重新启动 Docker 容器
如果需要重新启动容器,可以使用命令:
docker restart nginx-container
4.4 删除 Docker 容器
在删除 Docker 容器之前,需要先确保容器已经停止运行。然后,使用以下命令删除容器:
docker rm nginx-container
如果你有很多不再需要的容器要删除,可以通过 docker container prune
命令来一次性删除所有停止状态的容器。
4.5 删除 Docker 镜像
在删除镜像之前,确保没有任何容器正在使用该镜像。删除 Docker 镜像使用以下命令:
docker rmi nginx
如果你想删除所有未被容器使用的镜像,可以使用命令:
docker image prune
或者,如果你想删除系统上所有未使用的镜像和悬空镜像,可以使用命令:
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 仓库的步骤一般如下:
打开终端:首先,你需要打开你的终端或命令行界面。
安装 EPEL 仓库:通过运行以下命令来安装 EPEL 仓库:
sudo yum install epel-release
这个命令会从 CentOS 的默认仓库中下载并安装 epel-release
包。这个包包含了添加 EPEL 仓库所需的所有配置。
- 确认仓库已被添加:安装完成后,EPEL 仓库就被添加到你的系统中了。你可以通过运行
yum repolist
命令来确认 EPEL 仓库是否已经被成功添加。你应该在列出的仓库中看到 EPEL。
通过添加 EPEL 仓库,你将能够访问许多不在 CentOS 默认仓库中的软件包,这样可以极大地扩展你的系统的功能和软件选择。这对于需要使用最新软件或特定软件包的用户来说尤其有用。
1. 添加 EPEL 仓库:运行以下命令来添加 EPEL 仓库:
sudo yum install epel-release
2. 安装 Nginx:
添加了 EPEL 仓库后,可以通过以下命令安装 Nginx:
sudo yum install nginx
3. 启动 Nginx 服务:
安装完成后,使用以下命令启动 Nginx:
sudo systemctl start nginx
如果你想让 Nginx 在系统启动时自动启动,可以使用 sudo systemctl enable nginx
命令。
4. 配置防火墙:
如果你的系统开启了防火墙,需要运行以下命令来允许 HTTP 和 HTTPS 流量:
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 的深入学习,你将能够充分利用其强大的功能。