在Linux服務器上部署Swagger(現更名為OpenAPI Specification)時,有幾個關鍵的注意事項需要考慮,以確保部署過程順利且安全。以下是一些主要的注意事項:
Node.js和npm:確保服務器上已安裝Node.js和npm??梢酝ㄟ^以下命令安裝:
sudo apt update
sudo apt install -y nodejs npm
Web服務器:可以選擇Apache或Nginx來提供Web服務。以下是使用Apache的示例配置:
sudo a2ensite default.conf
sudo systemctl restart apache2
拉取鏡像:使用Docker拉取Swagger Editor和Swagger UI的鏡像。
docker pull swaggerapi/swagger-editor:v4.6.0
docker pull swaggerapi/swagger-ui:v4.15.5
運行容器:運行Swagger Editor和Swagger UI容器,并映射相應端口。
docker run -d -p 38080:8080 swaggerapi/swagger-editor:v4.6.0
docker run -d -p 38081:8080 swaggerapi/swagger-ui:v4.15.5
Apache:啟用默認站點配置并重啟Apache服務。
sudo a2ensite default.conf
sudo systemctl restart apache2
Nginx:配置Nginx服務器塊并重啟Nginx服務。
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/default.backup
sudo nano /etc/nginx/sites-available/default
在配置文件中添加以下內容:
server {
listen 80;
server_name localhost;
root /var/www/html;
index index.html index.htm;
location / {
try_files uri uri / /index.html;
}
}
然后重啟Nginx:
sudo systemctl restart nginx
防火墻設置:確保服務器的防火墻允許訪問Swagger UI所在的端口。例如,如果Swagger UI運行在8080端口,需要確保防火墻允許從外部訪問該端口。
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --reload
關閉Swagger接口文檔的訪問權限:出于安全考慮,建議在生產環境中關閉Swagger接口文檔的訪問權限,或者為Swagger接口文檔添加密碼保護和登錄驗證。
使用HTTPS:配置Swagger使用HTTPS協議,加密數據傳輸,提高安全性。
通過了解并遵循這些注意事項,可以確保在Linux服務器上成功、安全地部署Swagger,從而簡化API的開發、測試和維護過程。