近期我所在团队接手了一个遗留的前端项目,由于原团队未提供完整的部署文档(包括应用部署路径、Nginx配置参数等关键信息),需要通过SSH连接至Linux服务器进行逆向排查:
- 定位项目文件存储路径
- 找到Nginx配置文件并解析Nginx配置映射关系
此过程涉及一些Linux系统操作,由于我一直使用的是Windows环境进行开发,没有用过Linux系统。所以也借此机会学习下linux的一些基础指令,顺便记录一些学习笔记。
安装finalshell并进行连接
因为我用的是windows,所以需要安装finalshell 下载地址 。这个软件可以远程连接linux服务器。根据自己的电脑选择合适的版本就行。
然后进行连接创建,选择ssh连接。如下图所示:
输入服务器ip地址,端口,用户名,密码,然后点击连接。
定位项目文件路径
因为项目有运行node服务和nginx服务,所以我先把机子上所有的服务进程找出来看看
1 | ps aux #显示所有包含其他使用者的进程 |
结果如下图所示
框起来的这几个进程很像是测试环境运行的node服务,根据上面的运行路径,找到bwtest文件看一下。
1 | ls -a /data/bwtest/project #查看目录下所有文件 |
这些文件基本和我在git上看到的项目仓库基本一致,所以可以基本断定这就是项目文件的存储路径了。
找到Nginx配置文件并解析Nginx配置映射关系
这里的话可以先尝试通过进程id来找到运行路径,然后再获取该进程对应的配置文件路径
查找nginx服务进程
查找Nginx服务进程有两种方式
- 上文用过的通过 ps aux | grep nginx 找到所有的进程
- 通过端口找进程
nginx常用端口一般为80
1 | netstat -nlp | grep 80 #显示端口80的连接情况 |
可以看到Ngigx的进程pid为20577
通过进程id查找Nginx配置文件
在Linux中,每个进程的信息都存储在/proc目录下,进程ID对应的子目录里会有详细信息。
1 | ls -l /proc/20577/exe #查看进程20577的运行路径 |
运行路径为usr/sbin/nginx,然后通过运行路径查找Nginx配置文件
1 | /usr/sbin/nginx -t #使用-t参数就可以获取该进程对应的配置文件路径 |
这里可以看到nginx的配置文件路径为**/etc/nginx/nginx.conf**
到这里基本上逆向查找的文件都找到了。
Nginx配置文件默认路径
在Linux中,Nginx的配置文件一般位于etc/nginx/nginx.conf。这个路径是Nginx的默认配置文件路径。
1 | /etc/nginx/ |
这里得提一下conf.d目录。conf.d目录是Nginx的配置文件目录,主要作用:
- 配置分离: 将不同业务/站点的配置拆分为独立文件
- 动态加载:方便通过增删文件管理配置(无需修改主配置文件)
- 规范管理:通常存放server块配置、反向代理规则等
/etc/nginx/nginx.conf 中通常包含:
1 | include /etc/nginx/conf.d/*.conf; # 加载conf.d目录下所有的.conf文件。按文件名字母序加载(00-default.conf会比api.conf先加载) |
我这里打印下看看conf.d目录下有哪些配置文件
1 | ls -lR /etc/nginx/conf.d/ #递归列举目录下所有的文件 |
可以看到很多.conf文件,其中l开头的文件,属于软链接,指向其他文件。后面指向的真实地址就是我们之前找到的项目文件路径。
- 本文作者: puppy
- 本文链接: https://ispuppy.github.io/2025/02/28/linuxstudy/
- 版权声明: 本BLOG上原创文章未经本人许可,不得用于商业用途及传统媒体。网络媒体转载请注明出处,否则属于侵权行为。