>  기사  >  운영 및 유지보수  >  yapi의 centos 배포 관련 문제 기록

yapi의 centos 배포 관련 문제 기록

藏色散人
藏色散人앞으로
2021-07-10 16:12:161969검색

머리말

지난 며칠 동안 회사의 3개월 데모 버전 프로젝트를 마침내 완료했습니다. 이 기간 동안 저는 API에 대해 회사 백엔드와 '내 인터페이스는 괜찮아, 너야. 이것은 올바른 요청 방법이 아닙니다! ', '요청한 매개변수가 잘못된 게 틀림없어'... 이런 문제는 지난 3개월 동안 지속됐는데, 단지 우리가 인터페이스 관리 습관이 좋지 않고, 문제 없는 도구들을 많이 사용하지 않았기 때문일 뿐이고, 인터페이스 정의는 기본적으로 구두로 전달되는 것이 매우 무작위입니다. 따라서 YApi 인터페이스 관리 플랫폼을 먼저 사용해야 한다고 생각합니다. 게다가 Zhang Xinxu도 인터페이스 관리를 요구하고 있으며 프런트 엔드도 도구를 사용해야 합니다. 생산성을 해방하고 효율성을 향상시키세요!

노드 설치

Yapi 설치는 node.google에 의존해야 하기 때문에 centos 환경에서는 노드를 설치하는 다양한 방법이 수천 가지가 있습니다. 하지만 여전히 함정을 밟았습니다. wget 기반의 소스 코드 설치 방법이 실패한 이유를 모르겠습니다. 물론 make하는 동안 너무 오래 기다렸기 때문에 직접 Ctrl을 사용했습니다. +c. nvm을 사용하여 설치하는 것이 더 좋지만 합리적인지는 모르겠습니다. 음성으로 코딩하세요:

  • Wget 다운로드 및 설치 nvm

       wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash

    또는 Curl

       curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
  • 다운로드가 완료된 후 시스템 환경에 참여하세요

       source   ~/.bashrc
  • 설치 확인

       command -v nvm
  • 리모컨 보기 node version

       nvm ls-remote
  • 설치 필수 버전은 nodejs(7.6+)

       nvm install 10.2.1

Install mongdb

yapi가 필요합니다. 이론적으로 Centos mongdb는 여기서 구성할 수 있습니다. centos가 64비트인 경우
마찬 가지 설치 방법이 있습니다. 여기서는 yum을 사용하여 설치하세요

  • yum 패키지 관리 구성을 수정하세요

               vi /etc/yum.repos.d/mongodb-org-3.4.repo   // 会自动新建mongodb-org-3.4.repo文件
  • 다음 구성 정보를 복사하세요.

               [mongodb-org-3.4]
               name=MongoDB Repository
               baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
               gpgcheck=0
               enabled=1
  • mongodb 설치

               yum install -y mongodb-org   // 一路yes安装mongodb
  • mongdb 구성 수정(공용 네트워크 접근 가능: 127.0.0.1 => 0.0.0.0)

               vi /etc/mongod.conf
  • mongodb 시작

           systemctl start mongod.service  // 启动mongodb

Alibaba Cloud 서버인 경우 보안 그룹에 포트 12071을 추가하세요. 물론 공개 주소를 통해 접속하세요. 현재로서는 안전하지 않습니다

yapi의 centos 배포 관련 문제 기록

이때는 누구나 귀하의 mongdb 데이터에 연결하여 데이터를 변조할 수 있습니다. 예를 들어

mongo --port 27017

use admin

db.createUser(
  {
    user: "adminUser",
    pwd: "adminPass",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
  }
)
## Deploy Yapi

공식 문서에 따르면 두 가지 배포 방법이 있다고 합니다. 며칠 전에 첫 번째 방법을 컴퓨터에 설치하지 못했기 때문에 두 번째 더 복잡한 방법을 사용했습니다.

