下面以 Debian / Ubuntu 上的 Apache2 为例,说明如何配置 虚拟主机(Virtual Host),常用于一台服务器跑多个网站。
假设你有一个站点:example.com
sudo mkdir -p /var/www/example.com/public_html
sudo chown -R www-data:www-data /var/www/example.com
sudo chmod -R 755 /var/www/example.com
创建测试页面:
echo "<h1>example.com works</h1>" | sudo tee /var/www/example.com/public_html/index.html
Apache 虚拟主机配置在:
/etc/apache2/sites-available/
新建配置文件:
sudo nano /etc/apache2/sites-available/example.com.conf
内容示例:
<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
<Directory /var/www/example.com/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/example.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
</VirtualHost>
sudo a2ensite example.com.conf
如果你有默认站点,可以禁用:
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
修改本地 hosts 文件(仅本机生效):
Linux / macOS
sudo nano /etc/hosts
添加:
127.0.0.1 example.com
浏览器访问:
http://example.com
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d example.com -d www.example.com
为每个域名创建不同的 .conf 文件并 a2ensite 即可。
<VirtualHost *:8080>
并在 /etc/apache2/ports.conf 中监听端口。
如果你说的是 “虚拟目录” 或 “基于端口/基于IP的虚拟主机”,可以告诉我,我给你对应配置。