Tôi muốn phục vụ nhiều trang web trên máy chủ của mình. Mỗi trang web tôi cho là bao bọc dưới dạng bản dựng docker-compose, mỗi trang có nginx riêng, lắng nghe một cổng duy nhất
Tôi có một trang web với tên máy chủ site1.com. Đó là docker Compose hiển thị cổng 81:
...
dịch vụ:
web:
hình ảnh: nginx
...
cổng:
- '81:443'
...
...
Và ứng dụng khách nginx (bên trong vùng chứa) lắng nghe mọi thứ trên 443 và có tất cả các cài đặt ssl
người phục vụ {
nghe 443 ssl;
ssl_certificate /etc/letsencrypt/fullchain1.pem;
ssl_certificate_key /etc/letsencrypt/privkey1.pem;
#...
# và mọi thứ khác
}
Và đây là máy chủ nginx, chỉ chuyển từ cổng 80 sang 81 theo server_name:
người phục vụ {
nghe 80;
nghe [::]:80;
server_name site1.com;
địa điểm / {
proxy_pass https://localhost:81;
}
}
Hiện tại nó đang hoạt động. Nhưng nó không an toàn. Vì vậy, tôi cố gắng thêm chuyển tiếp 443.
người phục vụ {
nghe 443;
nghe [::]:443;
server_name bederdinov.me;
địa điểm / {
proxy_pass https://localhost:81;
}
}
Nginx khởi động lại tốt, nhưng khi tôi truy cập https://site1.com
tôi đang nhận được một ERR_SSL_PROTOCOL_ERROR
Có vẻ khá rõ ràng - máy chủ nginx đang cố gắng phục vụ yêu cầu với ssl, nhưng chỉ docker client nginx mới biết cách thực hiện
Làm cách nào tôi có thể nói với máy chủ nginx rằng nó không phải làm bất cứ điều gì mà chỉ chuyển tất cả công việc cho máy khách nginx? Hoặc có thể có một phần mềm máy chủ khác mà tôi có thể sử dụng cho nhiệm vụ này?