当前位置:首页 > 行业动态 > 正文

httpd配置域名

在httpd.conf中通过` 指令配置域名,设置ServerName`对应域名,指定文档根目录及权限,确保DNS解析指向服务器IP,重启 httpd服务

Apache(httpd)域名配置基础

Apache通过VirtualHost指令实现多域名管理,核心配置文件为httpd.confapache2.conf,实际配置常分散在conf.d/sites-available/目录。

httpd配置域名  第1张

配置文件路径

系统类型 主配置文件 常用目录
Linux /etc/httpd/conf/httpd.conf /etc/httpd/conf.d/
Debian/Ubuntu /etc/apache2/apache2.conf /etc/apache2/sites-available/
Windows C:Program FilesApacheconfhttpd.conf C:Program FilesApacheconfextra

基础虚拟主机配置示例

<VirtualHost :80>
    ServerName www.example.com
    DocumentRoot /var/www/example
    <Directory /var/www/example>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

多域名配置方案

基于IP的虚拟主机

配置特点 适用场景 示例
依赖IP地址 多IP服务器 <VirtualHost 192.168.1.100:80>...</VirtualHost>
无需修改Hosts 独立IP站点 需为每个域名分配不同IP

基于端口的虚拟主机

配置特点 适用场景 示例
同一IP不同端口 测试环境/特殊需求 <VirtualHost :8080>...</VirtualHost>
需手动指定端口 非常规业务部署 访问时需输入http://example.com:8080

基于名称的虚拟主机(推荐)

配置特点 适用场景 示例
共享IP地址 主流方案 ServerName www.example.com
需DNS解析 生产环境 需确保域名正确解析到服务器IP

SSL证书配置

证书文件存放规范

/etc/ssl/certs/      # 存放PEM格式证书文件
/etc/ssl/private/    # 存放私钥文件
/etc/ssl/cert.pem    # 默认证书(Debian系)

完整HTTPS配置示例

<VirtualHost :443>
    ServerName www.secure-site.com
    DocumentRoot /var/www/secure-site
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/secure-site.pem
    SSLCertificateKeyFile /etc/ssl/private/secure-site.key
    <Directory /var/www/secure-site>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

重定向配置

HTTP强制跳转HTTPS

<VirtualHost :80>
    ServerName www.force-https.com
    Redirect permanent / https://www.force-https.com/
</VirtualHost>

URL标准化重定向

<VirtualHost :80>
    ServerName www.normalize.com
    DocumentRoot /var/www/normalize
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www. [NC]
    RewriteRule ^(.)$ https://www.%{HTTP_HOST}/$1 [L,R=301]
</VirtualHost>

配置验证与调试

操作命令 作用说明
apachectl configtest 验证配置文件语法
systemctl restart httpd 重启服务(Linux)
htaccess-enabled 检查.htaccess生效状态
curl -I http://domain.com 查看HTTP响应头

常见问题与解答

Q1:如何配置多个域名指向同一文档根目录?
A1:使用相同DocumentRoot并设置不同的ServerName

<VirtualHost :80>
    ServerName site1.com
    DocumentRoot /var/www/shared
</VirtualHost>
<VirtualHost :80>
    ServerName site2.com
    DocumentRoot /var/www/shared
</VirtualHost>

Q2:Let’s Encrypt证书如何自动续期?
A2:使用Certbot工具配置定时任务:

  1. 安装Certbot:apt install certbot python3-certbot-apache
  2. 获取证书:certbot --apache -d domain.com
  3. 添加定时任务:/usr/bin/certbot renew --quiet
0