使用域名访问部署在ECS上的网站

简介: 本文为您介绍如何为网站配置域名并为域名配置HTTPS证书。

上一章节,我们完成了Open WebUI的部署流程。通过IP地址访问的方式不专业且难以记忆,本文为您介绍如何为Open WebUI配置域名并为域名配置HTTPS证书。

1. 创建域名信息模板并实名认证

根据工信部要求,在注册域名时需要填写用户信息并通过实名认证。您可以在阿里云域名控制台通过创建信息模板完成实名认证。

  1. 登录阿里云域名控制台,在左侧导航栏单击信息模板,在信息模板页面单击创建新信息模板。
  2. 根据界面提示,完成域名持有者信息填写,单击提交。
    说明:域名实名认证资料的审核通常在1个工作日内可以完成,部分可能需要3~5个工作日,请您耐心等待审核结果。

2. 购买域名

注册域名前您需要根据实际需求,提前规划好域名持有者、域名名称等信息。

  1. 登录阿里云万网,在阿里云域名注册页面的搜索框中,搜索您想要注册的域名以及域名后缀,单击查询域名。
  2. 若域名查询结果为未注册,单击立即注册
  3. 在订单信息页面,选择域名的购买年限和域名所有者类型,单击立即购买。

3. 域名备案

域名注册成功后,您需要将域名解析至您的服务器后才可提供对外服务。当您的网站托管在中国内地服务器上时,必须按照备案主体所在省市的管局规则先进行ICP备案,才能对外提供服务。

  1. 备案前准备。了解ICP备案所在地域的管局规则,根据管局要求准备ICP备案的材料。详细信息请在各地区管局备案规则中单击对应省份查看。
  2. 提交ICP备案。在阿里云ICP代备案管理系统,根据界面提示,按要求填写主办单位信息和网站/App信息等,系统将根据您所填信息,自动校验是否可以进行ICP备案。
  3. 备案审核,审核分为阿里云初审和管局审核。在阿里云初审过程中阿里云审核专员会致电核实备案的真实性,若初审通过会收到工信部短信核验,根据短信内容完成短信核验,ICP备案信息将提交至管局审核。若备案成功,您会收到短信和邮件通知。

4. 获取SSL证书

为了确保网站安全,您可以申请SSL证书,以实现通过HTTPS加密协议安全访问网站。本文以个人测试证书(免费版)为例。

4.1 创建SSL证书

  1. 领取个人测试证书(免费版)。
    登录阿里云数字证书管理服务(原SSL证书),在左侧导航栏选择证书管理 > SSL证书管理。在个人测试证书(原免费证书)页签,单击立即购买。
  2. 创建证书。购买完成后,单击创建证书,证书类型选择上一步购买的个人测试证书(免费版),域名名称输入注册的域名。
  3. 提交证书申请。向CA提交必要的信息(如域名、企业信息等),并通过验证流程来证明您对域名或组织的所有权。只有通过验证后,CA才会签发证书。
    当证书显示“已签发”时,即可以正常使用。请注意,免费证书的有效期一般为三个月。

4.2 下载SSL证书

在证书操作列单击更多,在下载列页签,选择服务器类型为Nginx的证书,单击下载。

4.3 设置域名解析

  1. 登录域名解析dns控制台,选中需要使用的域名,单击解析设置
  2. 添加记录。
    按照如下方式填写记录内容,然后单击确定,约1分钟后生效。即可以通过域名访问您部署的网站。
    主机记录:@
    记录值:ECS公网IP
  3. 验证域名解析生效。
    访问http://your-domain:8080,如果能够正常访问到Open WebUI的网站,则证明解析成功。

5. 给域名配置证书

服务目前监听8080端口,且Open WebUI并不支持直接设置证书文件以支持HTTPS。为了确保能够通过HTTPS请求访问服务,可以在用户与Open WebUI之间增加反向代理服务Nginx,用户与Nginx之间建立HTTPS链接,再由Nginx将用户的请求从默认的443端口转发至服务实际监听的端口8080。

5.1 登录实例

连接至ECS实例,以便后续在实例上执行相关命令。

  1. 前往ECS控制台实例列表,选择目标实例所在的资源组地域后,在列表中找到待连接的实例,单击操作列下的远程连接
  2. 单击通过Workbench远程连接下的立即登录
  3. 选择认证方式,填写相应登录凭证后,单击登录

    注意:如果您是通过计算巢创建的实例,请点击计算巢资源页签的资源ID列进入ECS实例详情页,或者直接根据资源ID在ECS列表中找到ECS实例,再使用Workbench方式远程连接实例。

5.2 安装Nginx

执行以下命令安装Nginx。

# 添加Nginx官方源到系统中
sudo tee /etc/yum.repos.d/nginx.repo <<-'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/8/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF
# 安装Nginx
sudo dnf -y install nginx
# 启动Nginx服务
sudo systemctl start nginx
# 设置Nginx服务开机自启
sudo systemctl enable nginx
# 确认nginx是否安装成功,如果有绿色文字显示active (running),则代表安装成功
sudo systemctl status nginx

5.3 上传SSL证书到ECS

  1. 执行以下命令,在Nginx的配置目录中创建一个用于存放证书的目录。
