Haproxy, varnish, h2o를 통한 환경 구축
No, Varnish still won't add SSL/TLS support.
varnish5.0.0이라도 ssl의 대응은 없는 것 같습니다
Instead in Varnish 4.1 we have added support for Willys PROXY protocol which makes it possible to communicate the extra details from a SSL-terminating proxy, such as HAProxy, to Varnish.
HAProxy를 사용하면 그런 느낌이 들기 때문에 설정을 해봤어요.
varnish하면 예전부터 ssl을 지원하지 않고 ssl에 대응하기 위해nginx를 넣는 등 LB로 하는 방법이 있었는데 이것은 HAProxy에서nginx의 역할을 하는 것과 같다.
버전 정보
참조 페이지
여기를 참고하여 설정하고 만약 순조롭지 못하면 아래의 절차를 확인하는 것이 좋으니 먼저 기재해 두세요.
https://blog.feryn.eu/varnish-4-1-haproxy-get-the-real-ip-by-leveraging-proxy-protocol-support/
varnish 설정
/etc/varnish/default.편집vcl
default.vcl# Default backend definition. Set this to point to your content server.
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
set req.http.x-clientip = client.ip;
set req.http.x-serverip = server.ip;
set req.http.x-localip = local.ip;
set req.http.x-remoteip = remote.ip;
}
backend default
h2o측에 가깝기 때문에 기본적으로 변하지 않습니다.vcl_recv
얼마나 추가됐나.
varnish 재부팅
[test-web01 ~]# /etc/init.d/varnish restart
Stopping Varnish Cache: [ OK ]
Starting Varnish Cache: [ OK ]
You have new mail in /var/spool/mail/root
[test-web01 ~]#
특별한 실수만 안 하면 돼.
HAProxy 설정
/etc/haproxy/haproxy.cfg의 수정
인증을 위한 서버 인증서를 준비해야 합니다.
haproxy.cfgfrontend http-in
bind *:80
bind *:443 ssl crt /****/****/****/****.pem
default_backend servers
backend servers
server server1 127.0.0.1:6081
HAProxy 다시 시작
특별한 실수만 안 하면 돼.
인증 주변에서 Warning이 발생하지만 error가 아니면 우선 문제가 없습니다.[test-web01 ~]# /etc/init.d/haproxy restart
Enter PEM pass phrase:
Stopping haproxy: [ OK ]
Enter PEM pass phrase:
Starting haproxy: Enter PEM pass phrase:
[ OK ]
[test-web01 ~]#
h2o 설정
/etc/h2o/h2o.conf 수정
기본 상태를 유지하면 localhost:80
의port를 8080
로 변경합니다.
나는 localhost:443
의 설정이 있다고 생각했지만varnish 측에서 h2o에 443 접근이 없기 때문에 그렇게 삭제하는 것은 문제없다.
h2o.confuser: nobody
hosts:
"localhost:80":
listen:
port: 8080
host: 0.0.0.0
paths:
"/":
file.dir: /var/www/html
access-log: /var/log/h2o/access.log
error-log: /var/log/h2o/error.log
pid-file: /var/run/h2o/h2o.pid
h2o의 재시작
특별한 실수만 안 하면 돼.[test-web01 ~]# /etc/init.d/h2o restart
Stopping h2o: [ OK ]
Starting h2o: start_server (pid:9908) starting now...
[ OK ]
[test-web01 ~]#
브라우저에서 확인
http를 통해 액세스
https로 액세스
varnish 동작을 확인했고 http,https에 접근할 수 있습니다.
Reference
이 문제에 관하여(Haproxy, varnish, h2o를 통한 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nnmr/items/2ba6d2d1edd309e4c05c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
/etc/varnish/default.편집vcl
default.vcl
# Default backend definition. Set this to point to your content server.
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
set req.http.x-clientip = client.ip;
set req.http.x-serverip = server.ip;
set req.http.x-localip = local.ip;
set req.http.x-remoteip = remote.ip;
}
backend default
h2o측에 가깝기 때문에 기본적으로 변하지 않습니다.vcl_recv
얼마나 추가됐나.varnish 재부팅
[test-web01 ~]# /etc/init.d/varnish restart
Stopping Varnish Cache: [ OK ]
Starting Varnish Cache: [ OK ]
You have new mail in /var/spool/mail/root
[test-web01 ~]#
특별한 실수만 안 하면 돼.HAProxy 설정
/etc/haproxy/haproxy.cfg의 수정
인증을 위한 서버 인증서를 준비해야 합니다.
haproxy.cfgfrontend http-in
bind *:80
bind *:443 ssl crt /****/****/****/****.pem
default_backend servers
backend servers
server server1 127.0.0.1:6081
HAProxy 다시 시작
특별한 실수만 안 하면 돼.
인증 주변에서 Warning이 발생하지만 error가 아니면 우선 문제가 없습니다.[test-web01 ~]# /etc/init.d/haproxy restart
Enter PEM pass phrase:
Stopping haproxy: [ OK ]
Enter PEM pass phrase:
Starting haproxy: Enter PEM pass phrase:
[ OK ]
[test-web01 ~]#
h2o 설정
/etc/h2o/h2o.conf 수정
기본 상태를 유지하면 localhost:80
의port를 8080
로 변경합니다.
나는 localhost:443
의 설정이 있다고 생각했지만varnish 측에서 h2o에 443 접근이 없기 때문에 그렇게 삭제하는 것은 문제없다.
h2o.confuser: nobody
hosts:
"localhost:80":
listen:
port: 8080
host: 0.0.0.0
paths:
"/":
file.dir: /var/www/html
access-log: /var/log/h2o/access.log
error-log: /var/log/h2o/error.log
pid-file: /var/run/h2o/h2o.pid
h2o의 재시작
특별한 실수만 안 하면 돼.[test-web01 ~]# /etc/init.d/h2o restart
Stopping h2o: [ OK ]
Starting h2o: start_server (pid:9908) starting now...
[ OK ]
[test-web01 ~]#
브라우저에서 확인
http를 통해 액세스
https로 액세스
varnish 동작을 확인했고 http,https에 접근할 수 있습니다.
Reference
이 문제에 관하여(Haproxy, varnish, h2o를 통한 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nnmr/items/2ba6d2d1edd309e4c05c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
frontend http-in
bind *:80
bind *:443 ssl crt /****/****/****/****.pem
default_backend servers
backend servers
server server1 127.0.0.1:6081
[test-web01 ~]# /etc/init.d/haproxy restart
Enter PEM pass phrase:
Stopping haproxy: [ OK ]
Enter PEM pass phrase:
Starting haproxy: Enter PEM pass phrase:
[ OK ]
[test-web01 ~]#
/etc/h2o/h2o.conf 수정
기본 상태를 유지하면
localhost:80
의port를 8080
로 변경합니다.나는
localhost:443
의 설정이 있다고 생각했지만varnish 측에서 h2o에 443 접근이 없기 때문에 그렇게 삭제하는 것은 문제없다.h2o.conf
user: nobody
hosts:
"localhost:80":
listen:
port: 8080
host: 0.0.0.0
paths:
"/":
file.dir: /var/www/html
access-log: /var/log/h2o/access.log
error-log: /var/log/h2o/error.log
pid-file: /var/run/h2o/h2o.pid
h2o의 재시작
특별한 실수만 안 하면 돼.
[test-web01 ~]# /etc/init.d/h2o restart
Stopping h2o: [ OK ]
Starting h2o: start_server (pid:9908) starting now...
[ OK ]
[test-web01 ~]#
브라우저에서 확인
http를 통해 액세스
https로 액세스
varnish 동작을 확인했고 http,https에 접근할 수 있습니다.
Reference
이 문제에 관하여(Haproxy, varnish, h2o를 통한 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nnmr/items/2ba6d2d1edd309e4c05c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Haproxy, varnish, h2o를 통한 환경 구축), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nnmr/items/2ba6d2d1edd309e4c05c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)