AWS Ubuntu环境下如何修改Apache根目录与Nginx HTTP站点内容分离
你修改全局httpd.conf不生效的原因是:SSL端口4443的独立虚拟主机配置在/etc/httpd/conf.d/ssl.conf中,虚拟主机内的DocumentRoot优先级高于全局配置,会覆盖全局设置。
配置步骤
1. 修改SSL虚拟主机配置
编辑/etc/httpd/conf.d/ssl.conf文件,找到<VirtualHost *:4443>(或默认的<VirtualHost _default_:4443>)配置块,修改其中的DocumentRoot参数和目录权限配置即可:
<VirtualHost *:4443> # 其他原有配置保持不变,比如SSLEngine on、证书路径、端口监听等 # 修改为你新建的独立站点目录路径,示例为/etc/https-web DocumentRoot "/etc/https-web" # 添加目录访问权限配置,避免出现403错误 <Directory "/etc/https-web"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> </VirtualHost>
2. 配置站点目录权限
Apache默认以www-data用户运行,需要给你新建的站点目录分配对应读取权限:
# 下方路径替换为你实际的站点目录路径 sudo chown -R www-data:www-data /etc/https-web sudo chmod -R 755 /etc/https-web
3. 验证配置并重启服务
首先检查配置语法是否正确:
sudo httpd -t # 如果你使用的是Ubuntu默认的apache2安装包,命令替换为 sudo apache2ctl -t
返回Syntax OK后重启服务生效:
sudo systemctl restart httpd # 如果你使用的是Ubuntu默认的apache2安装包,命令替换为 sudo systemctl restart apache2
4. 验证配置生效
执行以下命令查看所有已加载的虚拟主机配置,确认4443端口对应的根目录为你设置的路径:
sudo httpd -S # 如果你使用的是Ubuntu默认的apache2安装包,命令替换为 sudo apache2ctl -S
清除浏览器缓存后访问https://你的服务器地址:4443即可看到新目录下的站点内容。
内容的提问来源于stack exchange,提问作者Alex Ronde
相关产品推荐
相关产品推荐