mkdir yapi
cd yapi
git clone https://github.com/YMFE/yapi.git vendors //或者下载 zip 包解压到 vendors 目录
cp vendors/config_example.json ./config.json //复制完成后请修改相关配置
cd vendors
npm install --production --registry https://registry.npm.taobao.org
npm run install-server //安装程序会初始化数据库索引和管理员账号,管理员账号名可在 config.json 配置
node server/app.js //启动服务器后,请访问 127.0.0.1:{config.json配置的端口},初次运行会有个编译的过程,请耐心等候
이것은 일시적으로만 성공적으로 배포되었지만 yapi 프로세스는 영구적으로 보호되어야 합니다. 여기서는 pm2

  • 를 사용하여 pm2

         npm i pm2 -g
  • yapi의 Vendors 디렉터리로 전환하고 pm2 start

         pm2 start server/app.js  --watch
    를 실행합니다.

yapi의 centos 배포 관련 문제 기록

正常的话,应该能正常访问到,默认接口是3000

yapi의 centos 배포 관련 문제 기록

요약

이 시점에서 Yapi의 소스 코드를 자신의 인트라넷에 복제했습니다. 물론 이 과정에서 제가 직면한 주요 함정은 다음과 같습니다. mongdb 인증 함정: 예를 들어 인증 설정이 제대로 설정되지 않았거나, 구성 파일이 잘못 구성되었거나, 심지어 pm2가 yapi를 시작하지 못하는 경우도 있습니다.

① mongdb 인증 획득 실패

yapi의 centos 배포 관련 문제 기록

해결 방법: mongdb 구성을 확인하세요. yapi의 구성 파일이 올바르게 구성되어 있습니까? PM2가 yapi를 시작하지 못하고 계속 다시 시작되었습니다

해결책: 이전에 npm을 통해 열었던 서비스가 종료되지 않았는지 pm2 로그를 통해 확인하여 ctrl+c 이전의 서비스는 괜찮습니다yapi의 centos 배포 관련 문제 기록처음 두 가지 문제 함정은 아닌 것 같습니다. 장애물일 뿐입니다

③구성된 메일함이 실패합니다

해결 방법: 메일함 구성이 잘못된 것 같습니다. 계속해서 알아보세요. yapi의 centos 배포 관련 문제 기록 확실하지 않습니다. NetEase 메일박스에 문제가 있는 것 같습니다. config.json 파일을 수정한 후 install-server를 다시 실행하면 문제가 없을 것이라고 생각했습니다.->


mongdb의 yapi에 관리자 정보가 이미 존재해야 합니다. admin에 데이터가 없으면 삭제하세요. 너무 게으른 탓에 그냥 mongdb compass를 이용해 야피 전체를 삭제하고 도망쳤습니다! yapi의 centos 배포 관련 문제 기록

不足之处欢迎拍砖指正!

yapi의 centos 배포 관련 문제 기록

yapi开启https访问

虽然对小白来说https然并卵,我还是想捣鼓一下试着通过https来访问我的yapi,首先证书我是有了,获取证书的方法也有千千万万种,我这里用的阿里云的免费证书,总之有证书的话应该能拿到证书文件如.pem、.key、.pfx之类文件。技术菜的我天真的以为还能开启3000端口的https访问,结果啪啪啪打脸打的很清脆,于是乎把https的端口设定成了8443。大概步骤如下:

  • 获取证书文件(默认有证书并且能拿到.key和.pem文件或者.pfx文件)

    yapi의 centos 배포 관련 문제 기록

  • 上传证书(我直接放在app.js同级,根据个人喜好)

    yapi의 centos 배포 관련 문제 기록

  • 修改app.js 是基于koa的 不过我没有再引用koa-ssl,直接用的node的https方法的第一种

    // 引入相关的服务和文件
    const fs = require('fs');
    const https = require('https');
    const options = {
        key: fs.readFileSync(__dirname + '/server.key'),
        cert: fs.readFileSync(__dirname + '/server.pem')
      };
    const port = 8443;
    //...
    //开启https端口
    https.createServer(options, app.callback()).listen(port)
  • 成功开启https

    yapi의 centos 배포 관련 문제 기록

  • 同样还是踩了不少坑

    • 文件径不对 not such file
      解决:用__dirname
    • mac verify failure
      解决: 用node https提供的第一种方法引入证书文件

推荐:《centos教程

위 내용은 yapi의 centos 배포 관련 문제 기록의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제