
포트 80과 443에서 다른 웹 서버를 제공하는 nginx 서버가 있는데 직접 공격하면 잘 작동합니다.
abc.com, zyx.com
client ---->abc.com,zyx.com (on nginx)
이제 나는 haproxy를 통해 동일한 작업을 수행하려고 시도하고 있지만 그렇게 할 수 없습니다.
client -----> abc.com, zyx.com (on haproxy) ----->nginx (abc.com, zyx.com)
haproxy와 nginx는 동일한 vpc에 있으므로 내부 IP를 호출하도록 추가로 수정하고 싶습니다. 같은 것이 달성될 수 있습니까?
다음은 haproxy의 구성입니다.
global
daemon
maxconn 100000
gid 99
uid 99
log /dev/log local0
log /dev/log local1 notice
nbproc 4
pidfile /etc/haproxy/pid
defaults
log global
mode http
maxconn 100000
option dontlognull
option forwardfor except 127.0.0.1
option http-server-close
option httpclose
option httplog
option http_proxy
option redispatch
option logasap
option log-separate-errors
retries 3
timeout http-request 86400
timeout queue 86400
timeout connect 86400
timeout client 86400
timeout server 86400
timeout http-keep-alive 3000
timeout check 2000
errorfile 400 /etc/haproxy/errors/400.http
errorfile 403 /etc/haproxy/errors/403.http
errorfile 408 /etc/haproxy/errors/408.http
errorfile 500 /etc/haproxy/errors/500.http
errorfile 502 /etc/haproxy/errors/502.http
errorfile 503 /etc/haproxy/errors/503.http
errorfile 504 /etc/haproxy/errors/504.http
frontend https-in
bind *:443 ssl crt /etc/haproxy/ssl/*.pem
reqadd X-Forwarded-Proto:\ https
acl abc hdr(host) -i abc.com
use_backend wow if abc
frontend http
bind *:80
compression algo gzip
compression type application/json text/html text/plain text/css
reqadd X-Forwarded-Proto:\ http
stats enable
stats hide-version
stats uri /stats
stats realm Haproxy\ Statistics
stats auth haproxy:haproxy
stats refresh 10s
acl zyx hdr(host) -i zyx.com
use_backend amazing if zyx
wow
server nginx someip:443 check
amazing
server nginx someip:80 check
다음은 nginx 서버의 구성입니다.
abc.com
server {
listen 443;
server_name abc.com;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /etc/nginx/ssl/*.crt;
ssl_certificate_key /etc/nginx/ssl/*.key;
location / {
root /location_of_webserver;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 360;
proxy_send_timeout 360;
proxy_read_timeout 360;
}
}
zyx.com
server {
listen 80;
server_name zyx.com;
location / {
alias /location_of_webserver/;
autoindex on;
expires 24h;
}
}
답변1
다음을 변경해 보세요.
wow
server nginx someip:443 check
amazing
server nginx someip:80 check
에게:
backend wow
server nginx ipaddress:443 check
backend amazing
server nginx ipaddress:80 check
로그 파일 오류로 질문을 업데이트할 수 있으면 원인을 더 쉽게 식별할 수 있습니다.