이것은 내 설정입니다.
서버 1 = Nginx는 포트 443에서 요청을 수신하고 이를 역방향 프록시로 사용하여 포트 80의 동일한 서버에 있는 Varnish 5로 보냅니다.
Varnish는 서버 2와 3(동일)의 포트 443에 대한 로드 밸런싱 요청입니다.
서버 2 및 3 = Apache가 요청을 수신하고 포트 443에서 애플리케이션에 액세스하고 있습니다.
SSL 인증서는 모든 서버에 설치됩니다.
웹사이트에 접속하려고 하면 다음과 같은 오류 400이 발생합니다.
귀하의 브라우저가 이 서버가 이해할 수 없는 요청을 보냈습니다. 원인: SSL 지원 서버 포트로 일반 HTTP를 보내고 있습니다. 대신 이 URL에 액세스하려면 HTTPS 체계를 사용하세요.
내 구성은 다음과 같습니다.
nginx:
server {
listen 443 ssl;
server_name server.mydomain.com;
ssl_certificate /etc/letsencrypt/live/server.mydomain.com/fullchain.pem;
ssl_certificate_key/etc/letsencrypt/live/server.mydomain.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:80;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Forwarded-Port 443;
proxy_set_header X-Secure on;
}
}
페인트:
backend server1 {
.host = "xx.xx.xx.xxx";
.port = "443";
}
backend server2 {
.host = "xx.xx.xx.xxx";
.port = "443";
}
sub vcl_recv {
if (req.restarts == 0) {
if (req.http.x-forwarded-for) {
set req.http.X-Forwarded-For =
req.http.X-Forwarded-For + ", " + client.ip;
} else {
set req.http.X-Forwarded-For = client.ip;
}
}
if (req.http.X-Real-IP) {
set req.http.X-Forwarded-For = req.http.X-Real-IP;
} else {
set req.http.X-Forwarded-For = client.ip;
}
...
}
아파치:
<VirtualHost *:443>
ServerName server.mydomain.com
DocumentRoot /var/www/mydomain/
<Directory /var/www/mydomain/>
AllowOverride All
Order allow,deny
allow from all
</Directory>
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/server.mydomain.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/server.mydomain.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/server.mydomain.com/chain.pem
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCompression off
SSLOptions +StrictRequire
SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-E$
LogLevel warn
ErrorLog ${APACHE_LOG_DIR}/server.mydomain.com-error.log
CustomLog ${APACHE_LOG_DIR}/server.mydomain.com-access.log combined
</VirtualHost>
문제를 이해하지만 해결책을 찾지 못했습니다. 어떤 제안이 있으십니까?
인사