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


    一、背景

    一个年久失修的前端项目,临时接到需求要迭代,三四年未迭代过的项目,交接更无从谈起。
    所幸的是,源码还在,知道外网访问的入口地址。

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

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

    二、梳理流程

    在这里插入图片描述

    1、从外网域名找起

    进入阿里云的“云解析DNS”,找到外网IP。
    在这里插入图片描述

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

    在这里插入图片描述
    nginx3这台ECS机器同时有外网IP和内网IP,在这个界面可以找到其内网IP。

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

    [root@xxx-nginx3 vhost]# pwd
    /etc/nginx/vhost
    
    • 1
    • 2

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

    下面是其简要:

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

    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;
       }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

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

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

    4、查看前端程序的进程

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

    # ss -anlp | grep 3000
    tcp    LISTEN     0      128      :::3000                 :::*                   users:(("node",pid=17610,fd=24))
    
    • 1
    • 2

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

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

    #  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
    
    • 1
    • 2
    • 3

    到这,也就找出了前端程序的启动命令详情。
    你可以切到目录/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作反向代理,整个链路涉及到的组件就三四层。

  • 相关阅读:
    Django如何配置数据库
    四大类好用的科研工具分享
    MySQL数据库
    保姆级vue-pdf的使用过程
    助力工业物联网,工业大数据之服务域:Shell调度测试【三十三】
    推荐系统笔记(十):InfoNCE Loss 损失函数
    移植BusyBox根文件系统到野火开发板
    怎么将pdf转换成word?
    struts2+jquery +json实现异步加载数据
    Chapter 3. Char Drivers
  • 原文地址:https://blog.csdn.net/zhuganlai168/article/details/136680716