Nginx 配置多台虚拟主机,从入门到高级操作
卡尔云官网
www.kaeryun.com
Nginx的优势
在配置多台虚拟主机时,Nginx的优势在于:
- 高负载能力:Nginx可以同时处理数千甚至数万个请求,适合多虚拟主机的场景。
- 模块化架构:Nginx支持多种模块,如SSL、反向代理、负载均衡等,灵活配置。
- 配置灵活:通过配置文件(配置文件)和rewrite规则,可以轻松管理多个虚拟主机。
配置多台虚拟主机的步骤
确定域名和IP分配
假设你有多个虚拟主机,每个主机对应一个域名和IP地址。
- 主机A:www.example.com,IP:127.0.0.1
- 主机B:admin.example.com,IP:192.168.1.1
创建Nginx配置文件
在Nginx的配置目录下创建nginx.conf
文件,以下是基本配置示例:
server { listen 80; server_name www.example.com,admin.example.com; # 配置SSL ssl_protocols TLSv1.2 TLSv1.3; ssl_certificate /etc/ssl/certificate.pem; ssl_key /etc/ssl/key.pem; # 配置反向代理 reverse_proxy server_name 127.0.0.1:80,192.168.1.1:80; # 配置负载均衡 load_balancer on; load_balancer_weight 1,1; # 配置SSL绑定 ssl reordered off; }
编写rewrite规则
rewrite规则用于将所有请求路由到对应的服务器,以下是示例:
location / { # 根据域名匹配IP rewrite ^/(.*)/ $0 $uri; # 根据IP匹配域名 rewrite ^/(.*)/ $uri $host; # 根据域名匹配特定IP rewrite ^/www.example.com/ $uri 127.0.0.1; rewrite ^/admin.example.com/ $uri 192.168.1.1; # 配置安全 rewrite_cache on; rewrite anchors off; }
安全配置
确保Nginx安全,防止跨站脚本攻击和SQL注入,以下是安全配置示例:
location / { # 防止跨站脚本 access_log off; error_log on; # 防止跨站脚本攻击 ssl_prefer_server_ciphers on; ssl_prefer_server_ciphers TLSv1.2; # 防止SQL注入 raw rewriting off; raw rewriting allowed_origins $host; raw rewriting allowed_methods GET,HEAD,POST,PUT,DELETE; raw rewriting allowed_headers all; }
测试配置
在配置完成后,使用nginx -t
命令测试配置是否正确,如果遇到问题,检查:
- 域名和IP是否正确绑定
- rewrite规则是否覆盖所有目标
- 安全配置是否启用
高级配置
负载均衡
通过load_balancer
模块实现负载均衡,以下是示例:
location / { load_balancer on; load_balancer_weight 1,1; # 配置负载均衡算法 load_balancer_algorithm round_robin; # 配置负载均衡缓存 load_balancer_cache on; load_balancer_cache_size 1M; }
高可用配置
通过Nginx的高可用模块(HAProxy)实现高可用,以下是配置示例:
location / { high_available on; high_available90 99.99%; high_available99 99.9%; # 配置HAProxy high_available_server www.example.com:80; high_available_server admin.example.com:80; }
配置SSL绑定
通过ssl reordered off
确保SSL绑定到特定IP。
location / { # 配置SSL绑定到127.0.0.1 ssl reordered off; ssl reordered_server 127.0.0.1; # 配置SSL绑定到192.168.1.1 ssl reordered off; ssl reordered_server 192.168.1.1; }
注意事项
- 定期备份:定期备份Nginx配置文件,以防万一。
- 测试环境:在测试环境中配置Nginx,避免影响生产环境。
- 监控性能:使用Nginx的性能工具(如
ngrok
)监控服务器负载,确保配置的正确性。
卡尔云官网
www.kaeryun.com