Nginx是一款非常流行的高性能Web服务器,它结合了反向代理、负载平衡、缓存等多种功能。根据配置方式,它可以充当HTTP/HTTPS服务器的反向代理和负载平衡器。
Nginx网络服务器具有处理数千个并发连接的强大能力,这使其成为速度最快的网络服务器,为全球一半以上的最繁忙网站提供支持,其中包括Netflix、DuckDuckGo和DropBox等。
在本教程中,小编将介绍Debian 12安装Nginx服务器以托管网站的过程步骤,同时包括为网站启用HTTPS的简单方法。
先决条件
在开始之前,请确保满足以下要求:
- 一个装有Debian 12的服务器实例
- 指向服务器的完全限定域名(FQDN)
- 本示例使用的IP地址为192.168.122.27
- 良好的网络连接
注意:本文教程旨在托管静态网页,如果需要访问动态网页,还需要安装PHP和MySQL等组件服务。
步骤1:更新Debian 12软件包存储库
首先需要将本地软件包存储库更新到最新版本,为此请以具有sudo权限的普通用户身份登录并运行以下命令:
sudo apt update -y
步骤2:在Debian 12上安装Nginx
由于Nginx存在于Debian的存储库中,因而可以轻松地使用Debian附带的apt包管理器来安装它:
sudo apt install nginx -y
如果没有遇到任何错误,则Nginx Web服务器已成功安装。在进行进一步配置之前,最好先验证Web服务器的状态。要检查Nginx的状态,请执行以下命令:
sudo systemctl status nginx
如果网络服务器启动并运行,将会看如下图所示的状态:
如果希望重新启动Nginx Web服务器,请运行以下命令:
sudo systemctl restart nginx
要停止Nginx,请输入以下命令:
sudo systemctl stop nginx
要启动Web服务器,请运行下面的命令:
sudo systemctl start nginx
配置Nginx Web服务器以在启动时启动:
sudo systemctl enable nginx
步骤3:配置防火墙以打开Nginx端口
成功安装并运行Nginx后,需要允许Web访问该服务,尤其是外部用户。如果启用了UFW防火墙,则需要允许通过防火墙进行HTTP和HTTPS访问。为了实现这一点,请执行命令:
sudo ufw allow 'Nginx HTTP'
接下来,重新加载防火墙以使更改生效:
sudo ufw reload
这样可以通过运行以下命令来验证HTTP是否被允许通过防火墙:
sudo ufw status
从上面的示例图中,可以清楚地看到Nginx HTTP已被允许通过UFW防火墙。
步骤4:访问Nginx Web服务器
到这里已经完成了启动和运行Nginx的基本配置。如果要通过浏览器访问Web服务器,请服务服务器的IP地址,如下所示:
http://服务器IP地址 或者是 http://服务器域名
这样可以确认Nginx已启动并正在运行。
步骤5:在Debian 12上配置Nginx服务器块
这是一个可选步骤,主要是当你想在Nginx Web服务器上托管多个域名时很有用。要实现此功能,需要有一个指向Debian服务器的域名。例如对于本文实例,将使用A
记录指向服务器IP 192.168.122.27的域名。
当你将域名解析到你的服务器的IP地址时,域名很快就会指向你的Web服务器,如下图所示:
现在让我们创建一个服务器块。
首先,为我们的域名创建一个目录,如下所示:
udo mkdir -p /var/www/html/idccoupon.com
然后按照如下所示分配所需的文件所有权:
sudo chown -R $USER: $ USER /var/www/html/idccoupon.com
接下来,为组和公共用户分配读取和执行权限,命令如下:
sudo chmod -R 755 /var/www/html/idccoupon.com
现在让我们使用vim文本编辑器创建一个简单的index.html
示例网页:
sudo vim /var/www/html/idccoupon.com/index.html
在文件中添加一些示例内容,这将显示在浏览器中:
<html> <head> <title>Welcome to TecMint</title> </head> <body> <h1>Success! Welcome to your new server block on Tecmint Nginx Web Server !</h1> </body> </html>
保存并退出编辑器
为了限时此内容,需要创建一个服务器块,让我们创建一个服务器块:
sudo vim /etc/nginx/sites-available/idccoupon.com
将以下内容复制并粘贴到服务器块文件中:
server { listen 80; listen [::]:80; root /var/www/html/idccoupon.com; index index.html index.htm index.nginx-debian.html; server_name idccoupon.com www.idccoupon.com; location / { try_files $uri $uri/ =404; } }
请务必使用你自己的域名替换idccoupon.com域名。
要激活或启用服务器块文件,请创建一个符号链接,命令如下:
sudo ln -s /etc/nginx/sites-available/idccoupon.com /etc/nginx/sites-enabled/
要验证Nginx中的所有设置是否配置正确,请运行以下命令:
sudo nginx -t
现在设置都完成了,最后重新启动Nginx即可:
sudo systemctl restart nginx
打开浏览器并刷新,如果一切顺利,浏览器应该会为你的服务器块网页提供服务,如下图所示:
步骤6:在Nginx上使用Let’s Encrypt启用HTTPS / SSL
要在Nginx启用HTTPS,需要安装一个Certbot工具,该工具会自动从Let’s Encrypt为域下载免费SSL证书:
sudo apt install certbot python3-certbot-nginx -y
运行Certbot获取证书并自动配置Nginx使用它:
sudo certbot --nginx -d idccoupon.com -d www.idccoupon.com
步骤7:自动更新Nginx的SSL证书
Let’s Encrypt证书有效期为90天,因此通过cron job设置自动续订非常重要:
sudo crontab -e
将以下行添加到crontab:
0 0 * * 0 /usr/bin/certbot renew --quiet
这将每周自动更新SSL证书,确保在90天到期之前完成更新。
小结
通过以上步骤设置,现在已经在Debian 12实例上安装Nginx,并且完成了域名绑定配置,这样就可以托管网站了。如果有这方面的设置需求,可以参考上述教程进行操作。