NGINX 리버스 프록시 설정하기

NGINX 웹 서버에서 리버스 프록시를 설정하는 방법을 알아보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.


NGINX 웹 서버에서 리버스 프록시를 설정하는 방법을 알아보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.


실습 환경

  • 운영 체제(OS) : CentOS 8
  • 실행 계정 : root

NGINX Reverse Proxy 란?

Proxy는 일반적으로 여러 서버 간에 부하를 분산시키거나, 서로 다른 웹 사이트의 콘텐츠를 원활하게 표시하거나, HTTP 이외의 프로토콜을 통해 애플리케이션 서버에 처리 요청을 전달하는 데 사용됩니다.
NGINX 리버스 프록시의 용도는 로드 밸런싱을 제공하는 것입니다.

[NGINX] NGINX 리버스 프록시 설정하기
Nginx Reverse Proxy 구성도

Forward Proxy와 Reverse Proxy의 차이점

Forward Proxy 란?

일반적으로 Proxy 라고 불리며, 클라이언트에서 요청 시 Proxy를 통해 목적지에 요청하고 응답 받는 것을 말합니다.
Proxy가 요청자를 대신해서 웹 사이트를 검색하거나 컨텐츠를 받아서 전달해주는 중계자 역할을 합니다.


Reverse Proxy 란?

Load Balancer의 용도로도 사용되며, 클라이언트의 요청을 받아서 내부 서버로 전달해주는 Proxy를 말합니다.
서비스/콘텐츠 제공자인 서버에서 사용되며, 대표적으로 CDN 서비스가 있습니다.


NGINX Reverse Proxy 설정하기

NGINX는 요청을 프록시 할 때 요청을 지정된 프록시 서버로 보내고 응답을 가져온 다음 클라이언트로 다시 전송합니다.
HTTP 서버(NGINX/APACHE) 또는 비 HTTP 서버(PHP 또는 파이썬과 같이 특정 프레임워크로 개발된 애플리케이션을 특정 프로토콜을 사용하여 실행할 수 있는 서버)에 요청을 프록시할 수 있습니다.
지원되는 프로토콜로는 FastCGI, uwsgi, SCGI, memcached 등이 있습니다.


테스트 서버 정보

  • Proxy Server : NGINX Reverse Proxy (192.168.10.100:80)
  • Server 1: Apache Web (192.168.10.101:80)
  • Server 2: Apache Tomcat (192.168.10.102:8080)

NGINX 설정 추가하기

nginx.conf 파일에 proxy 관련 설정을 추가합니다. upstream 구문으로 이름을 설정하고 서버 아이피와 포트를 추가 합니다.

[sudo vi /etc/nginx/nginx.conf]

다음 내용을 추가합니다.

[http { proxy_intercept_errors on; proxy_buffers 256 4k; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Server $host; proxy_set_header X-Real-IP $remote_addr; proxy_read_timeout 300s; proxy_send_timeout 300s; proxy_connect_timeout 300s; upstream apache_web { server 192.168.10.101:80; } upstream apache_tomcat { server 192.168.10.102:8080; }]

apache_web 이나 apache_tomcat 으로 이름을 부여 한것을 볼 수 있는데, 다수의 서버가 있을 경우 아래와 같이 그룹으로 묶을 수 있습니다.

[upstream apache_web { server 192.168.10.101:80; server 192.168.10.102:80; server 192.168.10.103:80; }]

웹 서버의 도메인을 example-proxy.com 이라고 가정했을 경우 아래와 같이 설정 파일을 작성하시면 됩니다.
example-proxy.conf 파일로 해당 도메인의 /와 /app로 접속 시 위에서 설정한 서버들로 Proxy 해 주는 예제입니다.
URL 경로(path)가 / 일 경우 apache_web으로 Proxy 하고 /app로 접속 할 경우 apache_tomcat으로 Proxy 하게 됩니다.
동일한 서비스의 다중 서버를 구성한 뒤 upstream에 추가해주면 로드밸런싱이 적용됩니다.

[sudo vi /etc/nginx/conf.d/exampale-proxy.conf]

[server { liseten 80; server_name example-proxy.com; location / { proxy_pass http://apache_web/; } location /app { proxy_pass http://apache_tomcat/; }]

마무리

리눅스 서버에서 Nginx Reverse Proxy 설정 방법에 대해 알아보았습니다.
위 실습 내용을 통해 쉽게 적용하고 사용할 수 있습니다.

COMMENTS

이름

가상 머신 생성,1,가상 머신 자동 시작,2,그라파나 비밀번호 초기화,1,데이터베이스 설치,1,리눅스 메모리,1,리눅스 명령어 자동 완성,2,리눅스 백업,1,리눅스 설치,1,리눅스 시스템 언어,1,리눅스 언어 설정,1,리눅스 원격 명령 실행,1,리눅스 프로세스,1,리눅스 한글 설정,1,리눅스 LOCALE,1,리버스 프록시,1,맥북,1,메모리,1,모바일 리다이렉션,1,모바일 페이지,1,백업 스크립트,1,버추얼박스 설치,1,보안 취약점,1,사설 인증서,1,서버 관리,2,소스 컴파일,1,슬랙 사용법,1,슬랙 시작,1,슬랙 초보자 가이드,1,엔진엑스 설치,1,원격 데스크톱 연결,1,웹 접속 제한,1,윈도우 비밀번호 초기화,1,윈도우 전원 옵션,1,윈도우 PATH,1,이미지 압축,1,이미지 용량 줄이기,1,인증서 생성,1,인증서 설치,1,자동 로그인,1,자빅스 한글,1,자체 서명,1,점검 스크립트,1,젠서버 설치,1,커널 삭제,1,콘솔 파란색 설정,1,클립보드 공유,1,파이썬 설치,1,파일 업로드 제한,1,프로세스 관리,1,프로세스 오류,1,한국어 설정,1,한글 설정,1,한영 전환,1,호스트 전용 네트워크,1,ADMIN 초기화,1,APACHE,1,APPLICATIONS,16,Big Sur,1,CentOS,4,CentOS 6,9,CentOS 7,4,CentOS 8,21,CentOS 8 설치,1,CentOS 설치 이미지 다운로드,1,CentOS ISO Download,1,CentOS-Base.repo,1,Citrix Hypervisor,2,DATABASES,1,dnf install httpd,1,DROPPING PACKET,1,GRAFANA,1,htpasswd,1,HTTP 기본 인증,2,HTTPS,1,IPTABLES,1,ISMS,1,ISO 저장소,1,JENNIFER,1,jennifer_admintool,1,jpg smaller,1,LINUX,29,macOS,2,MariaDB,1,MONITORING,3,NF_CONNTRACK,1,NGINX,9,NGINX 설치,1,NGINX SSL 설정,1,openssl 인증서 생성,1,pam 인증,1,passwd,1,PHP,1,PHP-FPM 설치,1,PuTTY,1,PYTHON,1,RSYNC,1,SFTP,1,Shift + Space 한영 전환,1,SLACK,2,slack 사용법,1,SSH 인증,1,SSH 자동 로그인,2,SSHPASS,3,SSL 경고 로그,1,SSL 인증서,1,su,1,SWAP,1,TABLE FULL,1,TABLEAU,1,tinypng,1,TIP,1,TMUX,3,TMUX 설치,2,useradd,1,userdel,1,VirtualBox,4,VIRTUALIZATION,7,VM,3,VMware,1,VMware 무료 라이센스,1,Vmware Fusion,1,wheel 그룹,1,WINDOWS,7,Windows 10,7,XCP-ng,2,XenServer,4,YUM,1,ZABBIX,1,
ltr
item
시스템 엔지니어의 세상: NGINX 리버스 프록시 설정하기
NGINX 리버스 프록시 설정하기
NGINX 웹 서버에서 리버스 프록시를 설정하는 방법을 알아보고, 실습을 통해 쉽게 적용하고 사용할 수 있습니다.
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKUdmqLn45t8smD3LuGXd1TnGVrn47fbXasBlTYHdH0eC_3LymcuCz1EwNWQJMxpRSIeSr9_PIikrvJJfAW-QbZNuTGo1w2oPvt6rrf2nKk1aTH8GAhsj_NkkixUvctWTrkKRKMp0YHK0/s1600/nginx-reverse-proxy-ip.png
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKUdmqLn45t8smD3LuGXd1TnGVrn47fbXasBlTYHdH0eC_3LymcuCz1EwNWQJMxpRSIeSr9_PIikrvJJfAW-QbZNuTGo1w2oPvt6rrf2nKk1aTH8GAhsj_NkkixUvctWTrkKRKMp0YHK0/s72-c/nginx-reverse-proxy-ip.png
시스템 엔지니어의 세상
https://www.runit.cloud/2020/01/nginx-reverse-proxy.html
https://www.runit.cloud/
https://www.runit.cloud/
https://www.runit.cloud/2020/01/nginx-reverse-proxy.html
true
7559506062450536879
UTF-8
Loaded All Posts Not found any posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU LABEL ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS PREMIUM CONTENT IS LOCKED STEP 1: Share to a social network STEP 2: Click the link on your social network Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy Table of Content