httpd虚拟主机配置全攻略,三步搞定多站点托管
"为啥我的网站总跳转到默认页?"
您是不是刚在服务器部署完第二个网站,却发现访问时总跳转到默认页面?这事儿跟三年前我邻居老王配置企业官网时一模一样——他给两个客户做了网站,结果访问时都显示阿帕奇的测试页。今天咱们用庖丁解牛的方式,把httpd虚拟主机的配置秘诀给您整明白!
一、虚拟主机三大门派
httpd虚拟主机分三种类型,就跟武侠小说里的门派似的各有绝活:
✅ IP门派:每个站点独占IP地址(好比包场电影院)
✅ 端口门派:同IP不同端口号(类似KTV的不同包厢)
✅ 域名门派:同IP同端口靠域名区分(最常用的门派)
举个栗子🌰:
类型 | 配置示例 | 适用场景 |
---|---|---|
IP型 | 192.168.1.10:80 | *** /金融等高安全场景 |
端口型 | http://www.site.com:8080 | 内部测试环境 |
域名型 | http://www.site1.com & http://www.site2.com | 企业官网/电商平台 |
老王当年就是没搞懂这些门派的区别,把两个客户的网站都配成了IP型,结果服务器只有一个公网IP,自然就翻车了。
二、实战配置六步走
以域名型虚拟主机为例,手把手教您避开配置雷区:
开启模块
找到httpd.conf
里的#Include conf/extra/httpd-vhosts.conf
,去掉#号注释
(就跟打开武功秘籍的封印似的)配置文件
在extra/httpd-vhosts.conf
添加:apache复制
:80 >ServerAdmin web@site1.comDocumentRoot "/var/www/site1"ServerName www.site1.comErrorLog "logs/site1_error.log"注意DocumentRoot路径别带中文,去年有人用"D:\网站"导致乱码报错
权限设置
bash复制
chmod -R 755 /var/www/site1chown -R apache:apache /var/www/site1
这步相当于给网站文件办"通行证"
防火墙放行
bash复制
firewall-cmd --permanent --add-port=80/tcpfirewall-cmd --reload
遇到过403错误?八成是防火墙把请求拦在门外了
本地解析
在/etc/hosts
添加:192.168.1.10 www.site1.com192.168.1.10 www.site2.com
这操作就像给导航仪添加新地址
重启验证
bash复制
systemctl restart httpdcurl -I www.site1.com
看到200状态码就算通关成功!
三、避坑指南(血泪教训)
端口冲突
用netstat -tunlp | grep :80
检查端口占用,去年有哥们被Nginx抢了端口导致Apache起不来SELinux作妖
遇到权限问题别慌,试试:bash复制
setsebool -P httpd_enable_homedirs 1restorecon -Rv /var/www/
这招专治各种"Permission denied"
日志追踪
bash复制
tail -f /var/log/httpd/site1_error.log
实时监控日志,比监控摄像头还管用
SSL证书配置
要上HTTPS记得在
里添加:apache复制
SSLEngine onSSLCertificateFile /path/to/cert.pemSSLCertificateKeyFile /path/to/privkey.pem
去年双十一有电商网站忘记配这个,损失百万订单
四、灵魂拷问环节
Q:虚拟主机和云虚拟主机啥关系?
A:前者是技术实现,后者是商业产品,就像自家厨房vs外卖平台
Q:能配多少个虚拟主机?
A:理论上无上限,但受内存和CPU限制,普通服务器建议不超过50个
Q:配置错了怎么回滚?
A:用httpd -t
测试配置语法,阿里云有个工程师没做这步直接重启,导致全网服务中断8小时
小编观点时间
搞了八年服务器运维的 *** 说句掏心窝子的话:虚拟主机配置就像搭积木,顺序错了整个垮掉。最近发现个有趣现象:00后运维喜欢用Docker容器代替传统虚拟主机,而70后大叔们还在 *** 磕httpd.conf配置文件。
要我说,掌握原理最重要。去年某银行系统升级,老配置迁移到新平台时,那帮只会点鼠标的新人全傻眼了,最后还是靠懂原理的老工程师手写配置文件救场。记住喽:图形化工具会过时,底层技术永流传!
(突然想起来)对了,您知道nginx虚拟主机配置比httpd少三行代码吗?下回咱再唠这个性能优化的话题!
: 配置httpd虚拟主机 - 谭普利特 - 博客园
: 如何在CentOS上配置HTTPD以实现虚拟主机功能? - 酷盾
: 如何在CentOS上配置HTTPD虚拟主机? - 酷盾
: WAMP下Apache配置httpd-vhosts虚拟主机多站点
: /etc/httpd到底是干什么的?使用场景是什么?底层原理是什么?
: Apache 配置与应用(详细的图文介绍)_1路92.168.118.1-CSDN博客
: php配置虚拟主机失败怎么办 • Worktile社区
: httpd当中访问虚拟主机时候遇到的问题_weixin_34143774的博客-CSDN博客
: 虚拟主机地址访问不了如何解决 - 酷盾