在数字时代,拥有多个在线业务或项目已成为常态,对于许多初创企业或个人开发者而言,预算有限,可能无法为每一个项目单独购买一台服务器,幸运的是,通过一些技巧和配置,可以在同一台服务器上运行多个网站,并通过不同的域名进行访问,本文将详细介绍如何在单台服务器上搭建两个网站,并分别通过不同域名进行浏览。
云服之家,国内最专业的云服务器虚拟主机域名商家信息平台
准备工作
在开始之前,请确保您已经具备以下条件:
- 一台运行中的服务器:可以是物理服务器或云服务器(如AWS、阿里云、腾讯云等)。
- 域名:已注册的两个不同域名,或者为现有域名添加子域名。
- SSH访问权限:能够远程登录到服务器。
- :准备好两个网站的内容,可以是静态网页、动态应用等。
- 服务器操作系统:本文示例基于Linux系统(如Ubuntu、CentOS等)。
安装Web服务器软件
需要在服务器上安装Web服务器软件,常用的有Apache、Nginx等,这里以Nginx为例进行说明。
-
更新系统软件包:
sudo apt update sudo apt upgrade -y
-
安装Nginx:
sudo apt install nginx -y
-
启动并设置Nginx开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
配置Nginx实现多站点
需要配置Nginx以支持多个站点,假设我们有两个网站:example1.com
和 example2.com
。
-
创建站点目录和配置文件:
sudo mkdir -p /var/www/example1.com/html sudo mkdir -p /var/www/example2.com/html cd /etc/nginx/sites-available/ sudo touch example1.conf example2.conf
-
编辑配置文件: 打开
example1.conf
并添加以下内容:server { listen 80; server_name example1.com www.example1.com; root /var/www/example1.com/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
同理,打开
example2.conf
并添加以下内容:server { listen 80; server_name example2.com www.example2.com; root /var/www/example2.com/html; index index.html index.htm; location / { try_files $uri $uri/ =404; } }
注意:每个站点应使用不同的
server_name
和root
目录。 -
创建符号链接到sites-enabled目录:
sudo ln -s /etc/nginx/sites-available/example1.conf /etc/nginx/sites-enabled/ sudo ln -s /etc/nginx/sites-available/example2.conf /etc/nginx/sites-enabled/
这一步是为了使Nginx能够识别并加载这些配置文件。
-
测试Nginx配置是否正确:
sudo nginx -t
如果输出显示配置无误,则可以继续下一步,如果有错误,请根据提示进行修正。
-
重新加载Nginx配置:
sudo systemctl reload nginx
这样,Nginx就会根据新的配置来运行两个网站了。
域名解析与DNS设置
需要将两个域名分别解析到服务器的IP地址,这通常需要在您的域名注册商处进行DNS设置,具体步骤如下:
- 登录到您的域名注册账户(如GoDaddy、Namecheap等)。
- 找到DNS管理或域名解析设置。
- 添加两条A记录(或相应的域名解析记录),分别指向您服务器的IP地址。
example1.com
指向456.789.0
,example2.com
也指向456.789.0
,注意,这里使用的是同一个IP地址,由于Nginx会根据server_name
来区分不同的站点,因此不会发生冲突,请确保您的IP地址是公网可访问的,如果使用的是云服务器,通常会自动分配一个公网IP,如果使用的是内网服务器,则需要通过反向代理(如使用Cloudflare等CDN服务)来实现,这超出了本文的范围,为了简化说明,这里假设您已经有一个公网可访问的IP地址,完成以上步骤后,您应该能够通过在浏览器中访问http://example1.com
和http://example2.com
来分别查看两个网站的内容了,如果一切正常,您应该能够看到各自网站的首页内容,如果出现问题,请检查以下几点: 确保DNS解析已经生效(有时可能需要几小时或几小时)。 检查Nginx配置文件是否有语法错误(使用sudo nginx -t
命令检查)。 检查防火墙设置是否允许HTTP流量通过(特别是当使用云服务时)。 确保文件权限和所有权正确(Web服务器用户应能够读取站点目录中的文件),通过以上步骤和注意事项,您应该能够成功在一台服务器上搭建并访问两个网站了,如果遇到任何问题或错误消息,请仔细检查每一步的详细信息和日志输出以进行故障排除,希望本文对您有所帮助!