Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- centos 7.5
- GNOME
- bash
- 파이썬
- Chrome
- Elk
- PostgreSQL
- Shell
- Audit Log
- 빅데이터
- syslog
- log
- C
- 디렉토리
- Elasticsearch
- zabbix
- audit
- GPU
- 서울시민카드
- JSON
- docker
- K8S
- yum
- 크롬
- RHEL
- Linux
- rsyslog
- Kubernetes
- Python
- CentOS
Archives
- Today
- Total
Sysops Notepad
[Linux] Centos Haproxy Client IP forward 설정 본문
728x90
global
daemon # 백그라운드에서 동작
user haproxy
group haproxy
log 127.0.0.1 local0
log 127.0.0.1 local1 notice
maxconn 4096 # 프로세스 별 최대 connection 갯수
ssl-default-bind-options no-sslv3 # Bind SSL 프로토콜 정의
ssl-default-bind-ciphers ECDHE-RSA-AES128-GCM-SHA256:... # Bind SSL 사용 알고리즘 목록 정의
ssl-default-server-options no-sslv3 # Server SSL 프로토콜 정의
ssl-default-server-ciphers ECDHE-RSA-AES128-GCM-SHA256:... # Server SSL 사용 알고리즘 목록 정의
tune.ssl.cachesize 100000 # SSL Session Cache 크기 설정
tune.ssl.lifetime 600 # SSL Session 유효시간 설정
tune.ssl.default-dh-param 2048 # Diffie-Hellman 키 교환 시 최대 크기 설정
frontend https-in
mode http
log global
option httplog
option dontlognull
bind *:80 # listening 되어야하는 ip, port 설정
bind *:443 ssl crt ~/key.pem ca-file ~/key.ca verify optional alpn h2,http/2
timeout client 30s # client에서 haproxy 접속 시 timeout 설정
timeout http-keep-alive 5s # 새로운 http 요청이 들어오기까지의 대기시간
acl stats hdr(host) -i test.haproxy.com # host 지정 모든문자열이 일치 할 경우
acl host_api_cluster hdr(host) -i test.server.com
use_backend haproxy_stats if host_haproxy_stats # host가 일치할 때 지정 된 backend로 진행
use_backend test_server if host_api_cluster
backend test_server
mode http
log global
option httplog
#option forwardfor header X-Client-IP
#option http-server-close
balance leastconn # 요청 분배 알고리즘 설정
timeout connect 10s # haproxy에서 server 접속 시 timeout 설정
timeout check 5s # haproxy에서 check 목적으로 접속 시 timeout 설정
timeout server 30s # haproxy에서 server 접속 시 timeout 설정
timeout http-keep-alive 5s # 새로운 http 요청이 들어오기까지의 대기시간
acl valid_method method GET POST PUT DELETE # 허용할 메소드 설정
http-request deny if ! valid_method # 메소스 조건 확인
http-request replace-value Host (.*):.* 1 # server에 client에서 요청한 Host 전달
http-request set-header x-forwarded-for %ci # server에 remoteAddress 전달
#http-request set-header X-Client-IP %[src]
#http-request set-header X-Client-IP req.hdr_ip([X-Forwarded-For])
option httpchk GET /status # server에 지정된 상태 체크 url로 요청하여 확인
http-check expect status 200 string OK # 응답 시 상태코드 200 + 문자열 OK 확인
default-server inter 100 rise 2 fall 5 # 검사 조건 (확인 주기 100/ms, 2번이상 성공시 정상 확인, 5번이상 실패 시 제외)
server server-001 192.168.0.1:8080 check # 서버 alias, ip:port, 검사 여부
server server-002 192.168.0.2:8080 check
server server-003 192.168.0.3:8080 check
backend stats
mode http
log global
option httplog
option http-server-close # 응답이 완료되면 server 측에서 연결을 종료함
stats enable # 모니터링 활성화
stats auth id:password # 모니터링 인증 활성화 basic auth 아이디, 비밀번호 설정
stats uri /stats # 모니터링 페이지 url 설정
stats hide-version # 버전 숨김
참고:
https://belong2jesus.tistory.com/89
https://meetup.toast.com/posts/163
https://blog.whitelife.co.kr/321
728x90
'업무 > sys' 카테고리의 다른 글
[Linux] Centos 7 dnsmasq를 이용한 local dns 구축 (0) | 2019.02.22 |
---|---|
[Linux] Centos 웹 서버(Apache,Nginx) X-Forwarded-For Log 설정 (0) | 2019.02.19 |
[Docker] 호스트와 컨테이너간 파일 복사 (0) | 2019.02.15 |
[Docker] nvidia-docker2 run 사용시 옵션 (0) | 2019.02.15 |
[Docker] bridge-nf-call-iptables WARNING message 발생시 조치 방법 (0) | 2019.02.14 |
Comments