CentOS 7 nginx tomcat reverse proxy
리버스 프록시란?
tomcat 앞에 nginx 또는 apache 같은 웹서버가 요청을 대신받아서 비지니스 로직이 필요한 부분은 톰캣에게 위임하고 정적리소스 지원같은 경우는 스스로 처리 하는 방법으로 ssl 터널링이나 웹컨테이너의 이중화, 정적 리소스 공유, 서브 도메인 사용 등 다양한 방법으로 쓰임.
- 비지니스 로직
- 정적 리소스 요청
예) 1개의 도메인으로 2개의 웹서비스를 하고 각각의 쉡서비스는 nginx 를 프록시로 사용하는 상황
nginx sites-available, sites-enabled 설정
http { } 맨 아래에 아래 내용을 추가하여 저장 하고
sites-available, sites-enabled 디렉토리를 생성한다.
- 디렉토리 생성
cd /etc/nginx
vi nginx.conf
mkdir sites-available
mkdir sites-enabled
- nginx.conf 편집 ( http{} 안 마지막 라인에 )
include /etc/nginx/sites-enabled/*
- 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
- 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;
}
}
- 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
댓글 없음:
댓글 쓰기