Tôi đã cố gắng thiết lập chuỗi chuyển hướng sau qua proxy ngược bằng Apache2
# âââââââââââââââââ ââââââââââââââââ âââââââââââââ
# â Internet â
# â ââââââââââââââââ âââââââââ â
#ââââ
# â â client â â
# â âââââââââââââ¬âââ âââââââââ â
#âââ
#âââ
# â â c.example.com â
#âââ
#âââ
# ââââââââââ¼âââââââ ââââââââââââââââ¼â âââââââââââââââââ ââââ¼âââââââââ
#âââââ
#âââââââââââââââââ ââ¼âââââââââââââââ â â â
# â â â Máy chủ công cộng â â â
# â â â pub.ip 123.123.123.123 â â â
#âââââââââââââââââ âââââââââââââ â â â
# â â â â Proxy công khai â â â â
#âââââ¬ââââââââââââ ââââââââââââ¬â â â â
# â â â â int.ip 10.0.0.2 â â â â
# â â âââââ¼ââââââââââ ââââââââââââââ¼âââ â â â
#ââââââ
#ââââââ
# â ââââââââââââ¼ââââ âââââââââââââââââ âââ¼ââââââââââ â
#ââââ
# â â a.example.com â b.example.com â
# â â c.example.com â d.example.com â
#ââââ
#ââââ
#ââââ
#ââââ
# â âââââââââââââ¼âââ âââââââââââââââââ ââââ¼ââââââââââââ â bạn
#ââââââ
#ââââââ
# â â âââââââââ¼ââââââ ââ âââââââââ¼ââââââ ââ â â
# â â â Máy chủ riêng-1â â Máy chủ riêng-2â â â
#âââââââââââââââââ â âââââââââââââ â â â
# â â â âInner Proxyâ â â âInner Proxyâ â â â
#ââââââ¬ââââââââ¬âââ â âââ¬ââââââââ¬ââ â â â
#ââââââââââââ
# â â âââââ¼ââââââââ¼ââ â⤠âââââ¼ââââââââ¼âââ ⤠â â
#ââââc. âa. â â âb. âd. â â â
#ââââââââââââ
#ââââââââââââ
# â â â âââ¼âââ ââââ¼ââ â â âââ¼âââ ââââ¼ââ â â â
# â â â â â â â â â â â â â â â
# â â â â â â â â â â â â â â â
# â â â âsrv1â âsrv2â â â âsrv3â âsrv4â â â â
#ââââ10.1ââ10.1ââââ10.1ââ10.1âââ â
# â â â â.0.2â â.0.3â â â â.0.4â â.0.5â â â â
#âââââââââ ââââââ ââ ââââââ ââââââ â â â
# â â â container â â container â â â
#âââââââââââââââââ ââ ââââââââââââââ âââ â â
# â â 10.0.0.3 10.0.0.4 â â
#ââââ
# â ââââââââââââââââ ââââââââââââââââ âââââââââââââââââ â
# â 1ntranet 10.0.0.0/24 â
# âââââââââââââââââ ââââââââââââââââ âââââââââââââââââ ââââââââââââââ
File cấu hình của mình như sau (giống nhau trên public và private host, thay đổi IP cho phù hợp)
# c-example-com.conf trên máy chủ công khai
<IfModule mod_ssl.c>
<Máy chủ ảo *:443>
Tên máy chủ c.example.com
<Ủy quyền *>
Lệnh từ chối, cho phép
cho phép từ tất cả
</Ủy quyền>
Bao gồm /etc/letsencrypt/options-ssl-apache.conf
Công cụ SSL bật
SSLCertificateFile /etc/letsencrypt/live/c.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/c.example.com/privkey.pem
Yêu cầu proxy tắt
ProxyPreserveHost Bật
SSLProxyEngine bật
ProxyPass / https://10.0.0.3/ # trên máy chủ riêng, đây sẽ là 10.1.0.2 cho tất cả các lượt còn lại
ProxyPassReverse / https://10.0.0.3/
</Máy chủ ảo>
</IfModule>
<IfModule mod_ssl.c>
<Máy chủ ảo *:80>
Tên máy chủ c.example.com
<Ủy quyền *>
Lệnh từ chối, cho phép
cho phép từ tất cả
</Ủy quyền>
Yêu cầu proxy tắt
ProxyPreserveHost Bật
ProxyPass / http://10.0.0.3/
ProxyPassReverse / http://10.0.0.3/
RewriteEngine bật
</Máy chủ ảo>
</IfModule>
<Máy chủ ảo *:80>
Tên máy chủ c.example.com
<Ủy quyền *>
Lệnh từ chối, cho phép
cho phép từ tất cả
</Ủy quyền>
Yêu cầu proxy tắt
ProxyPreserveHost Bật
ProxyPass / http://10.0.0.3/
ProxyPassReverse / http://10.0.0.3/
RewriteEngine bật
RewriteCond %{SERVER_NAME} =c.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R= Permanent]
</Máy chủ ảo>
Không có máy chủ công cộng, I E. nếu máy chủ riêng 1 được tiếp xúc với internet và IP công khai của nó được ánh xạ tới tên miền và chuyển hướng đến vùng chứa srv1 thông qua một proxy ngược, thì nó sẽ hoạt động tốt. Tuy nhiên, khi proxy công khai được xâu chuỗi trên đầu proxy bên trong 1, thì điều sau đây sẽ xảy ra:
1). http://c.example.com hiển thị mặc định index.html
của Apache2 từ Máy chủ công cộng
2). https://c.example.com từ chối kết nối.
Mỗi lớp (máy chủ công cộng, máy chủ riêng và máy chủ) có chứng chỉ SSL riêng, nhưng đó chỉ là thứ yếu. Hiện tại, ngay cả http cũng không hoạt động. Bất kỳ ý tưởng?