문제상황
이미지서버와 백서버 2개를 가동하는데 처음의 url설계때 포트로 나누어지기 때문에 바로 리소스 표현
*ex)
http://localhost:5000/ping=>backserver
http://localhost:5001/ping=>imageserver
도메인을 한 개만 따놓았고 보통은 포트를 명시하지않고 요청을 보내므로 한 개의 도메인으로 분리된 서버로의 라우팅을 하려면 nginx의 location항목에 api의 주소들을 직접 따져가면서 기입 필요
해결방법
포트로 구분하지 않기 위해서는 추가적인 url명시가 필요하기 때문에 backserver와 apiserver라는 것을 추가하여 수정
*ex)
http://localhost/backserver/ping=>backserver
http://localhost/imageserver/ping=>imageserver
nginx>default.conf
upstream imageus_back {
server imageus_back:4000;
}
upstream imageus_image {
server imageus_image:4001;
}
server {
listen 80;
server_name _;
location = / {
proxy_pass http://imageus_back;
proxy_set_header X-Real-IP $remote_addr;
proxy_connect_timeout 5;
proxy_send_timeout 5;
proxy_read_timeout 5;
send_timeout 5;
}
location /swaggerui {
proxy_pass http://imageus_back;
proxy_set_header X-Real-IP $remote_addr;
proxy_connect_timeout 5;
proxy_send_timeout 5;
proxy_read_timeout 5;
send_timeout 5;
}
location /backapi {
proxy_pass http://imageus_back;
proxy_set_header X-Real-IP $remote_addr;
proxy_connect_timeout 5;
proxy_send_timeout 5;
proxy_read_timeout 5;
send_timeout 5;
}
location /imageapi {
proxy_pass http://imageus_image;
proxy_set_header X-Real-IP $remote_addr;
proxy_connect_timeout 10;
proxy_send_timeout 10;
proxy_read_timeout 10;
send_timeout 5;
}
}
*주소에 backapi가 붙은 것은 backserver로 이동,
imageapi가 붙은 것은 imaeserver로 이동
*swaggerui는 flask_restx를 사용 할 경우 swaggerui.css와 같은 static파일 요청이 기본적으로 localhost로 되어 있기 때문에 직접 자원을 주기위해 라우팅