CentOS 7云服务器部署微服务:Docker与Nginx实践
文章分类:售后支持 /
创建时间:2026-01-02
CentOS 7云服务器部署微服务:Docker与Nginx实践
前期准备
在云服务器上完成CentOS 7系统安装后,需先搭建Docker和Nginx运行环境。Docker作为容器化工具(通过轻量级虚拟化技术打包应用及依赖),能实现微服务的跨环境部署;Nginx则用于反向代理,对外提供服务入口。
安装Docker的具体步骤如下:首先添加Docker官方仓库,再通过yum包管理器安装。执行命令:
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io
安装完成后启动Docker服务并设置开机自启:
sudo systemctl start docker
sudo systemctl enable docker
接着安装Nginx。作为高性能Web服务器,Nginx在反向代理场景中表现优异。执行命令:
sudo yum install nginx
同样启动服务并设置自启:
sudo systemctl start nginx
sudo systemctl enable nginx
微服务的Docker化
以Python Flask框架开发的简单Web服务为例,需将其打包为Docker镜像以实现容器化运行。首先在项目根目录创建Dockerfile,内容如下:
FROM python:3.9
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]
Dockerfile中,`FROM python:3.9`指定基础镜像,`WORKDIR`设置工作目录,`COPY`复制依赖文件和项目代码,`RUN`安装依赖,`CMD`定义容器启动命令。
构建镜像时执行:
docker build -t my-microservice:1.0 .
其中`-t`参数为镜像命名打标签。镜像构建完成后,运行容器并映射端口:
docker run -d -p 5000:5000 my-microservice:1.0
`-d`表示后台运行,`-p 5000:5000`将容器5000端口映射到云服务器5000端口,确保外部可访问。
Nginx配置
为将微服务暴露至公网,需通过Nginx配置反向代理,将80端口请求转发至本地5000端口。首先编辑Nginx主配置文件:
sudo nano /etc/nginx/nginx.conf
在`http`块内添加server配置:
server {
listen 80;
server_name your_domain_or_ip;
location / {
proxy_pass http://localhost:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
`listen 80`指定监听端口,`server_name`填写云服务器公网IP或已绑定的域名,`proxy_pass`定义转发目标地址,`proxy_set_header`传递原始请求头信息。
配置完成后需重载Nginx使修改生效:
sudo systemctl reload nginx
部署与验证
确认Docker容器和Nginx服务均正常运行后,通过浏览器访问云服务器公网IP或域名。若页面显示微服务的预期响应内容(如Flask服务的"Hello World"),则说明部署成功。
通过Docker容器化微服务与Nginx反向代理的组合,可显著提升微服务的部署效率和环境一致性。这种方案既简化了依赖管理,又通过反向代理增强了服务的可维护性,是云服务器上微服务部署的经典实践。
工信部备案:苏ICP备2025168537号-1