보안을 안거치고 바로 노드에가던 haproxy를 sec에 거치게 수정

수정했는데 sec에서 연결이 좋지않은것같다

<aside> 💡

global log /dev/log local0 user haproxy group haproxy daemon

defaults mode http timeout connect 5000 timeout client 50000 timeout server 50000

#DNS 설정

resolvers docker_dns nameserver dns1 127.0.0.11:53 resolve_retries 3 timeout resolve 1s timeout retry 1s

#sec부분 주석처리

#backend be_clover #balance roundrobin

Host 헤더를 원래 요청대로 전달하도록 옵션 추가

#option http-server-close #http-request set-header Host %[req.hdr(Host)]

헬스체크도 80번 포트로만 간단하게

#server sec_gateway 10.147.21.50:80 check port 80

backend be_clover balance roundrobin

가상 IP 대신 실제 노드들의 IP와 서비스가 매핑된 포트를 적어줍니다.

예: node01 IP가 10.147.21.11이라면

server node01 10.147.21.11:80 check port 80 server node02 10.147.21.12:80 check port 80

</aside>

일단 sec에서 연결이 좋지않으니 노드에 직접 연결

이 아니라 다 바뀐다!!!!!

현재: cloud flare → haproxy → sec →node 순이다

하지만 바꿔야함!

cloud flare → sec → haproxy → node순으로 변경해야한다

원본

<aside> 💡

/etc/nginx/conf.d/sec-gateway.conf

ModSecurity 설정 연결

modsecurity on;

modsecurity_rules_file /etc/nginx/modsecurity-rules.conf;

upstream swarm_backend {

#server 10.147.21.10:80;

server 10.147.21.12:80;

server 10.147.21.13:80;

}

server {

listen 80;

server_name _;

location / {

proxy_pass http://swarm_backend;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

</aside>

sec노드

<aside> 💡

/etc/nginx/conf.d/sec-gateway.conf

#/etc/nginx/conf.d/sec-gateway.conf 수정

upstream haproxy_backend { server 10.147.20.20:80; }

server { listen 80; server_name www.sugeun.cloud;

location / { proxy_pass http://haproxy_backend; # 원본 IP 및 호스트 헤더 전달 (필수) proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }

}

</aside>

haproxy를 바라보게 한다