sudo mkdir -p /etc/nginx/ssl
  1. 将之前下载的SSL证书中的证书文件(.pem文件)和私钥文件(.key文件)上传到Nginx服务器的证书目录(/etc/nginx/ssl)。使用Workbench远程连接实例。具体操作如下:
  1. 使用Workbench远程连接实例。
  2. 在顶部菜单栏左上角处,选择文件 > 打开新文件树

       c. 在文件树中,右键单击需要上传文件的位置(例如/etc/nginx/ssl),然后在菜单中单击上传文件

       d. 选择待上传的目标文件。

弹出如下上传成功提示框时,表示上传完成。
       

您也可在本地使用SSH客户端,使用SCP命令上传文件到服务器。命令格式如下:

scp <本地文件路径> <云服务器登录名>@<云服务器公网IP地址>:<实例目录>

5.4 配置Nginx

  1. 执行以下命令,在Nginx配置文件中添加SSL证书和端口。
    注意:将下列内容中,所有的example.com替换成您自己的域名。
    注意:这里假设部署的网站服务监听端口为8080;如果监听的是其他端口,则根据实际情况修改。
sudo tee /etc/nginx/conf.d/default.conf <<-'EOF'
    # HTTP Server Block (Redirect to HTTPS)
    server {
        listen       80;
        server_name  example.com;
        # Redirect all HTTP requests to HTTPS
        return 301 https://$host$request_uri;
    }
    # HTTPS Server Block
    server {
        #如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
        listen 443 ssl;
        
        #填写证书绑定的域名
        server_name example.com;
    
        #填写证书文件绝对路径
        ssl_certificate /etc/nginx/ssl/example.com.pem;
        #填写证书私钥文件绝对路径
        ssl_certificate_key /etc/nginx/ssl/example.com.key;
    
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        
        #自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
        #TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
        #表示优先使用服务端加密套件。默认开启
        ssl_prefer_server_ciphers on;
    
        # Proxy Settings (If you are using a backend service)
        location / {
            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;
            proxy_set_header X-Forwarded-Proto $scheme;
            # WebSocket Support (Optional)
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }
EOF
  1. 重启Nginx。
sudo systemctl restart nginx
  1. 验证HTTPS生效。通过域名访问https://your-domain确认是否能够访问Open WebUI服务。
相关文章
|
4月前
|
弹性计算 人工智能 前端开发
在阿里云ECS上部署n8n自动化工作流:U2实例实战
本文介绍如何在阿里云ECS的u2i/u2a实例上部署开源工作流自动化平台n8n,利用Docker快速搭建并配置定时任务,实现如每日抓取MuleRun新AI Agent并推送通知等自动化流程。内容涵盖环境准备、安全组设置、实战案例与优化建议,助力高效构建低维护成本的自动化系统。
1136 5
|
4月前
|
Java Linux Apache
在CentOS服务器上编译并部署NiFi源码
部署Apache NiFi在CentOS上是一个涉及细节的过程,需要注意Java环境、源码编译、配置调整等多个方面。遵循上述步骤,可以在CentOS服务器上成功部署和配置Apache NiFi,从而高效地处理和分发数据。
224 17
|
4月前
|
自然语言处理 监控 数据可视化
如何建设网站:使用阿里云的服务器网站建设5大步骤
企业用阿里云服务器建网站,无需复杂技术,按五步骤即可。先规划需求明确网站功能;再选入门级服务器并初始化;接着部署 PageAdmin CMS,可视化操作易上手;然后选模板填内容搭建网站;最后测试适配与稳定性,绑定域名备案后上线。PageAdmin 还方便后期维护调整。
628 10
|
5月前
|
弹性计算 安全 Linux
使用阿里云服务器安装Z-Blog博客网站流程,新手一键部署教程
本教程教你如何在阿里云99元服务器上,通过宝塔Linux面板一键部署Z-Blog博客。基于CentOS 7.9系统,从远程连接、安装宝塔面板、开放端口到部署Z-Blog全流程详解,操作简单,新手也能轻松搭建个人博客网站。
656 13
|
5月前
|
弹性计算 Devops Shell
用阿里云 DevOps Flow 实现 ECS 部署自动化:从准备到落地的完整指南
阿里云 DevOps Flow 是一款助力开发者实现自动化部署的高效工具,支持代码流水线构建、测试与部署至ECS实例,显著提升交付效率与稳定性。本文详解如何通过 Flow 自动部署 Bash 脚本至 ECS,涵盖环境准备、流水线搭建、源码接入、部署流程设计及结果验证,助你快速上手云上自动化运维。
496 0
监控 安全 Linux
245 0
|
5月前
|
存储 域名解析 弹性计算
阿里云上云流程参考:云服务器+域名+备案+域名解析绑定,全流程图文详解
对于初次通过阿里云完成上云的企业和个人用户来说,很多用户不仅是需要选购云服务器,同时还需要注册域名以及完成备案和域名的解析相关流程,从而实现网站的上线。本文将以上云操作流程为核心,结合阿里云的活动政策与用户系统梳理云服务器选购、域名注册、备案申请及域名绑定四大关键环节,以供用户完成线上业务部署做出参考。

热门文章

最新文章

相关产品

  • 云服务器 ECS