奋斗
努力

一台云服务器如何搭建两个网站?

云计算

在一台云服务器上搭建两个或多个网站,可以通过以下几种常见方法实现,具体步骤根据使用的Web服务器软件(如Nginx、Apache)有所不同:


方法1:基于域名的虚拟主机(推荐)

适用场景:两个网站使用不同的域名(如 site1.comsite2.com)。
原理:通过配置Web服务器,根据访问的域名自动分发到不同的网站目录。

以Nginx为例

  1. 创建网站目录
    为每个网站创建独立的目录,存放网站文件:

    sudo mkdir -p /var/www/site1
    sudo mkdir -p /var/www/site2
  2. 配置虚拟主机
    在Nginx的配置目录(通常为 /etc/nginx/conf.d/)中为每个网站创建独立的配置文件:

    • site1.conf

      server {
       listen 80;
       server_name site1.com www.site1.com;
       root /var/www/site1;
       index index.html;
      
       location / {
           try_files $uri $uri/ =404;
       }
      }
    • site2.conf(类似配置,修改域名和目录):
      server {
       listen 80;
       server_name site2.com www.site2.com;
       root /var/www/site2;
       index index.html;
      }
  3. 重启Nginx

    sudo nginx -t  # 测试配置是否正确
    sudo systemctl restart nginx
  4. 绑定域名
    在域名解析服务商处将 site1.comsite2.com 的A记录指向云服务器的IP地址。


以Apache为例

  1. 创建网站目录(同上)

  2. 配置虚拟主机
    编辑Apache的虚拟主机配置文件(如 /etc/apache2/sites-available/):

    • site1.conf
      <VirtualHost *:80>
       ServerName site1.com
       ServerAlias www.site1.com
       DocumentRoot /var/www/site1
       ErrorLog ${APACHE_LOG_DIR}/site1_error.log
       CustomLog ${APACHE_LOG_DIR}/site1_access.log combined
      </VirtualHost>
    • 类似创建 site2.conf
  3. 启用配置并重启Apache

    sudo a2ensite site1.conf site2.conf  # 启用配置
    sudo systemctl restart apache2

方法2:基于端口的虚拟主机

适用场景:无域名,通过不同端口访问(如 IP:8001IP:8002)。
配置示例(Nginx)

server {
    listen 8001;
    server_name _;
    root /var/www/site1;
}
server {
    listen 8002;
    server_name _;
    root /var/www/site2;
}

注意:需在云服务器安全组/防火墙中放行对应端口。


方法3:基于路径的虚拟主机

适用场景:同一域名下通过路径区分(如 example.com/site1example.com/site2)。
配置示例(Nginx)

server {
    listen 80;
    server_name example.com;

    location /site1 {
        alias /var/www/site1;
        index index.html;
    }

    location /site2 {
        alias /var/www/site2;
        index index.html;
    }
}

通用步骤补充

  1. 上传网站文件
    将每个网站的文件上传到对应的目录(如 /var/www/site1)。
  2. 权限设置
    确保Web服务器用户(如 www-datanginx)有权限读取文件:

    sudo chown -R www-data:www-data /var/www/site1
    sudo chmod -R 755 /var/www
  3. HTTPS支持
    使用Let’s Encrypt为域名免费配置SSL证书:

    sudo certbot --nginx -d site1.com -d www.site1.com

常见问题

  • 端口冲突:确保每个网站监听的端口不重复。
  • 权限问题:检查Web服务器用户是否有目录读取权限。
  • 域名解析延迟:新域名可能需要几分钟至几小时生效。

通过以上方法,可以在一台云服务器上高效托管多个网站。

未经允许不得转载:云服务器 » 一台云服务器如何搭建两个网站?