Nginx location API - IT 484

Nginx location API – IT 484

  • Post author:
  • Post category:IT / Nginx
  • Post comments:0 Comments
  • Post last modified:2023-01-13

當前後端團隊協同作業,同時開發時,常常會發生後端 API 實作尚未完成,而前端團隊已經開始同步進行作業,為了讓其他成員可以協同開發,減少等待後端團隊的時間,提升開發效率,所因應的方法。

功能簡介

Nginx 是一個異步框架的網頁伺服器,用於處理併發請求,整體是採用模組化設計,組態檔案也非常簡潔容易設定,同時也提供了反向代理、負載平衡器、HTTP 快取等功能,相較於 Apache、lighttpd 具有占有內存少,穩定性高等優勢,能保持低資源低消耗高性能,在網際網路項目中廣泛應用。

主機架構

模擬一個網域,綁定本機。

Domain IP Port
ggg.cc 127.0.0.1 10090

組態設定

Nginx location config

vim /etc/nginx/conf.d/location-api.conf
server {
    listen 10090;
    server_name ggg.cc;
	
    location = /login {
        default_type application/json;
        return 200 '{"errorCode":0,"name":"player","token":"0x12345678"}';
    }
    
    location = /user {
        default_type application/json;
        return 200 '{"errorCode":0,"name":"player"}';
    }

    location = /users {
        default_type application/json;
        return 200 '{"errorCode":0,"names":[player, player2]}';
    }

    location = /logout {
        default_type application/json;
        return 200 '{"errorCode":0}';
    }
	
    location = /exist {
        default_type application/json;
        return 200 '{"errorCode":0,"exist":false}';
    }
	
    error_page  405     =200 $uri;
}

網域導向

vim /etc/hosts
127.0.0.1 ggg.cc

運行管理

服務熱載入

修改設定檔後,使用 nginx reload 重新載入設定,立即生效。

nginx -s reload

停止服務

啟動服務後,使用 systemctl stop 命令終止服務運行。

systemctl stop nginx

狀態驗證

Nginx location directive

查看監聽狀況。

netstat -ntlp
tcp        0      0 0.0.0.0:10090           0.0.0.0:*               LISTEN      685/nginx: master p

測試網址

curl -X POST ggg.cc:10090/login
{"errorCode":0,"token":"0x12345678"}

curl -X POST ggg.cc:10090/user
{"errorCode":0,"name":"player"}[

curl -X POST ggg.cc:10090/logout
{"errorCode":0}

心得分享

通常工作流程,可能都會等後端開發完成後,通知前端,前端再拿 API 來串接,但這樣的流程前端就必須等待後端,如果用 Nginx 模擬 API,先定義好前後溝通的規格,傳回假資料如: JSON 格式資料,那麼前後端就能各自按照規格進行開發,等 API 完成實作後,就可以使用 Nginx proxy_pass 來導向到真正的 AP 服務。

發佈留言