在现代 Web 开发中,为了提升网站的性能、稳定性和可扩展性,我们常常需要使用 Nginx 虚拟主机 和 Nginx 负载均衡 技术。本教程将手把手教你如何配置 Nginx 实现虚拟主机与负载均衡,即使你是完全的小白,也能轻松上手!
虚拟主机(Virtual Host)是指在一台物理服务器上运行多个网站的技术。通过 Nginx 的 server 块配置,我们可以让不同的域名或端口指向不同的网站目录,从而实现“一机多站”。
负载均衡 是将用户请求分发到多个后端服务器的技术,目的是提高系统整体的处理能力、容错能力和可用性。Nginx 内置了强大的负载均衡功能,支持轮询、加权轮询、IP 哈希等多种策略。
你需要:
为了演示,我们在同一台机器上用 Python 快速启动两个简单的 HTTP 服务:
# 终端 1python3 -m http.server 8001# 终端 2python3 -m http.server 8002
现在,访问 http://你的IP:8001 和 http://你的IP:8002 应该能看到不同的页面。
编辑 Nginx 配置文件(通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf),添加 upstream 块和 server 块:
upstream backend { server 127.0.0.1:8001; server 127.0.0.1:8002;}server { listen 80; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; }} 解释:
upstream backend 定义了一个名为 backend 的服务器组,包含两个后端服务。proxy_pass http://backend 表示将请求转发给这个服务器组。如果你有多个域名(如 site1.com 和 site2.com),可以为每个域名配置独立的虚拟主机,并分别做负载均衡:
upstream group1 { server 127.0.0.1:8001; server 127.0.0.1:8002;}upstream group2 { server 127.0.0.1:8003; server 127.0.0.1:8004;}server { listen 80; server_name site1.com; location / { proxy_pass http://group1; }}server { listen 80; server_name site2.com; location / { proxy_pass http://group2; }} 保存配置后,重载 Nginx:
sudo nginx -s reload
然后多次访问 http://example.com,观察返回内容是否在两个后端服务之间切换。你也可以在浏览器开发者工具中查看响应头或页面内容来判断请求被分发到了哪个服务器。
除了默认的轮询,Nginx 还支持以下策略:
server 127.0.0.1:8001 weight=3;upstream 块中加入 ip_hash;upstream 块中加入 least_conn;通过本教程,你已经掌握了如何使用 Nginx 虚拟主机 和 Nginx 负载均衡 构建一个高可用、可扩展的 Web 架构。这种 高可用架构 不仅能提升用户体验,还能有效应对流量高峰。掌握这些 Web服务器配置 技巧,是你迈向 DevOps 或系统架构师的重要一步!
提示:生产环境中请确保后端服务器真实可用,并配置健康检查、SSL 证书等安全措施。
本文由主机测评网于2025-12-01发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/2025121784.html