Web服务器设置
本指南将带您完成在VPS上设置Web服务器的全过程。我们将对比Nginx和Apache,并以更高性能的Nginx为例,指导您完成安装、配置、设置域名访问以及最终启用HTTPS安全连接。
选择Web服务器
Web服务器是用于在互联网上托管和提供网站内容的软件。最流行的两个选择是Nginx和Apache。
Nginx vs Apache
Nginx
以其高性能、低资源消耗和出色的高并发处理能力而闻名。特别适合静态内容服务、反向代理和负载均衡。
Apache
历史悠久、稳定且极其灵活。通过强大的`.htaccess`文件和模块系统,配置非常方便,尤其是在共享主机环境中。
💡 本指南推荐
对于大多数现代应用和新项目,我们推荐使用 Nginx,因为它在性能和资源效率上通常更具优势。本指南将以 Nginx 为例进行演示。
安装Web服务器
连接到您的VPS后,首先更新软件包列表,然后安装Nginx。
更新软件包列表
确保您获取的是最新的软件版本。
sudo apt update
安装 Nginx
在基于Debian/Ubuntu的系统上使用以下命令:
sudo apt install nginx -y
验证Nginx服务状态
安装完成后,Nginx服务通常会自动启动。您可以使用以下命令检查其状态:
systemctl status nginx
如果看到 active (running)
,表示Nginx已成功运行。
配置防火墙
要允许外部访问您的网站,您需要配置防火墙以放行HTTP(端口80)和HTTPS(端口443)的流量。我们将使用UFW(Uncomplicated Firewall)进行演示。
sudo ufw allow ssh
Nginx在安装时会向UFW注册应用配置文件。'Nginx Full'代表同时打开80和443端口。
sudo ufw allow 'Nginx Full'
启用防火墙:
sudo ufw enable
检查防火墙状态以确认规则已生效:
sudo ufw status
现在,您应该可以通过在浏览器中访问您的VPS IP地址看到Nginx的默认欢迎页面。
设置服务器块
服务器块(Server Block),类似于Apache中的虚拟主机(Virtual Host),允许您在同一台服务器上托管多个域名。我们将为 your_domain
创建一个服务器块。
为您的域名创建网站根目录
这是存放您网站文件的文件夹。将 your_domain
替换为您的真实域名。
sudo mkdir -p /var/www/your_domain/html
设置目录权限
将目录的所有权分配给当前用户,以便您可以轻松地在其中创建或修改文件。
sudo chown -R $USER:$USER /var/www/your_domain/html
创建Nginx服务器块配置文件
在 sites-available
目录下为您的域名创建一个新的配置文件。
sudo nano /etc/nginx/sites-available/your_domain
将以下配置粘贴到文件中。记得将 your_domain
替换成您自己的域名。
server { listen 80; listen [::]:80; root /var/www/your_domain/html; index index.html index.htm; server_name your_domain www.your_domain; location / { try_files $uri $uri/ =404; } }
启用服务器块
通过在 sites-enabled
目录中创建一个指向配置文件的符号链接来启用它。
sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/
测试并重启Nginx
在重启服务之前,务必测试配置文件是否存在语法错误。
测试配置
sudo nginx -t
如果测试成功 (syntax is ok, test is successful),则重启Nginx
sudo systemctl restart nginx
配置HTTPS
现在您的网站已通过HTTP运行,最后一步是使用 Let's Encrypt 提供的免费SSL证书来保护它,启用HTTPS。
your_domain
和 www.your_domain
)已经通过DNS设置正确指向了您VPS的IP地址。
安装 Certbot
Certbot是Let's Encrypt官方推荐的客户端,可以自动化证书的获取、配置和续订。
sudo apt install certbot python3-certbot-nginx -y
获取并安装SSL证书
Certbot将自动读取您的Nginx配置,并引导您完成证书申请过程。
sudo certbot --nginx -d your_domain -d www.your_domain
按照屏幕提示操作,您需要输入邮箱地址,同意服务条款,并选择是否将所有HTTP流量重定向到HTTPS(推荐选项)。
验证证书自动续订
Let's Encrypt证书有效期为90天。Certbot安装包会自动创建一个定时任务来处理续订。您可以通过以下命令模拟续订过程,以确保其正常工作。
sudo certbot renew --dry-run
如果命令执行没有错误,则表示自动续订已设置成功。
总结与后续
恭喜!您已经在VPS上成功部署了一个由Nginx驱动、并通过HTTPS完全加密的网站。您现在可以将网站文件上传到 /var/www/your_domain/html
目录中。