要在腾讯云服务器上实现域名与端口的映射,您需要通过 Nginx 反向代理来实现。 以下是详细步骤:
一、准备环境
1、确保网站正常运行
确认程序已启动:www.xxxxx.com 运行在 8080 端口(可通过 http://IP:8080 访问)。
2、开放安全组端
登录腾讯云控制台 → 云服务器 → 安全组 → 配置规则。
开放 80(HTTP)、443(HTTPS)端口(供外部访问域名)。
确保 8080 端口已开放(仅需本地访问,无需公网开放)。
二、安装并配置 Nginx
1、安装 Nginx
$ sudo apt update
$ sudo apt install nginx -y2、创建配置文件
(1)进入 Nginx 配置目录
$ cd /etc/nginx/sites-available(2)为 halo.elvbyte.com 创建配置
$ sudo vim xxxxx.conf内容如下:
server {
listen 80;
# 绑定域名
server_name www.xxxxx.com;
location / {
# 转发到本机 8080 端口
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}3、启用配置
将配置文件链接到 sites-enabled:
$ sudo ln -s /etc/nginx/sites-available/xxxxx.conf /etc/nginx/sites-enabled/4、测试并重启 Nginx
(1)检查配置是否正确
$ sudo nginx -t(2)重启生效
$ sudo systemctl restart nginx三、配置域名解析
1、登录域名注册商控制台
(1)为域名添加 A 记录
记录类型:A
主机记录:www
记录值:云服务器公网 IP
TTL:默认值(通常 600 秒)四、访问以下地址测试
http://www.xxxxx.com → 应显示 8080 端口的网站
五、HTTPS 配置(可选)
1、免费获取 SSL 证书
$ sudo apt update
$ sudo apt install certbot python3-certbot-nginx -y
$ sudo nginx -t
$ sudo systemctl reload nginx
$ sudo certbot --nginx -d www.xxxxx.com按提示操作后,Nginx 会自动配置 HTTPS 并强制跳转 HTTP → HTTPS。
2、使用云服务器商证书
(1)下载证书
请在 SSL 证书控制台 中选择您需要安装的证书并单击下载。
(2)证书解压
在弹出的 “证书下载” 窗口中,服务器类型选择 Nginx,单击下载并解压缩 cloud.tencent.com 证书文件包到本地目录。 解压缩后,可获得相关类型的证书文件。其中包含 cloud.tencent.com_nginx 文件夹:
① 文件夹名称:cloud.tencent.com_nginx
② 文件夹内容:
cloud.tencent.com_bundle.crt 证书文件
cloud.tencent.com_bundle.pem 证书文件
cloud.tencent.com.key 私钥文件
cloud.tencent.com.csr CSR 文件
(3)上传证书
将已获取到的 cloud.tencent.com_bundle.crt 证书文件和 cloud.tencent.com.key 私钥文件从本地目录拷贝到 Nginx 服务器的 /etc/nginx 目录下。
(4)配置证书
编辑 Nginx 根目录下的 nginx.conf 文件。
server {
#SSL 默认访问端口号为 443
listen 443 ssl;
#请填写绑定证书的域名
server_name cloud.tencent.com;
#请填写证书文件的相对路径或绝对路径
ssl_certificate cloud.tencent.com_bundle.crt;
#请填写私钥文件的相对路径或绝对路径
ssl_certificate_key cloud.tencent.com.key;
ssl_session_timeout 5m;
#请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#请按照以下协议配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
location / {
#网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
#例如,您的网站主页在 Nginx 服务器的 /etc/www 目录下,则请修改 root 后面的 html 为 /etc/www。
root html;
index index.html index.htm;
}
}
server {
listen 80;
#请填写绑定证书的域名
server_name cloud.tencent.com;
#把http的域名请求转成https
return 301 https://$host$request_uri;
}(5)验证配置
nginx -t(6)重启生效
sudo systemctl restart nginx六、常见问题排查
1、Nginx 报错
运行 sudo nginx -t 检查语法错误。
查看日志:tail -f /var/log/nginx/error.log。
2、端口不同
检查服务是否监听本地端口:
# 确认 8080 端口被占用
$ netstat -tunlp | grep 80803、域名无法解析
使用 ping www.xxxxx.com 检查是否解析到 TP。
完成以上步骤后,您的域名即可通过 80 端口访问后端服务,无需暴露 8080 端口到公网,提升安全性。