2020년 12월 20일 일요일

[linux] CentOS7 nginx tomcat revers proxy 설정

[linux] CentOS7 nginx tomcat revers proxy 설정

CentOS 7 nginx tomcat reverse proxy

리버스 프록시란?
tomcat 앞에 nginx 또는 apache 같은 웹서버가 요청을 대신받아서 비지니스 로직이 필요한 부분은 톰캣에게 위임하고 정적리소스 지원같은 경우는 스스로 처리 하는 방법으로 ssl 터널링이나 웹컨테이너의 이중화, 정적 리소스 공유, 서브 도메인 사용 등 다양한 방법으로 쓰임.

  • 비지니스 로직
clientnginxtomcat비지니스 로직비지니스 로직 처리 위임(jsp)처리 결과 리턴clientnginxtomcat
  • 정적 리소스 요청
clientnginxtomcat정적 리소스정적 리소스 요청(img,css,js 등)자체 캐싱된 데이터 리턴톰캣 성능 향상 효과clientnginxtomcat

예) 1개의 도메인으로 2개의 웹서비스를 하고 각각의 쉡서비스는 nginx 를 프록시로 사용하는 상황

nginx sites-available, sites-enabled 설정

http { } 맨 아래에 아래 내용을 추가하여 저장 하고
sites-available, sites-enabled 디렉토리를 생성한다.

  1. 디렉토리 생성
cd /etc/nginx
vi nginx.conf
mkdir sites-available
mkdir sites-enabled
  1. nginx.conf 편집 ( http{} 안 마지막 라인에 )
include /etc/nginx/sites-enabled/*
  1. sites-available 디렉토리에 asite.domain.com , bsite.dodamin.com 파일 생성

asite.domain.com, bsite.domain.com 서비스를 분리하는 상황으로 파일명은 맘대로 해도 (알아보기 쉽게 하기위해 도메인과 같이 만듦) 무관하다.

cd sites-available
touch asite.domain.com
touch bsite.domain.com
  1. asite.domain.com 요청을 처리할 설정 파일을 수정한다. bsite.domain.com 파일도 연결하고자 하는 톰캣 포트 번호화 서브도메인 명만 다르게 해서 저장
vi asite.domain.com
server {
    listen 80;
    server_name asite.domain.com;
    #http 요청시 https client 재요청 유도
    return 301 https://asite.domain.com$request_uri;
}


server {
    listen       443 ssl;
    server_name  asite.domain.com;

    charset utf-8;
    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;
    #    root   /usr/share/nginx/html;

    #ssl on;
    ssl_certificate crt 파일 경로;
    ssl_certificate_key key 파일 경로;

    client_max_body_size 2000M;
    proxy_max_temp_file_size 100M;

	#웹소켓
    location /웹소켓 URI{
        proxy_pass http://localhost:로컬톰캣포트;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "Upgrade";
        proxy_set_header Origin "";
    }
	#정적 리소스는 /var/www/asite.domain.com/static/resources/ 경로 참조
    location /resources/ {
        alias   /var/www/asite.domain.com/static/resources/;
        autoindex off;
        access_log off;
        #한달간 캐싱
        expires 1M;
    }

    location / {
        proxy_set_header    Host $http_host;
        proxy_set_header    X-Real-IP $remote_addr;
        proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header    X-Forwarded-Proto $scheme;
        proxy_set_header    X-NginX-Proxy true;
        proxy_pass http://localhost:로컬톰캣포트;
        proxy_redirect      off;
        charset utf-8;
        # buffer size
        proxy_buffering   on;
        proxy_buffer_size    1024k;
        proxy_buffers        1024   1024k;
        client_body_buffer_size 1024k;
        proxy_busy_buffers_size 1024k;
    }
}
  1. sites-enable 폴더에 심볼링 링크 생성

nginx 설정에 포함할 설정파일을 sites-available 하위 디렉토리로부터 심볼릭 링크를 생성한다.

cd /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/asite.domain.com ./asite.domain.com
ln -s /etc/nginx/sites-available/bsite.domain.com ./bsite.domain.com

nginx 재시작후 asite.domain.com, bsite.domain.com 접속 확인

댓글 없음:

댓글 쓰기

[lunux]리눅스 폴더별 용량 확인

리눅스 폴더별 용량 확인 조회 하고자 하는 디렉토리 리스트가있는 경로로 이동후 du -h --max-depth=1