V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
shendaowu
V2EX  ›  站长

我想要可靠地升级网站,有没有标准的流程?或者需要注意的地方?

  •  
  •   shendaowu · 2 天前 · 1224 次点击

    网上搜不到,不知道是不是我用的关键词不对。我用“网站升级 流程”和“update website”在谷歌搜的。我还找了一本运维的书,结果扫了一眼目录和可能贴边的地方也没有。

    目前我能想到的容易踩坑的地方有不关闭服务直接换网站代码可能会出导致数据不一致。不知道没有什么使用中的文件无法删除的防呆机制。我目前计划用 PHP 。但是我只能想到这一个坑,总感觉可能会有其他的坑。

    21 条回复    2025-03-24 18:54:12 +08:00
    defunct9
        1
    defunct9  
       2 天前   ❤️ 2
    多了去了。开 ssh ,让我上去看看
    davidyin
        2
    davidyin  
       2 天前 via Android   ❤️ 1
    不同程序不同的流程。
    比如 phobb ,可以參考 https://www.phpbb.com/downloads/3.3/update
    pendulum
        3
    pendulum  
       2 天前   ❤️ 1
    你可能想找:持续部署
    chesha1
        4
    chesha1  
       2 天前   ❤️ 1
    你的问题过于宽泛了吧,是微服务项目还是耦合很高的单体项目?要升级什么,依赖版本、后端架构、数据库选型、cicd 流程还是别的?
    ZeawinL
        5
    ZeawinL  
       2 天前 via iPhone   ❤️ 1
    外行人视角
    ano
        6
    ano  
       2 天前
    做好备份能回滚就行
    shendaowu
        7
    shendaowu  
    OP
       2 天前
    @chesha1 主要就是网站修了漏洞或者添加功能后的升级。我不用框架。依赖版本的升级也有坑吗?我刚才在 Composer 官网搜 update 好像没什么需要特别注意的。
    z1829909
        8
    z1829909  
       2 天前   ❤️ 1
    一个是版本依赖层面的, 代码和数据库之间版本是否兼容
    一个是服务可用性层面的, 是否需要不停机更新
    zoharSoul
        9
    zoharSoul  
       2 天前
    描述的太模糊了
    ETiV
        10
    ETiV  
       2 天前 via iPhone   ❤️ 1
    各种不同的语言框架都不一样,但可以标准化成容器化部署,前面用 nginx 反代:

    1. 新的容器起来后监听新的端口,测试 OK 没问题之后 2. 改 nginx 配置、并 nginx -s reload
    2. 旧的容器退出,就完成了一次更新。

    然后下次更新的时候,监听这个旧的端口号
    shendaowu
        11
    shendaowu  
    OP
       2 天前
    @zoharSoul 能说一下需要提供什么信息吗?我感觉也许有用的信息:语言:php 。目前不打算用框架,可能会用 Composer 。能接受停机维护。
    expy
        12
    expy  
       2 天前   ❤️ 1
    计划用 PHP ?意思东西都还没写出来?那考虑什么升级,一天没几个人的网站你直接关掉旧程序再启动新程序都没影响的。
    zoharSoul
        13
    zoharSoul  
       2 天前   ❤️ 1
    @shendaowu #11
    1. 当前的技术栈
    2. 部署的架构
    chesha1
        14
    chesha1  
       2 天前
    @shendaowu #7 我不懂 php ,不过一般来说语言本身的升级不会带来能影响到普通开发的破坏性改变,留好回到上个版本的方法就行了
    shendaowu
        15
    shendaowu  
    OP
       2 天前
    @zoharSoul
    1. php + javascript + MariaDB 。
    2. 这个我之前不了解,我网上搜了一下,我感觉这个主要是偏物理和基础设施上的东西?目前我打算用阿里云香港的 ECS 套上 CloudFlare ,并且用 CloudFlare Tunnel 。Linux 发行版用 Debian 。ECS 目前打算用比价便宜的。如果最便宜的没什么问题我肯定会用最便宜的,如果真有人用的话再升级服务器。所有东西都运行在一个 ECS 上,不会买其他的服务。
    shendaowu
        16
    shendaowu  
    OP
       2 天前
    @expy 我对可靠性有强迫症。如果我升级的时候某个用户正好在访问网站,我猜可能会导致问题。比如程序执行到一半服务被强制关闭了。当然特殊的地方我会用事务的,但是这东西也不能保证一定不出问题吧?不过一个 BUG 造成的问题可能远大于上面那种问题,如果真有那种问题的话。我写 BUG 的能力还是挺强的。
    zoharSoul
        17
    zoharSoul  
       2 天前   ❤️ 1
    @shendaowu #15
    问题 2 的意思是你是怎么部署的
    docker?k8s? 还是什么
    zoharSoul
        18
    zoharSoul  
       2 天前   ❤️ 1
    @shendaowu #15 其实 4 楼就问的挺清楚了, 没有升级网站这个说法? 你是要升级什么东西?
    我猜你问的是 php 后端如何滚动部署?
    shendaowu
        19
    shendaowu  
    OP
       1 天前
    @zoharSoul 我预计我更新的频率会比较低,不想学 docker 那些东西。我想直接替换我写的 php 文件、CSS 文件和 js 文件等文件。但是不知道除了替换的时候关闭服务还需要干什么。另外我也不知道是否需要关服务。
    zoharSoul
        20
    zoharSoul  
       1 天前   ❤️ 1
    @shendaowu #19 看你 php 的部署模式
    分别搜 cli 或者 fpm 对应的优雅/平滑 部署就行
    shendaowu
        21
    shendaowu  
    OP
       1 天前
    @zoharSoul 大佬是不是记错了?是平滑重启( Graceful Restart )吧?我用大佬给的关键词没搜到什么东西。刚才在问 DeepSeek 的时候它提到了这个词。我的担忧如果用了平滑重启应该就不存在了?另外求大佬鉴定一下这个回答: https://segmentfault.com/q/1010000046362677/a-1020000046362824
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1000 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:43 · PVG 05:43 · LAX 14:43 · JFK 17:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.