Debian虚拟主机域名怎么设置
导读:Debian 虚拟主机域名设置全流程 一 准备与DNS解析 准备网站目录与测试页 Apache 常用目录:/var/www/example.com Nginx 常用目录:/var/www/example.com 创建测试页: sudo...
Debian 虚拟主机域名设置全流程
一 准备与DNS解析
- 准备网站目录与测试页
- Apache 常用目录:/var/www/example.com
- Nginx 常用目录:/var/www/example.com
创建测试页:
sudo mkdir -p /var/www/example.com
echo “Welcome to example.com
” | sudo tee /var/www/example.com/index.html
- 配置 DNS 解析(域名注册商控制台)
- 将 example.com 与 www.example.com 添加 A 记录 指向服务器公网 IPv4;如需 IPv6,再添加 AAAA 记录。
- 等待解析生效(取决于 TTL)。可用命令验证:
dig +short example.com A
dig +short www.example.com A
nslookup example.com
以上完成域名到服务器 IP 的指向,为后续虚拟主机配置打好基础。
二 使用 Apache 配置虚拟主机
- 安装与启用模块
sudo apt update & & sudo apt install apache2 -y
sudo a2enmod rewrite - 创建站点配置
sudo nano /etc/apache2/sites-available/example.com.conf
示例配置:
< VirtualHost *:80>
ServerAdmin webmaster@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com
< Directory /var/www/example.com>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
ErrorLog ${ APACHE_LOG_DIR} /error.log
CustomLog ${ APACHE_LOG_DIR} /access.log combined
- 启用站点与重载
sudo a2ensite example.com.conf
sudo a2dissite 000-default.conf # 如不需要默认站点
sudo apachectl configtest & & sudo systemctl reload apache2 - 可选 HTTPS(Let’s Encrypt)
sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache -d example.com -d www.example.com
以上完成 Apache 基于域名的虚拟主机配置,并支持一键启用 HTTPS。
三 使用 Nginx 配置虚拟主机
- 安装与创建站点配置
sudo apt update & & sudo apt install nginx -y
sudo nano /etc/nginx/sites-available/example.com
示例配置:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
location = /404.html { root /var/www/example.com; }
error_page 500 502 503 504 /50x.html;
location = /50x.html { root /var/www/example.com; }
} - 启用站点与重载
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t & & sudo systemctl reload nginx - 可选 HTTPS(Let’s Encrypt)
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d example.com -d www.example.com
以上完成 Nginx 基于域名的虚拟主机配置,并支持一键启用 HTTPS。
四 防火墙放行与常见问题排查
- 防火墙放行
- UFW:sudo ufw allow ‘Apache Full’(或 ‘Nginx Full’)
- firewalld:sudo firewall-cmd --permanent --add-service=http --add-service=https & & sudo firewall-cmd --reload
- 常见问题快速排查
- 解析是否正确:dig +short example.com A,确认返回服务器 IP。
- 配置语法是否正确:Apache 用 sudo apachectl configtest;Nginx 用 sudo nginx -t。
- 服务是否运行:sudo systemctl status apache2 或 sudo systemctl status nginx。
- 查看错误日志:
- Apache:sudo tail -f /var/log/apache2/error.log
- Nginx:sudo tail -f /var/log/nginx/error.log
- 确保域名与配置中的 ServerName/ServerAlias 或 server_name 完全一致(含 www 与否)。
以上步骤可快速定位域名无法访问、配置不生效等常见问题。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian虚拟主机域名怎么设置
本文地址: https://pptw.com/jishu/755329.html
