虚拟主机(Virtual Host)是指通过在同一台服务器上托管多个网站,以便在 IP 地址相同的情况下,通过不同的域名访问不同的网站。以下是一些虚拟主机常用的命令和配置示例,主要适用于 Apache 和 Nginx 这两种常见的 Web 服务器。
Apache
1. 启用虚拟主机模块
bash
a2enmod vhost_alias
2. 创建虚拟主机配置文件
bash
sudo nano /etc/apache2/sites-available/example.com.conf
3. 虚拟主机配置示例
apache
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
4. 启用虚拟主机
bash
sudo a2ensite example.com.conf
5. 重启 Apache 服务器
bash
sudo systemctl restart apache2
6. 查看 Apache 配置语法是否正确
bash
sudo apachectl configtest
Nginx
1. 创建虚拟主机配置文件
bash
sudo nano /etc/nginx/sites-available/example.com
2. 虚拟主机配置示例
nginx
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/html;
location / {
try_files $uri $uri/ =404;
}
error_log /var/log/nginx/example.com-error.log;
access_log /var/log/nginx/example.com-access.log;
}
3. 启用虚拟主机
bash
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
4. 测试 Nginx 配置
bash
sudo nginx -t
5. 重启 Nginx 服务器
bash
sudo systemctl restart nginx
DNS 配置
1. 使用的 DNS 提供商控制面板,添加 A 记录
- 主机名(Host):@ 或 www
- 值(Value):服务器的 IP 地址
其他命令
- 查看 Apache 及 Nginx 的状态
bash
sudo systemctl status apache2
sudo systemctl status nginx
- 查看访问和错误日志
bash
tail -f /var/log/apache2/access.log
tail -f /var/log/nginx/access.log
这些命令和配置应该能够帮助你管理虚拟主机的设置和维护。根据你使用的具体 Web 服务器,适当选择和使用相应的命令。请确保在进行更改之前备份相关配置文件。
查看详情
查看详情