[nginx] nginx에서 Back과 Front를 나누자.

florentyoon·2023년 1월 8일
1

Nginx

목록 보기
2/2

원랜 80포트와 81포트를 사용해서 두개의 포트를 각 로드밸런서를 사용해 포트포워딩할 생각이었다.
Route53에서는 포트별 적용이 되지 않으니 aws의 로드밸런서를 사용하는 것이 답이라 생각했다.

문제는 그 서비스를 사용하는데 $18가 들어간다.
서버 비용은 고작 $3.5인데....
결국 nginx 하나로 두 개의 작업을 분리할 방법을 찾고 찾고 또 찾다가 한 것이 location 분리다.

결과적으론 nginx의 location위치를 특정 uri에 맞춰서 내가 지정한 81포트로 접속되도록 한것이다.

한 서버에서 파생되었으니 일단 CORS문제도 해결될 것으로 보인다.

일단 설정파일에 접속한다. 난 우분투를 사용하고 있어서 설정파일은 sites-available 아래에 위치한다.
os별로 위치가 조금씩 다른 것 같다.

$ sudo vim /etc/nginx/sites-available/default
이것이 기본 내용인데, /api가 변경내용이다. 
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        
        root /var/www/html;
        index index.html index.htm index.nginx-debian.html index.php;
        
        server_name _;
        location / {
               try_files $uri $uri/ =404;
        }

//# 여기서 분리해준다. 81포트로 가라! 
        location /api {
                proxy_pass http://localhost:81/;
        }

이 작업은 우선 81포트로 갈 것을 지정해주는 것이다.
그렇다면 81포트에 이동한 후에 처리할 경로가 필요할 것이다.

그래서 sites-available 폴더 아래 내가 사용할 설정파일을 생성해준다. 그리고 링크를 sites-enabled에 걸어준다. 이래야 사용이 된다.

$ sudo ln -s /etc/nginx/sites-available/[새로만들거]
/etc/nginx/sites-enabled/

$ sudo systemctl restart nginx

이제 sites-enabled 폴더에 들어가면 내가 만든 파일이 링크되있을 것이다.

그럼 내 도메인에 접속한 후에 결과를 본다.

기존 도메인 80포트 사용

뒤에 api를 붙인 81포트 도메인

분리가 잘되었다. 이제 프론트와 백을 나눠서 만들어보자!

profile
florentyoon의 IT 세상

0개의 댓글