一台Ubuntu服务器如何同时运行五个不同网站?

刚接触服务器的小白有没有遇到过这种情况?明明想用同一个服务器搭建博客、电商平台和公司官网,结果每次访问不同域名都显示同一个页面。这时候要是有人告诉你用虚拟主机就能解决,是不是就像找到了救星?
咱们先理清楚为什么要折腾虚拟主机。想象你租了间三室一厅的房子,虚拟主机就相当于给每个房间单独装门牌号。Apache2这个老牌Web服务器,用它的虚拟主机功能就能让不同域名指向服务器上的不同文件夹。不过实际操作起来,新手可能会遇到各种坑,比如配置文件位置记不住、权限问题频发,甚至改完设置死活不生效。
先确认你已安装Apache2。在终端敲这个命令时记得用sudo提升权限:”sudo apt install apache2″。安装完成后,在浏览器输入服务器IP地址,看到”It works!”页面说明安装成功。这时候你的网站文件默认存放在/var/www/html,就像酒店的标准间,现在我们要给它改造出总统套房。
接着得创建网站目录。建议在/var/www下新建两个文件夹:一个放网站文件,另一个存日志。比如给博客建目录可以这样操作:”sudo mkdir -p /var/www/blog/public_html”。注意public_html这个命名是行业惯例,相当于网站的”前台接待处”。权限设置要特别注意,用”sudo chown -R www-data:www-data /var/www/blog”把文件夹归属权交给Apache服务账户,否则会出现403禁止访问错误。
关键步骤来了——配置虚拟主机文件。新手常犯的错误是直接修改默认配置文件,其实应该新建配置文件。到/etc/apache2/sites-available目录下,用”sudo cp 000-default.conf blog.conf”复制模板文件。编辑时重点关注三个地方:ServerName填你的域名,DocumentRoot指向刚创建的public_html目录,ErrorLog和CustomLog路径要区分不同网站。建议用nano编辑器,对小白更友好:”sudo nano blog.conf”。
改完配置要启用新设置。这时需要两个命令:先”sudo a2ensite blog.conf”激活配置,再”sudo systemctl reload apache2″重启服务。很多新手卡在这步,改完配置忘记重启服务,结果死活不生效。要是遇到问题,可以用”sudo apache2ctl configtest”检查配置文件语法,这个命令能揪出90%的配置错误。
可能你会问:用本地电脑怎么测试?修改hosts文件是个办法。在Windows系统里找到C:\Windows\System32\drivers\etc\hosts,添加”服务器IP blog.yourdomain.com”这样的映射。不过更专业的做法是申请测试域名,现在很多域名注册商都提供免费试用期。
实际配置时常见这三个坑:一是SELinux或AppArmor安全模块拦截,表现为权限正常却无法访问,这时候需要调整安全策略;二是忘记禁用默认站点,导致虚拟主机不生效,用”sudo a2dissite 000-default.conf”就能解决;三是SSL证书配置冲突,如果启用了HTTPS,每个虚拟主机都需要单独配置证书。
遇到问题时别急着重装系统。先看错误日志,位置在/var/log/apache2/目录下,里面的error.log会明确告诉你哪里出问题。比如出现”Could not reliably determine the server’s fully qualified domain name”,这其实只是个警告,不影响使用,想消除的话在/etc/apache2/apache2.conf里添加ServerName就行。
现在你应该明白,配置虚拟主机就像给服务器装多个门牌号。每个网站独立运行又互不干扰,既能节省服务器成本,又方便管理。刚开始可能会手忙脚乱,但按这个流程走下来,多试几次就熟练了。下次再遇到同事抱怨服务器资源浪费,你就可以秀一把虚拟主机配置技巧了。


相关文章:
相关推荐:




