티스토리 뷰
지난번에 간단하게 nginx 설치를 해봤다. 설치를 했으면 써먹어보자.
일단은 was와 연동을 하는 작업을 해보자. 보통은 web-was 연동을 해서 was라고 표현을 했지 프록시 서버 역할을 할거라 연결할 수 있는 무엇이든 상관 없다.
was는 현재 local에서 기동되었고 http://localhost:8080 으로 접근할 수 있다.
nginx의 대부분의 설정은 nginx.conf 파일에서 진행을 한다. 위치는 nginx설치경로/conf/nginx.conf 이다. 작업을 하기 전에는 항상 nginx.conf 파일을 백업을 해두고 하자.
nginx.conf
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://localhost:8080;
}
... 후략...
}
이 파일을 열어보면 수많은 주석들이 존재하지만 위의 구문을 잘 찾아서 저렇게 수정을 해준다. localhost:80 으로 요청이 들어오면 proxy_pass로 localhost:8080 으로 연결을 해준다는 뜻이다. 수정을 한 후에는 nginx 재기동을 하고 확인을 해주자. 브라우저 주소창에는 위에 설정한대로 localhost만 입력을 하면 된다.
하나의 server_name에 대해서 하나의 was서버 연결을 위와 같이 해봤다. 이제는 하나의 server_name에 대해 여러개의 was서버 연결(로드밸런싱)을 해보자. 로드밸런싱을 할 was의 정보는 다음과 같다. 물론 was는 기동을 해놓는다.
was1 - localhost:8080
was2 - localhost:8082
nginx.conf
http {
# ... 중략 ...
upstream mywas {
server 127.0.0.1:8080;
server 127.0.0.1:8082;
}
server {
listen 80;
server_name localhost;
location / {
proxy_set_header Host $host;
proxy_pass http://mywas;
}
# ... 중략 ...
}
}
upstream 부분에 was의 도메인 목록을 기술을 해준다. 그리고 그 key값이 되는 mywas (맘대로 변경가능) 을 proxy_pass 에 매핑을 시켜준다. 이렇게 작업을 해줄때 여기에 옵션들을 많이 붙일 수 있는데 이는 다음과 같다.
upstream option | desc |
ip_hash | 동일한 요청자가 보낸 요청은 항상 같은 서버가 처리한다. |
weight=n | 이걸 붙인 서버는 그만큼 더 많이 이용된다. 지정하지 않은 서버보다 n배 더 많이 이용된다. |
max_fails=n | n번만큼 실패가 이루어지면 서버가 동작하지 않는 것으로 처리한다. |
fail_timeout=n | max_fails와 연계되어 동작되며 n으로 설정된 값만큼 응답이 없을경우 서버가 동작되지 않는 것으로 처리한다. |
down | 이걸 붙인 서버는 동작을 하지 않게 지정한다. |
backup | 등록한 모든 서버들이 동작하지 않을때 동작할 녀석을 지정한다. |
이를 조합해서 사용하면 다음과 같은식으로 사용할 수 있다.
upstream backend {
ip_hash;
server backend1.example.com weight=5;
server 127.0.0.1:8080 max_fails=3 fail_timeout=30s;
server unix:/tmp/backend3;
server backup1.example.com backup;
}
설정이 다 끝났다면 nginx를 재기동하고 브라우저에 localhost로 접근을 해보면 was1, was2 로 로드밸런싱이 되는 것을 확인 할 수 있다.
만약 위처럼 했는데 뜻대로 안된다면 로그파일을 보도록 하자. 로그파일은 nginx설치경로/logs/error 에 있다.
끝!
'Server > Web' 카테고리의 다른 글
Node.js 버전 변경하기 (with NVM 사용법) (0) | 2022.06.09 |
---|---|
대용량 파일 업로드시 nginx 504 Gateway Time-out 오류 조치 (0) | 2020.11.20 |
1분만에 Windows에 nginx 설치하기 (0) | 2020.09.24 |
Apache에서 HTTP > HTTPS Redirect 하는 방법 (1) | 2020.07.02 |
Apache 중지/시작/재시작 및 로그설정 (0) | 2020.05.19 |