リバースプロキシでPOSTしたい
リバースプロキシでPOSTをしたい
この質問の続きです。
https://qiita.com/Aoky/questions/d76532263d462a07f693
nginxでAPIサーバーを建てたのはいいのですが、リバースプロキシをしていて、おそらくそれが原因でPOSTがすべてGETになってしまいます。
発生している問題
- - [13/Mar/2023:15:05:37 +0900] "POST /createImage HTTP/1.1" 301 169 "-" "python-requests/2.28.2" "-"
- - [13/Mar/2023:15:05:37 +0900] "GET /createImage/ HTTP/1.1" 405 31 "-" "python-requests/2.28.2" "-"
このようにPOSTを送ります。(なぜかGETも送られている)
INFO: 127.0.0.1:35354 - "GET /createImage HTTP/1.0" 405 Method Not Allowed
ですが、uvicornで建てたサーバーのほうには、GETが送られています。
INFO: 127.0.0.1:44574 - "POST /createImage?data=data HTTP/1.1"
サーバー内で、localhostにcurlすると、うまくいきます。
該当するソースコード
@app.post("/createImage")
def test2(data):
# 処理
一応、pythonにはpostも書いてあります。
location /createImage/ {
limit_except GET POST {
deny all;
}
proxy_pass http://localhost:8000/createImage;
}
location /test/ {
proxy_pass http://localhost:8000/test;
}
リバースプロキシはこのようにしております。
言い訳
まだプログラミングを勉強し始めて1年もたっていない初心者なので、APIサーバーについて全く分かっていなく、本当にnginxで建てるのか、ディレクトリはここで合っているのかなど手探りしている状態です。どうかお詳しい方々教えていただきたいです。