nginx reverse proxy
Proxy Server 란
- 클라이언트가 자신을 통해, 다른 네트워크 서비스에 접속하게 해줄 수 있는 서버를 의미함—>요청과 응답 사이에 있는 놈!
Forward Proxy 란
- 클라이언트가 외부 인터넷에 직접 접근하는 것이 아니라.
- 클라이언트가 Proxy Server에 외부 인터넷 접근 요청을 하고,
- Proxy Server 가 외부 인터넷에 대신 접속하여 결과를 받은 후, 클라이언트에 전달하는 서버
Revers Proxy 란
- 클라이언트가 Reverse proxy에 요청하면,
- Reverse Proxy 가 관련 요청에 따라, 적절한 내부 서버에 접속하여 , 결과를 받은후 클라이언트에 전달 —> 예를 들어 mysql서버가 있다하자! 하지만 mysql서버가 각각 다른 기능을 하도록 쪼개서 만들어 뒀다면 Reverse Proxy가 요청에 따른 서버만 구동 시켜 데이터를 가져올 수 있다.
이 Proxy를 사용해 nginx를 혼합해서 사용을 할 수 있다.
nginx Revers Proxy
- nginx reverse proxy 서버에 포트를 두 개 오픈한 후 , 각 포트 접속시 , 각 내부 서버에서 결과를 가져오도록 구성 —> 어떻게 경로 OR 포트
- 내부 서버는 또다른 nginx 서버와 apache 서버로 구성
-
FileZilla를 통해 수업 자료를 업로드 하자
-
해당 경로의 파일을 들어가서 vi로 들어가자!
-
들어가면 경로 설정 되어 있는 것을 볼 수 있다.
🧐 8080 —> nginx 를 가르키고, 8081 —> htppd 를 가르킨다.
이에 따른 경로 설정은 nginx.conf가 해준다.
nginx/nginx.conf 파일
- 기본 nginx.conf 설정에 upstream설정과, server 설정 추가
- default.conf 설정과 겹치지 않도록, 기본 nginx.conf 에서 다음 항목은 삭제
- include /etc/nginx/conf.d/*.conf
-
nginx 파일을 찾아가 보자!
- /03_NGINX_PROXY_PORT 해당 경로에서 실행 해야하는 코드!!
—> cd nginx/
—> vi nginx.conf
성공!!
그렇다면 간략히 안에 내용들을 알아보자
- default는 보지 않아도 되는 부분 왜냐 기본적으로 셋팅이 되어있기 때문
하지만 설명을 하자면
- X-Real-IP : 클라이언트 IP주소
- X-Forwarded-For : 클라이언트 IP 주소를 식별하기 위한 설정으로, 클라이언트 IP 부터 중간 서버 IP들을 리스트로 작성해서 송부함
- X-Forwarded-Host : 중간 서버가 아닌, 실제 클라이언트의 호스트 이름을 기록함
- X-Forwarded-Proto : 클라이언트와 reserved proxy 접속시 사용한 프로토콜 설정
-
성공 했다면 먼저 실행을 해주자 —> docker-compose up -d
-
인바운드 규칙 추가
그렇다면 잘 실행된다