이번에는 요즘 많이 사용되고 있는 Nginx에 대해 설치 부터 튜닝까지 방법에 대해 진행해보겠습니다.
이번엔 두 번째로 Nginx에서 자주 사용하는 proxy_pass 에 대해 설명해드리겠습니다.
진행 순서는 1~8까지 가이드를 준비하고 있습니다.
- Nginx 설치 및 컴파일 방법_(모듈설치)
- Nginx 사용하는 옵션정리_proxy_pass
- Nginx 사용하는 옵션정리_upstream
- Nginx 사용하는 옵션정리_health-check
- Nginx 사용하는 옵션정리_sticky
- Nginx 사용하는 옵션정리_upstream, ip hash
- Nginx 사용하는 옵션정리_X-Forwarded-For
- Nginx 사용하는 옵션정리_php-fpm & zabbix 모니터링
- 1. Nginx 옵션 정리
- Nginx 메뉴얼 : http://nginx.org/en/docs/
- Nginx proxy_pass 관련 메뉴얼 : https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
- Nginx 옵션정리
| proxy_pass | DEV, QA, STG, PROD 서비스 보안(접근우회)과 속도향상, 서비스별 기능적 확장을 사용하기 위해 proxy pass 기능을 기본적으로 사용한다. 경로 : /app/WEB/proxy/*.conf 적용 : DEV, QA, STG, PROD ex)80 으로 받아서 8080으로 proxy_pass...샘플 location / { proxy_pass http://0.0.0.0:8080; } |
| health check |
파일 : health-check-xxx-xxxx.conf
경로 : /app/WEB/proxy/backend/xxx/health/ check intercal=2000 rise=5 fall=1 timeout=1000 type=http;
check_http_send "GET /m/hearth HTTP/1.0\r\n\r\n"; check_http_expect_alive_http_2xx; |
| mod_remote_ip |
프록시 (Proxy)를 거쳐서 들어오게 되면 서버나 소스에서는 모든 사용자의 아이피가 Proxy IP 로 들어오는 것을
lient IP로 로그에 남도록 하는 옵션 Client ip를 호출받기 위해서는 mod_remoteip를 사용해야 한다. Apache 2.2 이하에서는 mod_rpaf, Apache 2.4 이상에서는 mod_remoteip를 사용한다. 경로 : /app/WEB/proxy/*.conf proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; |
| X-Forwarded-For | XFF 는 HTTP Header 중 하나로 HTTP Server 에 요청한 clinet 의 IP 를 식별하기 위한 사실상의 표준이다. 제가 사용하는 Nginx는 Nginx.conf 에서 정의하지 않고 server-proxy-headers.conf 통합 관리한다. 경로 : /app/WEB/proxy/include 파일 : server-proxy-headers.conf |
| drt, x-drt (동적라우팅) | X-DRT request 헤더 또는 drt 쿠키 값으로 target was를 선정하는 것 WIKI => http://repo.test.com/drt/drt.html 파일 : /서비스별/*.conf map $cookie_drt {~~} map $http_x_drt {~~} |
| 캐싱, 버퍼링, 임시파일 |
proxy_buffer_size 128k
proxy_buffers 4 256k proxy_busy_buffers_size 256k 백엔드 서버로 전달되는 요청 수는 최대한 줄이는 것이 이상적이다. 제가 사용하는 nginx에는 버퍼링옵션, 엔진엑스가 임시 파일을 다루는 방식 뿐만 아니라 캐싱 시스템을 만드는 것을 돕고 사용을 하고 있다. |
2. Wildfly & Nginx 연동시 참고사항
또한 wildfly 와 Nginx 를 같이 사용할 때 proxy_pass 설정에 아래 내용은 추가를 해주셔야 정상 작동 됩니다.
- nginx 와 wildfly 사용시 proxy-pass 사용시 wildfly 에서 필수로 설정해줘야 하는 옵션이 있습니다.
- default 값이 false 라서 true로 설정하지 않으면 proxy-pass 가 정상동작 하지 않습니다.
| 파일 : standalone.xml (붉은색 부분 설정추가..) |
| 내용 : ... <http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" proxy-address-forwarding="true"/> ... |
'Apache Tomcat' 카테고리의 다른 글
| (Nginx-4) Nginx 사용하는 옵션 정리 4_(sticky, upstream, ip hash) (0) | 2023.10.13 |
|---|---|
| (Nginx-3) Nginx 사용하는 옵션 정리 3_(health-check) (1) | 2023.10.13 |
| (Nginx-1) Nginx 설치 및 컴파일 방법 (0) | 2023.10.12 |
| (JBoss & Wildfly) 기동, 다운 스크립트 생성 방법 (standalone.sh, domain.sh) (0) | 2023.10.11 |
| (JBoss & Wildfly) standalone-ha.xml 를 사용한 Cluster 구성 방법 (0) | 2023.10.11 |