- 首页 >
- 问答 >
-
云计算 >
- Debian Nginx虚拟主机配置步骤
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 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
- 多站点时逐个创建配置、分别启用,并逐一测试访问