在腾讯云轻量应用服务器(Lighthouse)上部署 Nginx,使用 Docker 是最推荐的方式。相比直接安装 Nginx 二进制包,Docker 提供了环境隔离、版本管理方便、迁移成本低以及配置与镜像解耦等优势。
以下是基于 Ubuntu/Debian 或 CentOS/RHEL 系统(腾讯云轻量默认常见镜像)的标准操作流程。整个过程分为:准备环境、拉取镜像、运行容器、配置反向X_X/静态资源、开放端口五个步骤。
第一步:登录服务器并检查环境
通过 SSH 连接到你的腾讯云轻量服务器。
ssh root@<你的服务器IP>
确保系统更新到最新状态(可选,但推荐):
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
第二步:安装 Docker 和 Docker Compose
腾讯云轻量服务器通常没有预装 Docker,需要手动安装。推荐使用官方脚本一键安装,或使用包管理器安装稳定版。
方法 A:使用官方安装脚本(最简单)
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
注意:国内用户建议使用阿里云镜像源提速下载,避免超时。上述命令中
--mirror Aliyun即指定了阿里云镜像。
方法 B:手动安装(更可控)
以 Ubuntu 为例:
sudo apt install -y docker.io docker-compose-plugin
sudo systemctl start docker
sudo systemctl enable docker
验证安装是否成功:
docker --version
docker compose version
第三步:创建项目目录结构
为了便于管理,建议将 Nginx 的配置、日志、静态文件分离存放。
mkdir -p ~/nginx-project/{conf,html,logs}
cd ~/nginx-project
conf/:存放 nginx.conf 配置文件html/:存放前端静态文件(index.html 等)logs/:存放访问日志和错误日志
第四步:编写 Nginx 配置文件
进入 conf 目录,创建 nginx.conf:
nano conf/nginx.conf
粘贴以下基础配置(可根据需求修改):
worker_processes auto;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost; # 可改为你的域名
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
}
关键点:Nginx 容器内默认的工作目录是
/usr/share/nginx/html,日志路径是/var/log/nginx/。我们需要通过-v挂载宿主机目录来映射这些路径。
第五步:放置静态文件(可选测试页)
在 html 目录下创建一个简单的测试页面:
echo "<h1>Hello from Docker Nginx on Tencent Cloud</h1>" > html/index.html
第六步:启动 Nginx 容器
使用 docker run 命令启动容器,关键参数说明如下:
docker run -d
--name my-nginx
--restart=always
-p 80:80
-v $(pwd)/conf/nginx.conf:/etc/nginx/nginx.conf:ro
-v $(pwd)/html:/usr/share/nginx/html
-v $(pwd)/logs:/var/log/nginx
nginx:latest
参数解析:
-d:后台运行--name my-nginx:容器名称--restart=always:开机自启(重要,防止服务器重启后服务丢失)-p 80:80:将宿主机的 80 端口映射到容器的 80 端口-v ...:ro:只读挂载配置文件,防止容器内误改-v ...:挂载 HTML 文件和日志目录
第七步:腾讯云控制台防火墙设置(关键!)
很多新手在此处失败,因为 Docker 内部防火墙已放行,但腾讯云轻量应用服务器的安全组未放行 80 端口。
- 登录 腾讯云控制台
- 进入 轻量应用服务器 -> 选择你的实例
- 点击 防火墙 标签页
- 添加规则:
- 方向:入方向
- 协议类型:TCP
- 端口范围:80
- 授权对象:0.0.0.0/0
- 策略:允许
⚠️ 如果你后续要启用 HTTPS(443 端口),也需在此处放行 443 端口。
第八步:验证部署
打开浏览器,访问 http://<你的服务器IP>,应看到 “Hello from Docker Nginx on Tencent Cloud” 页面。
也可通过命令行验证:
curl http://localhost
进阶优化建议
1. 使用 Docker Compose 管理(推荐生产环境)
随着项目复杂化(如增加 PHP-FPM、MySQL、SSL 证书等),单条 docker run 难以维护。建议使用 docker-compose.yml。
在项目根目录创建 docker-compose.yml:
version: '3'
services:
nginx:
image: nginx:latest
container_name: my-nginx
restart: always
ports:
- "80:80"
volumes:
- ./conf/nginx.conf:/etc/nginx/nginx.conf:ro
- ./html:/usr/share/nginx/html
- ./logs:/var/log/nginx
networks:
- webnet
networks:
webnet:
driver: bridge
然后执行:
docker compose up -d
2. 配置 HTTPS(Let’s Encrypt + Certbot)
若需支持 HTTPS,可额外运行一个 certbot 容器获取证书,并将证书挂载到 Nginx 容器中。
3. 性能调优
腾讯云轻量服务器配置有限,建议在 nginx.conf 中调整:
worker_processes auto; # 自动匹配 CPU 核心数
worker_rlimit_nofile 65535;
并在系统层面调整文件描述符限制:
# /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535
常见问题排查
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 访问 IP 显示 “Connection refused” | 腾讯云防火墙未放行 80 端口 | 去控制台防火墙添加 TCP 80 入站规则 |
| 显示 “Welcome to nginx!” 默认页 | 挂载的 html 目录为空或路径错误 | 检查 $(pwd)/html 下是否有 index.html,且权限正确 |
| 容器启动后立即退出 | 配置文件语法错误 | 查看日志:docker logs my-nginx |
| 无法写入日志文件 | 权限不足 | 确保宿主机 logs 目录有写权限,或 chmod 777 测试 |
总结
在腾讯云轻量服务器上部署 Nginx via Docker 的核心流程是:
- 安装 Docker(推荐阿里云镜像源)
- 规划目录结构(conf/html/logs)
- 编写 nginx.conf
- 运行容器并映射端口
- 务必在腾讯云控制台防火墙放行 80 端口
这种方式具备高可移植性,未来如需迁移至其他云厂商或本地服务器,只需复制整个 nginx-project 目录即可无缝切换。
CLOUD云枢