Setup mam taki:
VPS z nginxem, mam roota
Mój lokalny komputer gdzie mam proste api we flasku napisane.
MUSZĘ api hostować na swoim komputerze bo wykonuje obliczenia na GPU i zwraca jakiś tam idiotyczny wynik a chcę żeby to było dostępne przez kilka godzin dziennie z internetu. Hosting z GPU za drogi dlatego chcę to robić ze swojego laptopa.
No i teraz tak:
na lokalnej maszynie włączam apkę we flasku, lokalnie działa ok na porcie 7860.
W drugim oknie terminala wpisuję:
ssh -R 0.0.0.0połączenie ok, dostaję terminal na vpslocalhost:7860 [login]@[IP VPS]
na vps w nginx mam tak:
location / {
proxy_pass http://127.0.0.1:9003;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Original-URI $request_uri;
proxy_read_timeout 300s;
proxy_connect_timeout 75s;
}
No i kurwa nie działa.
curl mojadomena.pl -> Error 502 invalid response
z terminala na vps:
curl 127.0.0.1:9003 -> curl: (52) Empty reply from server
Co robię źle? Męczę od rana chata gpt i nie umie mi pomóc.
Jest jakiś inny sposób na wystawienie swojej apki na chwilę do internetu?
#serwer #it #hejtopytanie #informatyka
@entropy_ Nie jestem pewien, bo to zależy od ogólnego zestawienia, ale jak forwardujesz ze swojej maszyny na remote to będzie -L (local).
Jeśli jednak nie to, to może spróbuj rtunnel?
@ataxbras -L jest jeszcze gorzej curl na vps:
curl: (7) Failed to connect to 127.0.0.1 port 9003: Connection refused
@entropy_ Daj -vvv do ssh, może pokaże się jakiś problem.
@entropy_ - dawno temu przestałem bawić się w tunelowanie z własnej maszyny więc w tym nie pomogę.
Ale jakbym sam miał taki problem to stworzyłbym jedną funkcję Lambda z backendem DynamoDB na moim koncie AWS (do normalnego użytku Lambda i DynamoDB są za darmo w ramach Always Free Tier) i POSTem bym uaktualniał wartości a GETem bym je pobierał.
Do tego Lambda ma od pewnego czasu wbudowany REST API endpoint i nie trzeba używać API Gateway: https://aws.amazon.com/blogs/aws/announcing-aws-lambda-function-urls-built-in-https-endpoints-for-single-function-microservices/
Tu masz przykład takiej funkcji Lambda z włączonym własnym endpointem URL napisanej w Pythonie i obsługującej GET i POST: https://medium.com/@g.bharthvajan/create-simple-get-post-rest-api-with-aws-lambda-function-url-7fa962197fa8
@entropy_ a na co to api? A po co te numerki generujesz? A czemu tylko kilka godzin dziennie?
Zaloguj się aby komentować