在 Debian 和 Ubuntu 系统上使用 Nginx 设置 Jekyll
借助 Jekyll 等现代 Web 开发工具,创建静态网站并托管它从未如此简单。 Jekyll 是一个由 Ruby 提供支持的静态站点生成器,可让您创建快速、安全且易于维护的网站。当与 Nginx、强大的 HTTP 服务器和反向代理结合使用时,您将拥有强大且灵活的网站部署机制。本指南介绍了如何在 Debian 和 Ubuntu 系统上使用 Nginx 设置 Jekyll 作为反向代理。
在本教程中您将学习:
如何在 Debian 和 Ubuntu 系统上安装流行的静态站点生成器 Jekyll 以及其他必要的软件包。
创建一个新的 Jekyll 站点。
将 Jekyll 设置为 systemd 服务,使其能够在启动时自动启动,并在崩溃时重新启动。
将 Nginx 配置为 Jekyll 服务的反向代理。这有助于管理 HTTP 请求并优化性能。
了解以非 root 用户身份运行服务对于增强系统安全性的重要性。
分步指南
安装所需软件
首先,更新您的系统并安装所需的软件包:# apt update # apt install ruby-full build-essential zlib1g-dev nginx git -y
然后,安装 Jekyll 和 Bundler:
# gem install jekyll bundler
创建您的 Jekyll 网站
使用以下命令创建一个新的 Jekyll 站点。从您希望托管站点的目录运行命令:$ jekyll new mysite
将 Jekyll 设置为 Systemd 服务
为 Jekyll 创建一个新的 systemd 服务文件。确保您按照上述步骤获得了正确的WorkingDirectory
路径:# nano /etc/systemd/system/jekyll.service
然后,添加以下内容:
[Unit] Description=Jekyll Service After=network.target [Service] Type=simple Restart=always RestartSec=1 User=root WorkingDirectory=/home/yourusername/mysite ExecStart=/usr/local/bin/jekyll serve --host 0.0.0.0 --port 4000 [Install] WantedBy=multi-user.target
最后,启用并启动 Jekyll 服务:
# systemctl enable jekyll # systemctl start jekyll
将 Nginx 设置为反向代理删除默认的 Nginx 配置:创建新的 Nginx 配置文件:
# nano /etc/nginx/sites-available/jekyll
添加以下内容并使用正确的
server_name
作为新网站的域名:[Unit] server { listen 80; listen [::]:80; server_name your-domain-name; location / { proxy_pass http://localhost:4000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } }
最后,启用新配置并重新启动 Nginx:
# ln -s /etc/nginx/sites-available/jekyll /etc/nginx/sites-enabled/ # nginx -t # systemctl restart nginx
测试您的 Jekyll 站点完成设置后,必须验证一切是否按预期运行。您可以通过在网络浏览器中访问您的域来测试您的 Jekyll 站点。在网络浏览器中,导航到您的域(将
your-domain-name
替换为您的实际域):$ wget http://your-domain-name
您应该看到您的 Jekyll 站点已成功加载。如果没有,请确保您的 DNS 设置正确地将您的域指向服务器的 IP 地址,并且 Nginx 和 Jekyll 服务在服务器上正常运行。
此外,请检查 Nginx 日志中是否有任何错误消息,这可能有助于您解决任何问题:
# journalctl -u nginx
Jekyll 服务日志:
# journalctl -u jekyll
结论
通过遵循本指南中概述的步骤,您可以在 Debian 或 Ubuntu 系统上成功设置 Jekyll 并使用 Nginx 作为反向代理。此配置为部署和管理静态网站提供了高效的环境。
但是,请记住,虽然此设置提供了功能正常的 Web 服务,但默认情况下只能通过 HTTP 进行访问。在当今的数字环境中,使用 HTTPS 增强网站的安全性至关重要。它不仅可以保护您的网站与其访问者之间的通信,还可以与您的受众建立信任,甚至可以改善您网站的搜索引擎优化。因此,强烈建议在生产环境中使用受信任的 SSL 证书将 Nginx 配置为 HTTPS。
最后,虽然以 root 用户身份运行服务可能看起来更容易,但建议以专用非 root 用户身份运行服务以提高系统安全性。