일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- jpa
- ClientHttpRequestInterceptor
- JsonType
- Spring Boot
- JsonStringType
- AOP
- AccessLevel
- Thread Safety
- ResponseBodyAdvice
- AOP 매개변수
- 개방/폐쇄 원칙
- vaultTemplate
- RestTemplate
- Stream
- findFirst
- restTemple
- Starter
- fotmatter
- spring
- LogInterceptor
- AOP target
- gradle
- @AutoConfiguration
- 포맷터
- findAny
- java
- Save Action
- AOP this
- auto configuration
- 쓰레드 안전
- Today
- Total
맨땅에 헤딩하는 개바른자
NGINX 사용을 해보았다 본문
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 |
---|