티스토리 뷰

지난번에 간단하게 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 에 있다. 

 

끝!

댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30