Vorwort
In den letzten Tagen habe ich endlich ein dreimonatiges Demoversionsprojekt des Unternehmens abgeschlossen. In dieser Zeit hatte ich zahlreiche Auseinandersetzungen mit dem Backend des Unternehmens über die API: „Meine Schnittstelle ist in Ordnung, Sie sind es.“ Dies ist nicht die richtige Art der Anfrage! ', 'Die von Ihnen angeforderten Parameter müssen falsch sein' ... Probleme wie diese sind in den letzten drei Monaten immer wieder aufgetreten, nur weil wir keine guten Gewohnheiten bei der Schnittstellenverwaltung haben, eine Reihe problemloser Tools nicht verwendet wurden und Die Schnittstellendefinition wird grundsätzlich verbal übermittelt. Daher denke ich, dass zuerst die YApi-Schnittstellenverwaltungsplattform verwendet werden muss. Darüber hinaus fordert Zhang Xinxu auch eine Schnittstellenverwaltung, und das Frontend sollte die Tools ebenfalls verwenden. Befreien Sie die Produktivität und verbessern Sie die Effizienz!
Knoten installieren
Weil die Installation von Yapi auf den verschiedenen Methoden zur Knoteninstallation in der Centos-Umgebung von Google basieren muss, und davon gibt es Tausende. Aber ich bin immer noch in eine Falle geraten. Ich weiß nicht, warum meine Methode zur Installation des Quellcodes auf Basis von wget fehlgeschlagen ist +c. Es ist besser, nvm zur Installation zu verwenden, obwohl ich nicht weiß, ob das sinnvoll ist. Bitte codieren Sie, um zu sprechen:
-
Wget download and install nvm
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
Nach dem Login kopierenor Curl
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
Nach dem Login kopieren -
Nachdem der Download abgeschlossen ist, treten Sie der Systemumgebung bei
source ~/.bashrc
Nach dem Login kopieren -
Überprüfen Sie die Installation
command -v nvm
Nach dem Login kopieren -
Sehen Sie sich die Fernbedienung an Knotenversion
nvm ls-remote
Nach dem Login kopieren -
Installation Die erforderliche Version erfordert nodejs (7.6+)
nvm install 10.2.1
Nach dem Login kopieren
Installieren von mongdb
yapi basiert auf mongodb (2.6+). Theoretisch kann hier Centos mongdb installiert werden. vorausgesetzt, dass Centos 64-Bit ist.
Ähnlich gibt es Tausende von Installationsmethoden. Verwenden Sie hier yum, um die Konfiguration des Yum-Pakets zu installieren
vi /etc/yum.repos.d/mongodb-org-3.4.repo // 会自动新建mongodb-org-3.4.repo文件
-
Mongdb-Konfiguration ändern (öffentliches Netzwerk zugänglich: 127.0.0.1 => 0.0.0.0)
[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
Nach dem Login kopieren -
Mongodb starten
yum install -y mongodb-org // 一路yes安装mongodb
Nach dem Login kopieren -
Wenn es sich um einen Alibaba Cloud-Server handelt, fügen Sie Port 12071 hinzu Sicherheitsgruppe zu Greifen Sie derzeit natürlich über die öffentliche Adresse darauf zu. Derzeit kann jeder Ihre Daten manipulieren, indem er eine Verbindung zu Ihren MongDB-Daten herstellt Googeln Sie es selbst, zum Beispiel:
vi /etc/mongod.conf
Nach dem Login kopieren## Deploy Yapi - Laut der offiziellen Dokumentation gibt es zwei Bereitstellungsmethoden, da ich vor ein paar Tagen die erste Methode nicht auf meinem Computer installieren konnte, habe ich die zweite, kompliziertere Methode verwendet
Dies wird nur vorübergehend erfolgreich bereitgestellt, aber der Yapi-Prozess muss dauerhaft geschützt werden. Hier verwenden wir pm2, um pm2 zu installieren
systemctl start mongod.service // 启动mongodb
Nach dem Login kopieren -
mongo --port 27017 use admin db.createUser( { user: "adminUser", pwd: "adminPass", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
Nach dem Login kopieren
Zusammenfassung
An diesem Punkt haben Sie den Quellcode von Yapi in Ihr eigenes Intranet geklont. Natürlich werden Sie während des Prozesses immer noch auf viele Fallstricke stoßen Fallstricke bei der mongdb-Authentifizierung: Beispielsweise sind die Authentifizierungseinstellungen nicht richtig eingestellt, die Konfigurationsdatei ist falsch konfiguriert oder sogar pm2 startet yapi nicht. Kurz gesagt, versuchen Sie es noch einmal, wenn Sie es nicht selbst lösen können Fragen Sie einen Experten um Rat.
Lösung: Ist die Konfigurationsdatei von yapi korrekt konfiguriert? um yapi zu starten und immer wieder neu zu starten
- Lösung: Überprüfen Sie anhand des PM2-Protokolls, ob der Dienst, der zuvor über npm geöffnet wurde, nicht beendet wurde, was dazu führte, dass der Dienst vor Strg + C belegt war. Die ersten beiden Probleme bestehen nicht. Es scheinen keine Fallstricke zu sein, es sind nichts weiter als Hindernisse. ③ Das konfigurierte Postfach schlägt fehl Falsch mit dem NetEase-Postfach oder so. Nachdem ich die Datei config.json geändert hatte, dachte ich, dass alles in Ordnung wäre, wenn ich install-server erneut ausführen würde Es sollte sein, dass die Administratorinformationen bereits in yapi in mongdb vorhanden sind. Wenn unter admin keine Daten vorhanden sind, ändern Sie diese einfach. Ich war sehr faul, also habe ich einfach den gesamten Yapi mit dem MongDB-Kompass gelöscht, dann die Datenbank gelöscht und bin weggelaufen!
- 获取证书文件(默认有证书并且能拿到.key和.pem文件或者.pfx文件)
- 上传证书(我直接放在app.js同级,根据个人喜好)
-
修改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)
Nach dem Login kopieren - 成功开启https
-
同样还是踩了不少坑
- 文件径不对 not such file
解决:用__dirname - mac verify failure
解决: 用node https提供的第一种方法引入证书文件
- 文件径不对 not such file
不足之处欢迎拍砖指正!
yapi开启https访问
虽然对小白来说https然并卵,我还是想捣鼓一下试着通过https来访问我的yapi,首先证书我是有了,获取证书的方法也有千千万万种,我这里用的阿里云的免费证书,总之有证书的话应该能拿到证书文件如.pem、.key、.pfx之类文件。技术菜的我天真的以为还能开启3000端口的https访问,结果啪啪啪打脸打的很清脆,于是乎把https的端口设定成了8443。大概步骤如下: