一、前言
有时候我们为了节省成本,通过将多个网站部署在同一台服务器上,可以减少硬件和基础设施的成本。可以共享服务器资源,而不需要为每个网站单独购买和维护独立的服务器。以下内容简单介绍一下,在一台服务器上部署两个网站的方法,本文以部署两个博客程序为例。
二、博客程序部署
可以参考:https://www.tycp.xyz/37.html,这里有利用Docker搭建博客程序的详细说明。下面再补充一下Docker和Docker Compose的部署方法。
1、安装 Docker:
按照官方文档的说明安装 Docker,以下是一些常用操作系统的安装示例。对于 Ubuntu 或 Debian 系统,使用以下命令:
sudo apt update
sudo apt install docker.io
对于 CentOS 系统,使用以下命令:
sudo yum install docker
运行以下命令验证 Docker 是否正确安装并能正常工作,如果显示 Docker 的版本信息,表示安装成功。
sudo docker version
2、安装 Docker Compose:
下载 Docker Compose:
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
赋予二进制文件可执行权限:
sudo chmod +x /usr/local/bin/docker-compose
创建符号链接:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
运行以下命令验证 Docker Compose 是否正确安装并能正常工作,如果显示 Docker Compose 的版本信息,表示安装成功。
docker-compose version
三、安装部署Nginx
1、在服务器上打开终端或命令提示符。根据您的操作系统类型,使用适当的包管理器执行安装命令。对于 Ubuntu 或 Debian 系统,使用 apt 包管理器。
sudo apt update
sudo apt install nginx
2、对于 CentOS系统,使用 yum 包管理器。
sudo yum install nginx
四、配置Docker Compose
1、创建项目目录,在服务器上选择一个合适的位置创建一个新的目录,用于存放 Docker Compose 配置文件和相关文件。
mkdir docker-project,这个目录名可自定义。
2、创建 Docker Compose 文件,在项目目录中创建一个名为 docker-compose.yml 的文件。
3、在 docker-compose.yml 文件中添加以下内容来定义一个自定义网络。
networks:
mynetwork:
driver: bridge
4、配置第一个网站(111.com)在 docker-compose.yml 文件中添加以下内容来配置第一个网站。
version: '3'
services:
111-website:
image: nginx
container_name: 111-website
restart: always
networks:
- mynetwork
volumes:
- ./111:/usr/share/nginx/html
ports:
- 80:80
将 ./111 替换为你第一个网站代码的目录路径。
5、配置第二个网站(222.com),在 docker-compose.yml 文件中添加以下内容来配置第二个网站。
version: '3'
services:
222-website:
image: nginx
container_name: 222-website
restart: always
networks:
- mynetwork
volumes:
- ./222:/usr/share/nginx/html
将 ./222 替换为你第二个网站代码的目录路径,这里不需要指定端口号。
6、配置 Nginx 反向代理,在 docker-compose.yml 文件中添加以下内容来配置 Nginx 反向代理。
version: '3'
services:
nginx-proxy:
image: nginx
container_name: nginx-proxy
restart: always
networks:
- mynetwork
ports:
- 80:80
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
7、配置 Nginx,打开 Nginx 配置文件以进行修改。对于 Ubuntu 或 Debian 系统,配置文件位于 /etc/nginx/nginx.conf。
对于 CentOS 或 RHEL 系统,配置文件位于 /etc/nginx/nginx.conf。在该配置中,我们定义了一个 Nginx 服务器块,监听默认的 80 端口,并将请求代理到名为 222-website 的容器的 80 端口。
编辑配置文件并添加以下内容。
events {}
http {
server {
listen 80;
server_name 222.com;
location / {
proxy_pass http://222-website:80;
}
}
}
将请求代理到名为 222-website 的容器的 80 端口,也就是将第二个网站的代理到80端口。
8、启动启动容器和Nginx服务。在项目目录中打开终端或命令提示符,并运行以下命令启动容器。
docker-compose up -d
启动Nginx服务。
sudo systemctl start nginx
sudo systemctl enable nginx
按照以上步骤配置和启动 Docker Compose,使用 Nginx 反向代理实现通过222.com访问第二个网站。确保每个服务的容器名称、镜像和目录路径等设置正确无误。根据需要,您可以进一步调整 Nginx 配置以满足您的需求。
请注意,为了使域名能够通过 DNS 解析指向您的服务器 IP 地址,您需要正确配置您的 DNS 服务器或域名注册商的 DNS 设置。