阿里云环境下,从仅知的一个外网域名如何找出前端程序的部署所在和启动命令

一、背景

一个年久失修的前端项目,临时接到需求要迭代,三四年未迭代过的项目,交接更无从谈起。

所幸的是,源码还在,知道外网访问的入口地址。

本文试着带你一起找到该前端项目部署在哪台机器,以及发布的过程是怎么样的。

需要交待的信息是,前端项目没有采用容器化部署,是在某个ECS机器上。

二、梳理流程

1、从外网域名找起

进入阿里云的"云解析DNS",找到外网IP。

2、云服务器ECS查找外网IP对应的机器

nginx3这台ECS机器同时有外网IP和内网IP,在这个界面可以找到其内网IP。

3、进入nginx3机器,查找vhost配置

bash 复制代码
[root@xxx-nginx3 vhost]# pwd
/etc/nginx/vhost

这个目录下会有许多.conf文件,你需要查找监听"play.xxx.net"域名所在的配置。

下面是其简要:

upstream地址就是前端项目部署所在。

bash 复制代码
upstream webplaycluster {
 server 10.xx.xx.55:3000 weight=9 max_fails=2 fail_timeout=10s;
}
  server
  {
    listen       80;
    listen       443  ssl;
    server_name play.xxx.net;
    ssl_certificate /data/nginx/ssl/_xxx_net.crt;
    ssl_certificate_key /data/nginx/ssl/_xxx_net.key;
    ssl_session_timeout 5m;
    ssl_protocols SSLv2 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers 'AES128+EECDH:AES128+EDH:!aNULL';
    ssl_prefer_server_ciphers on;

    location / {
       proxy_next_upstream error timeout invalid_header http_502 http_503 http_504;
       proxy_pass http://webplaycluster;
       proxy_http_version 1.1;
       proxy_redirect off;
       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 HTTP_HOST $host;
       proxy_set_header HTTP_X_FORWARDED_FOR $remote_addr;
       proxy_set_header HTTP_X_FORWARDED_HOST $host;
       proxy_set_header X-Forwarded-Host $host;
       proxy_set_header X-Forwarded-Server $host;
       proxy_set_header X-Forwarded-HTTPS 0;
    }
    access_log  /data/nginx/logs/webplay_access.log  access;
    error_log  /data/nginx/logs/webplay_error.log;
   }

至此,找到了前端程序所在的部署地址。

下文将找出其进程和启动命令。

4、查看前端程序的进程

根据上一步得知,程序的进程号是3000

bash 复制代码
# ss -anlp | grep 3000
tcp    LISTEN     0      128      :::3000                 :::*                   users:(("node",pid=17610,fd=24))

通过ss命令,得到其进程ID是17610

5、查看前端程序的启动命令

bash 复制代码
#  ps -ef | grep 3000

root     17610     1  0  2022 ?        01:28:13 node /opt/xxserver/webplay/player_egg/node_modules/_egg-scripts@2.13.0@egg-scripts/lib/start-cluster {"port":3000,"baseDir":"/opt/xxserver/webplay/player_egg","framework":"/opt/xxserver/webplay/player_egg/node_modules/egg","title":"egg-server-player_egg"} --title=egg-server-player_egg

到这,也就找出了前端程序的启动命令详情。

你可以切到目录/opt/xxserver/webplay/player_egg/node_modules,能看到目录_egg-scripts@2.13.0@egg-scripts和egg

该命令用来启动一个Egg.js应用程序的,它会创建一个在3000端口上运行的服务器,服务器的根目录位于/opt/xxserver/webplay/player_egg,使用位于同一目录下的node_modules/egg中的Egg框架。应用程序的标题被设置为egg-server-player_egg。

三、总结

这里我们使用到了阿里云的两个功能,云解析DNS和云服务器ECS,并没有使用Kong和SLB等组件。项目比较旧,使用nginx作反向代理,整个链路涉及到的组件就三四层。

相关推荐
Csvn7 小时前
渲染管线
前端
程序员大阳7 小时前
副队长CSS教程(33)–圆角与透明
前端·css·透明·圆角
志尊宝7 小时前
Vue3 零基础每日笔记(082):文件上传实战——el-upload 校验、自定义上传、头像预览
前端·javascript·vue.js·笔记·#javascript·#vue.js
鬼手点金8 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
柳杉8 小时前
借助 Codex 和可视化工作流,从调研到完整实现,3D 大屏竟然可以这么简单
前端·ai编程·数据可视化
IMPYLH8 小时前
HTML 的 <wbr> 元素
前端·html
Dovis(誓平步青云)9 小时前
常用命令藏得太深?怎么做一个快捷命令坞
运维·前端·自动化·音视频·prometheus
IT_陈寒10 小时前
Vite的这个问题坑了我三天,原来如此解决!
前端·人工智能·后端
网易云信10 小时前
大模型能上岗做销售吗?我们让 12 款国产模型交了 420 份作业
前端·后端
蜗牛互联网10 小时前
Python Agent工具调用的白名单、参数校验与审批门禁
java·服务器·前端·人工智能·后端·python