插件窝 干货文章 Nginx虚拟主机配置,管理多个网站入口

Nginx虚拟主机配置,管理多个网站入口

配置 example Nginx server 125    来源:    2025-04-15

Nginx虚拟主机配置指南:管理多个网站入口

Nginx通过虚拟主机(server blocks)可以在一台服务器上托管多个网站。以下是配置Nginx虚拟主机来管理多个网站入口的详细指南:

基础虚拟主机配置

1. 创建网站目录结构

sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html

2. 设置目录权限

sudo chown -R $USER:$USER /var/www/example1.com/html
sudo chown -R $USER:$USER /var/www/example2.com/html

3. 创建测试页面

为每个网站创建简单的index.html测试页面。

Nginx配置方法

方法1:使用单独的配置文件(推荐)

  1. 为每个网站创建单独的配置文件:
sudo nano /etc/nginx/sites-available/example1.com
  1. 典型配置内容:
server {
    listen 80;
    server_name example1.com www.example1.com;

    root /var/www/example1.com/html;
    index index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
}
  1. 启用配置:
sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/

方法2:在nginx.conf中直接配置

/etc/nginx/nginx.conf的http块中添加多个server块:

http {
    # ...

    server {
        listen 80;
        server_name example1.com www.example1.com;
        root /var/www/example1.com/html;
        # 其他配置...
    }

    server {
        listen 80;
        server_name example2.com www.example2.com;
        root /var/www/example2.com/html;
        # 其他配置...
    }
}

高级配置选项

1. HTTPS配置

server {
    listen 443 ssl;
    server_name example1.com www.example1.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    root /var/www/example1.com/html;
    # 其他配置...
}

2. 重定向HTTP到HTTPS

server {
    listen 80;
    server_name example1.com www.example1.com;
    return 301 https://$server_name$request_uri;
}

3. 负载均衡配置

upstream backend {
    server backend1.example.com;
    server backend2.example.com;
}

server {
    location / {
        proxy_pass http://backend;
    }
}

配置检查与重启

  1. 测试配置语法:
sudo nginx -t
  1. 重启Nginx使配置生效:
sudo systemctl restart nginx

最佳实践

  1. 组织配置文件

    • 使用sites-availablesites-enabled目录结构
    • 每个网站一个独立的配置文件
  2. 安全考虑

    • 限制目录访问权限
    • 禁用不必要的HTTP方法
    • 配置适当的SSL/TLS设置
  3. 性能优化

    • 启用Gzip压缩
    • 配置缓存头
    • 限制客户端请求大小
  4. 日志管理

    • 为每个虚拟主机配置单独的访问日志和错误日志
    • 定期轮换日志文件

通过以上配置,您可以在一台Nginx服务器上高效地托管和管理多个网站,每个网站都有独立的配置和资源。