插件窝 干货文章 CentOS搭建web服务器的域名绑定与虚拟主机配置技巧

CentOS搭建web服务器的域名绑定与虚拟主机配置技巧

example com Nginx sudo 478    来源:    2025-04-12

CentOS Web服务器域名绑定与虚拟主机配置指南

一、准备工作

  1. 环境确认

    • 已安装CentOS 7/8
    • 已安装Apache/Nginx(根据需求选择)
    • 具有root或sudo权限
  2. 必要软件安装

    # Apache
    sudo yum install httpd
    
    # Nginx (EPEL仓库)
    sudo yum install epel-release
    sudo yum install nginx
    

二、Apache配置虚拟主机

1. 基本配置步骤

  1. 创建网站目录

    sudo mkdir -p /var/www/example.com/public_html
    sudo chown -R apache:apache /var/www/example.com/public_html
    sudo chmod -R 755 /var/www
    
  2. 创建虚拟主机配置文件

    sudo vi /etc/httpd/conf.d/example.com.conf
    
  3. 配置文件内容示例

    <VirtualHost *:80>
       ServerAdmin admin@example.com
       ServerName example.com
       ServerAlias www.example.com
       DocumentRoot /var/www/example.com/public_html
       ErrorLog /var/log/httpd/example.com-error.log
       CustomLog /var/log/httpd/example.com-access.log combined
    
       <Directory /var/www/example.com/public_html>
           Options Indexes FollowSymLinks
           AllowOverride All
           Require all granted
       </Directory>
    </VirtualHost>
    

2. 高级技巧

  1. 多域名指向同一站点

    ServerAlias www.example.com example.net www.example.net
    
  2. 基于IP的虚拟主机

    <VirtualHost 192.168.1.1:80>
       # 配置内容
    </VirtualHost>
    
  3. HTTPS配置

    <VirtualHost *:443>
       ServerName example.com
       SSLEngine on
       SSLCertificateFile /path/to/cert.pem
       SSLCertificateKeyFile /path/to/key.pem
       SSLCertificateChainFile /path/to/chain.pem
       # 其他配置
    </VirtualHost>
    

三、Nginx配置虚拟主机

1. 基本配置步骤

  1. 创建网站目录

    sudo mkdir -p /var/www/example.com/html
    sudo chown -R nginx:nginx /var/www/example.com/html
    sudo chmod -R 755 /var/www
    
  2. 创建虚拟主机配置文件

    sudo vi /etc/nginx/conf.d/example.com.conf
    
  3. 配置文件内容示例

    server {
       listen 80;
       server_name example.com www.example.com;
    
       root /var/www/example.com/html;
       index index.html index.htm;
    
       access_log /var/log/nginx/example.com.access.log;
       error_log /var/log/nginx/example.com.error.log;
    
       location / {
           try_files $uri $uri/ =404;
       }
    }
    

2. 高级技巧

  1. 负载均衡配置

    upstream backend {
       server backend1.example.com;
       server backend2.example.com;
    }
    
    server {
       location / {
           proxy_pass http://backend;
       }
    }
    
  2. HTTP重定向到HTTPS

    server {
       listen 80;
       server_name example.com www.example.com;
       return 301 https://$server_name$request_uri;
    }
    
  3. Gzip压缩

    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    

四、DNS配置与测试

  1. DNS记录设置

    • A记录将域名指向服务器IP
    • 可选CNAME设置www别名
  2. 本地hosts测试

    sudo vi /etc/hosts
    # 添加
    192.168.1.1 example.com www.example.com
    
  3. 配置检查

    # Apache
    sudo apachectl configtest
    
    # Nginx
    sudo nginx -t
    

五、常见问题解决

  1. 403 Forbidden错误

    • 检查目录权限
    • 确认SELinux状态或设置正确上下文 bash sudo chcon -R -t httpd_sys_content_t /var/www/example.com
  2. 域名无法解析

    • 检查DNS设置
    • 使用dig example.comnslookup example.com测试
  3. 端口冲突

    • 检查端口占用情况 bash sudo netstat -tulnp | grep :80
  4. 日志分析

    • 实时查看访问日志 bash sudo tail -f /var/log/httpd/example.com-access.log

六、性能优化建议

  1. 启用缓存

    • Apache: mod_expires
    • Nginx: proxy_cache
  2. 启用HTTP/2

    • 需要HTTPS支持
  3. 资源压缩

    • 启用gzip/brotli压缩
  4. 连接优化

    • 调整KeepAlive设置
    • 优化worker进程数

按照以上步骤配置完成后,重启相应服务即可生效:

# Apache
sudo systemctl restart httpd

# Nginx
sudo systemctl restart nginx

记得设置服务开机自启:

sudo systemctl enable httpd
# 或
sudo systemctl enable nginx