返回

轻松上手 Nginx:打造前后端开发者的最佳帮手

前端

在 Windows 和 Docker 中部署 Nginx:打造高效的 Web 服务器

使用 Nginx 部署强大且安全的 Web 服务器

Nginx 是一个免费、开源的 Web 服务器,以其高效、稳定和可扩展性而闻名。它广泛用于各种 Web 应用程序和网站,从简单的静态网站到高流量的电子商务平台。在本教程中,我们将逐步引导您在 Windows 和 Docker 环境中安装、配置和部署 Nginx。

安装 Nginx

Windows

对于 Windows 用户,请从 Nginx 官网下载最新安装包。按照安装向导进行操作,选择自定义安装路径,并确保选中“在系统启动时运行”复选框。

Docker

对于 Docker 用户,使用以下命令拉取 Nginx 镜像:

docker pull nginx

然后运行 Nginx 容器:

docker run -d -p 80:80 nginx

配置 Nginx

Nginx 的配置文件位于 /usr/local/nginx/conf/nginx.conf(Windows)或 /etc/nginx/nginx.conf(Docker)。您可以使用文本编辑器对其进行编辑。

常见配置指令:

  • listen: 指定 Nginx 监听的端口号。
  • server_name: 指定 Nginx 的域名或 IP 地址。
  • root: 指定 Nginx 的根目录。
  • index: 指定 Nginx 的默认首页文件。
  • error_page: 指定 Nginx 的错误页面。

使用 nssm 部署为服务(仅限 Windows)

为了让 Nginx 作为 Windows 服务运行,可以使用 nssm 工具。

安装 nssm

从 nssm 官网下载最新安装包并按照安装向导进行操作。

配置 nssm

nssm 的配置文件位于 C:\Program Files\nssm\nssm.ini。您可以使用文本编辑器对其进行编辑。

常见配置指令:

  • Program: 指定 Nginx 的可执行文件路径。
  • Arguments: 指定 Nginx 的启动参数。
  • Startup directory: 指定 Nginx 的工作目录。

局域网中使用自定义域名访问 Nginx

在局域网中,使用自定义域名访问 Nginx 网站时,可能会遇到安全提示。这是因为 Nginx 默认使用 HTTP 协议,而浏览器会将 HTTP 网站标记为不安全。

解决方法:使用 Let's Encrypt 证书

可以使用 Let's Encrypt 证书为 Nginx 网站配置 HTTPS。

申请证书:

certbot certonly --standalone -d your_domain_name

配置 Nginx 使用证书:

listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/your_domain_name/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/your_domain_name/privkey.pem;

一路踩过的坑

在使用 Nginx 时,难免会遇到一些问题:

  • Nginx 无法启动:检查配置文件是否存在错误。
  • Nginx 无法访问网站:检查 Nginx 是否监听正确的端口。
  • Nginx 提示 404 错误:检查 Nginx 的根目录是否正确。
  • Nginx 提示 502 错误:检查 Nginx 的上游服务器是否正常运行。
  • Nginx 提示 SSL 证书错误:检查证书配置是否正确。

结论

Nginx 是一款功能强大的 Web 服务器,适用于各种场景。通过遵循本教程,您已经掌握了在 Windows 和 Docker 环境中安装、配置和部署 Nginx 的知识。希望这有助于您创建高效且安全的 Web 服务器。

常见问题解答

1. 如何配置 Nginx 转发请求到其他服务器?

在配置文件中使用 proxy_pass 指令。例如:

location / {
  proxy_pass http://upstream_server_address:port;
}

2. 如何限制 Nginx 访问特定 IP 地址?

在配置文件中使用 allowdeny 指令。例如:

location / {
  allow 192.168.1.0/24;
  deny all;
}

3. 如何启用 Nginx 的日志记录?

在配置文件中使用 access_log 指令。例如:

access_log /var/log/nginx/access.log;

4. 如何优化 Nginx 的性能?

可以调整缓存设置、启用压缩和使用 CDN。

5. 如何监控 Nginx 服务器?

可以使用监控工具,例如 Prometheus、Nagios 或 Zabbix。