entOS 7虚拟主机配置文件通常位于/etc/httpd/conf.d/vhosts.conf或/etc/nginx/conf.d/,需手动创建并添加ServerName、DocumentRoot等参数定义站点
是CentOS7虚拟主机配置文件的详细说明:
网络配置基础
- 多IP设置方法:通过复制现有网卡配置文件(如
cp ifcfg-ens33 ifcfg-ens33:0
),修改新文件中的DEVICE=ens33:0
并分配不同IP地址,重启网络服务使生效,此方法适用于单网卡场景下的多站点部署。 - 域名解析:本机测试时可通过编辑
/etc/hosts
文件实现域名与IP映射;生产环境需依赖DNS服务器完成域名注册和解析。
Web服务器选择与配置
Nginx方案
-
基于端口的虚拟主机
- 在
/etc/nginx/conf.d/vhosts.conf
中定义多个server
块,每个块指定不同的监听端口(如8081、8082)及对应的根目录和索引文件:server { listen 8081; root /var/wwwroot/site1; index index.html; location / {} } server { listen 8082; root /var/wwwroot/site2; index index.html; location / {} }
- 访问方式为
http://IP:端口号
,例如http://192.168.204.135:8081/
。
- 在
-
基于域名的虚拟主机
- 修改配置文件中的
server_name
参数绑定域名,并确保Windows系统的hosts
文件包含相同解析记录:server { listen 80; server_name site1.test.com; root /var/wwwroot/site1; index index.html; location / {} } server { listen 80; server_name site2.test.com; root /var/wwwroot/site2; index index.html; location / {} }
- 测试时需在Windows的
C:WindowsSystem32driversetchosts
添加类似条目:168.204.135 site1.test.com
。
- 修改配置文件中的
-
基于IP的虚拟主机
- 为网卡添加别名(如
ens33:1
、ens33:2
),分配独立IP后,在Nginx中通过listen IP:端口
区分站点:server { listen 192.168.204.151:80; root /var/wwwroot/site1; index index.html; location / {} } server { listen 192.168.204.152:80; root /var/wwwroot/site2; index index.html; location / {} }
- 直接使用IP访问即可验证配置有效性。
- 为网卡添加别名(如
Apache方案
- 主配置文件调整:编辑
/etc/httpd/conf/httpd.conf
,设置DirectoryIndex index.html
以指定默认首页文件名;通过Listen
指令添加新端口或IP监听项。 - 虚拟主机专用文件:在
/etc/httpd/conf.d/
目录下创建自定义配置文件(如dhjpg.conf
),使用<VirtualHost>
容器封装每个站点的配置参数,包括文档根目录、日志路径等。 - 认证功能扩展:若需密码保护目录,可创建
.htaccess
文件并配合Require user
指令实现访问控制,同时用htpasswd
工具生成用户凭证。
目录结构与权限管理
- 站点根目录规划:建议按业务划分独立目录树,例如
/var/wwwroot/site1
、/home/user/www
等,避免跨目录污染。 - 权限控制:使用
chmod -R 755
限制目录写权限,防止未授权上传覆盖重要文件;对于用户个人站点,需确保所属用户的读写权限正确分配。
服务启动与验证
- 语法检查:Nginx执行
nginx -t
或Apache执行httpd -t
验证配置文件语法正确性。 - 防火墙处理:临时禁用SELinux和防火墙进行测试(
setenforce 0
、systemctl stop firewalld
),长期部署时应精细化放行所需端口。 - 重启服务:通过
systemctl restart nginx
或systemctl restart httpd
加载新配置,浏览器访问测试页面确认功能正常。
相关问题与解答
-
问:如何快速判断某个虚拟主机配置是否生效?
答:可以通过查看对应端口监听状态(如netstat -tunlp | grep nginx
)、检查错误日志(tail -f /var/log/nginx/error.log
),或者尝试直接访问预设的URL地址进行验证,如果配置了HTTPS,还需确认SSL证书是否成功加载。 -
问:同一台服务器上多个虚拟主机之间会相互影响性能吗?
答:理论上存在资源竞争可能,但通过合理分配CPU亲和性(如Nginx的worker_processes
参数)、限制内存使用量,以及优化数据库连接池大小等方式,可以将影响降到最低,建议对高流量站点进行独立部署或使用容器化
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/88737.html