温馨提示×

Debian Nginx虚拟主机配置步骤

小樊
42
2025-11-22 07:16:21
栏目: 云计算

Debian 上配置 Nginx 虚拟主机

一 准备与安装

  • 更新索引并安装 Nginx:
    • sudo apt update
    • sudo apt install nginx
  • 启动并设置开机自启:
    • sudo systemctl start nginx
    • sudo systemctl enable nginx
  • 防火墙放行(如使用 UFW):
    • sudo ufw allow ‘Nginx Full’

二 创建站点目录与示例页面

  • 创建目录(以域名 example.com 为例):
    • sudo mkdir -p /var/www/example.com/html
  • 设置权限(Nginx 通常以 www-data 运行):
    • sudo chown -R www-data:www-data /var/www/example.com
    • sudo chmod -R 755 /var/www/example.com
  • 写入测试页:
    • echo “

      Welcome to example.com

      ” | sudo tee /var/www/example.com/html/index.html

三 配置虚拟主机文件

  • 新建站点配置:
    • sudo nano /etc/nginx/sites-available/example.com
  • 基本 HTTP 配置示例:
    • server { listen 80; server_name example.com www.example.com; root /var/www/example.com/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } error_page 404 /404.html; location = /404.html { root /var/www/example.com/html; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/example.com/html; } }
  • 启用站点(创建符号链接):
    • sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/

四 检查与生效

  • 语法检查:
    • sudo nginx -t
  • 重新加载使配置生效:
    • sudo systemctl reload nginx

五 DNS 解析与测试及进阶

  • DNS 与连通性
    • 在域名解析商处添加 A 记录 指向服务器公网 IP
    • 本地测试可用 /etc/hosts 临时映射:
      • echo “YOUR_SERVER_IP example.com www.example.com” | sudo tee -a /etc/hosts
    • 访问测试:http://example.com 与 http://www.example.com
  • PHP 支持(可选,LNMP)
    • 安装 PHP 与常用扩展(以 PHP 7.4 FPM 为例):
      • sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
    • 站点配置中增加 PHP 处理(确保 fastcgi-php.conf 存在,路径按系统实际调整):
      • location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
      • location ~ /.ht { deny all; }
    • 重载 Nginx:sudo systemctl reload nginx
  • 常见问题与建议
    • 确保 server_name 与访问域名完全匹配(含或不含 www)
    • 修改配置后务必先执行 nginx -t,再 reload
    • 目录权限与属主建议固定为 www-data:www-data,权限 755
    • 多站点时逐个创建配置、分别启用,并逐一测试访问

0