맨땅에 헤딩하는 개바른자

NGINX 사용을 해보았다 본문

인프라 TIP

NGINX 사용을 해보았다

앵낄낄 2022. 4. 14. 15:04
반응형

1. Nginx설정

Nginx는 웹 서비스를 유용하게 활용할 수 있는 유틸입니다. 웹 포트를 다 중으로 운영 할 수 있으며 L4와 같이 로드벨런싱 기능과 무중 단 배포 활용에 아주 유용하게 사용 됩니다.

1.1. 환경설정

1. /home/carrier/srv/nginx/ 하위 폴더에 기존 /etc/nginx 구성을 카피 된 환경을 만든다.

2. /home/carrier/srv/nginx/ 하위에 sites 폴더 구성 (있으면 생략)

 > cd /home/carrier/srv/nginx/

 > mkdir sites-avaliable

 > mkdir sites-enabled

3. /home/carrier/srv/nginx/nginx.conf를 수정

user  nginx;

worker_processes  1;

 

error_log  log/error.log warn;

pid        run/nginx.pid;

 

events {

    worker_connections  1024;

}

 

http {

    include       mime.types;

    default_type  application/octet-stream;

 

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for"';

 

    access_log  log/access.log  main;

 

    sendfile        on;

    #tcp_nopush     on;

 

    keepalive_timeout  65;

 

    #gzip  on;

    #include conf.d/*.conf;

 

    # ASIS환경은 80포트로 서비스 (변경가능)

    server {

        listen       80 default_server;

        listen       [::]:80 default_server;

        server_name localhost;

        include sites-enabled/*asis;

    }

 

    # TOBE환경은 8080포트로 서비스 (변경가능)

    server {

        listen       8080;

        listen       [::]:8080;

        server_name localhost;

        include sites-enabled/*tobe;

    }

}

 

1.2. location 파일 만들기

아래 목록과 같이 유형별로 /home/carrier/srv/nginx/sites-avaliable/ 하위에 asis, tobe 환경파일을 구성해 논다

[carrier@localhost sites-available]$ ls -lrt

-rw-rw-r--. 1 carrier carrier  68  4월 30 13:13 cruiser-tobe

-rw-rw-r--. 1 carrier carrier  67  4월 30 13:13 interceptor-asis

-rw-rw-r--. 1 carrier carrier  63  4월 30 13:13 cruiser-asis

-rw-rw-r--. 1 carrier carrier  67  4월 30 17:39 interceptor-tobe

 

1. 파일 상세 내용을 보면 아래와 같다

 > asis와 tobe의 차이점은 ip뿐이다 rootPath는 동일하게 한다.

[carrier@localhost sites-available]$ cat interceptor-asis

location /interceptor/ {

    proxy_pass http://172.17.0.4:9001/;

}

 

[carrier@localhost sites-available]$ cat interceptor-tobe

location /interceptor/ {

    proxy_pass http://172.17.0.5:9001/;

}

 

[carrier@localhost sites-available]$ cat cruiser-asis

location /cruiser/ {

    proxy_pass http://172.17.0.6:9001/;

}

 

[carrier@localhost sites-available]$ cat cruiser-tobe

location /cruiser/ {

    proxy_pass http://172.17.0.7:9001/;

}

 

1.3. 서비스 대상 링크 방법

1. /home/carrier/srv/nginx/sites-enabled폴더에 sites-avaliable에 만들어진 구성파일을 링크 한다.

 1) asis, tone 모두 서비스가 필요한 경우

  ln -s ../sites-avaliable/interceptor-asis interceptor-asis

  ln -s ../sites-avaliable/interceptor-tobe interceptor-tobe

 2) asis만 서비스

  ln -s ../sites-avaliable/interceptor-asis interceptor-asis

 

 3) asis 배포 작업 시 테스트 완료 된 tobe서비스 (무중단 배포 과정에서 쓰임)

  ln -s ../sites-avaliable/interceptor-tobe interceptor-asis

 4) 변경사항 적용

  docker exec nginx컨테이너ID nginx -s reload

 

반응형

'인프라 TIP' 카테고리의 다른 글

Docker 사용 방법  (0) 2022.04.14