一、准备工作:打好基础

婉秋

Linux服务器搭建多个网站,一篇搞定!

作为个人开发者或小型站长,用一台Linux服务器同时运行多个网站,既能节省成本又能高效利用资源。今天就带你快速掌握虚拟主机配置技巧,让多个网站在同一台服务器上“和平共处”。

一、准备工作:打好基础

首先确保服务器已安装Linux系统(如Ubuntu/CentOS),并完成以下步骤:

  1. 安装Nginx:主流Web服务器,性能稳定且配置简单。
    • Ubuntu:sudo apt install nginx
    • CentOS:sudo yum install nginx
  2. 域名解析:将所有需要搭建的网站域名(如site1.comsite2.com)解析到服务器公网IP。
  3. 开放端口:防火墙允许80(HTTP)和443(HTTPS)端口:
    • sudo ufw allow 80/tcp && sudo ufw allow 443/tcp(Ubuntu)
    • sudo firewall-cmd --permanent --add-port=80/tcp && sudo firewall-cmd --reload(CentOS)

二、核心操作:配置Nginx虚拟主机

Nginx通过server块区分不同网站请求,每个网站对应一个独立配置文件:

一、准备工作:打好基础

1. 创建网站根目录

为每个网站建立独立文件夹存放代码:

sudo mkdir -p /var/www/site1.com/public_html  
sudo mkdir -p /var/www/site2.com/public_html  

上传网站文件到对应目录(如index.htmlindex.php),并设置权限:

sudo chown -R www-data:www-data /var/www/site1.com/public_html  
sudo chmod -R 755 /var/www/site1.com/public_html  

2. 编写虚拟主机配置

Nginx配置文件通常存放在/etc/nginx/conf.d/目录,为每个网站新建配置文件:

  • 新建site1.com.conf

    server {
      listen 80;
      server_name site1.com www.site1.com; # 绑定域名
      root /var/www/site1.com/public_html; # 网站根目录
      index index.html index.php; # 默认首页
    
      # PHP解析(若需运行动态网站)
      location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/run/php/php7.4-fpm.sock; # 适配PHP版本
      }
    }
  • 同理新建site2.com.conf,修改server_nameroot路径即可。

3. 验证并生效配置

检查配置是否有误:

sudo nginx -t  

若显示“test is successful”,重启Nginx生效:

sudo systemctl restart nginx  

三、进阶优化:配置HTTPS(必做)

现在网站默认需HTTPS,用Let’s Encrypt免费证书快速配置:

  1. 安装Certbot:
    sudo apt install certbot python3-certbot-nginx # Ubuntu
  2. 自动配置证书:
    sudo certbot --nginx -d site1.com -d www.site1.com  

    Certbot会自动修改Nginx配置,将HTTP重定向到HTTPS,搞定!

四、常见问题排查

  • Nginx启动失败:用nginx -t检查配置语法错误;
  • 网站无法访问:确认目录权限(www-data用户是否可读)、防火墙端口是否开放;
  • 域名冲突:确保每个server_name唯一,避免重复绑定。

通过虚拟主机技术,一台服务器就能轻松承载多个网站。只要掌握配置逻辑,后续新增网站只需复制配置文件修改域名即可。赶紧动手试试,让你的服务器发挥最大价值吧!

文章版权声明:除非注明,否则均为婉秋博客原创文章,转载或复制请以超链接形式并注明出处。

目录[+]