Điều gì còn thiếu ở đây?
Sự cố xảy ra không phải trên tất cả các thiết bị. Một số hiển thị rằng "Kết nối này không an toàn." cho redmine và gitlab. Nhưng buồng lái thì không. Giải pháp cho câu đố bây giờ là các quy tắc cho Gitlab và Redmine chưa hoàn thành và các yêu cầu https bị kẹt ở hư không.
Các quy tắc cho cổng 443 (https) bị thiếu. Bây giờ tôi đã thay đổi các khối thành hai:
- Chuyển hướng yêu cầu http sang https
- lắng nghe các yêu cầu https và chuyển tiếp chúng đến ứng dụng
Điều này bây giờ trông như thế này:
/etc/nginx/sites-available/gitlab.<myserver> liên kết đến /etc/nginx/sites-enabled/gitlab.<myserver>
# chuyển hướng yêu cầu http sang https trong khi vẫn giữ uri yêu cầu
người phục vụ {
nghe 80;
nghe [::]:80;
server_name gitlab.<myserver>;
trả về 301 https://gitlab.<myserver>$request_uri;
}
# yêu cầu https sẽ được chuyển tiếp đến ứng dụng máy chủ
người phục vụ {
nghe 443 ssl;
nghe [::]:443 ssl;
server_name gitlab.<myserver>;
địa điểm / {
proxy_pass http://<docker-net-ip>:<port>;
tắt proxy_buffering;
proxy_set_header X-Real-IP $remote_addr;
# Lưu ý: Bạn nên tắt gzip cho lưu lượng SSL.
# Xem: https://bugs.debian.org/773332
gzip tắt;
}
}
/etc/nginx/sites-available/redmine.<myserver> liên kết đến /etc/nginx/sites-enabled/redmine.<myserver>
# chuyển hướng yêu cầu http sang https trong khi vẫn giữ uri yêu cầu
người phục vụ {
nghe 80;
nghe [::]:80;
server_name redmine.<myserver>;
trả về 301 https://redmine.<myserver>$request_uri;
}
# yêu cầu https sẽ được chuyển tiếp đến ứng dụng máy chủ
người phục vụ {
nghe 443 ssl;
nghe [::]:443 ssl;
server_name redmine.<myserver>;
địa điểm / {
proxy_pass http://<docker-net-ip>:<port>;
proxy_set_header Máy chủ lưu trữ $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Lưu ý: Bạn nên tắt gzip cho lưu lượng SSL.
# Xem: https://bugs.debian.org/773332
gzip tắt;
}
}
/etc/nginx/sites-available/cockpit.<myserver> liên kết đến /etc/nginx/sites-enabled/cockpit.<myserver>
người phục vụ {
nghe 80;
nghe 443 ssl;
server_name buồng lái.<máy chủ của tôi>;
địa điểm / {
# Bắt buộc phải ủy quyền kết nối với Buồng lái
proxy_pass https://127.0.0.1:9090;
proxy_set_header Máy chủ lưu trữ $host;
proxy_set_header X-Forwarded-Proto $scheme;
# Cần thiết để ổ cắm web hoạt động
proxy_http_version 1.1;
tắt proxy_buffering;
proxy_set_header Nâng cấp $http_upgrade;
proxy_set_header Kết nối "nâng cấp";
# Truyền tiêu đề ETag từ Buồng lái cho khách hàng.
# Xem: https://github.com/cockpit-project/cockpit/issues/5239
gzip tắt;
}
}
và /etc/cockpit/cockpit.conf
[Dịch vụ web]
Nguồn gốc = https://cockpit.<myserver> 127.0.0.1:9090
ProtocolHeader = X-Forwarded-Proto
[Nhật ký]
Chết người = /var/log/cockpit.log
[Phiên họp]
Thời gian chờ nhàn rỗi = 15
và cho ong hoàn thành:
/etc/nginx/sites-available/default liên kết đến /etc/nginx/sites-enabled/default
##
# Bạn nên xem URL sau để hiểu rõ
# tệp cấu hình Nginx để giải phóng hoàn toàn sức mạnh của Nginx.
# https://www.nginx.com/resources/wiki/start/
# https://www.nginx.com/resources/wiki/start/topics/tutorials/config_pitfalls/
# https://wiki.debian.org/Nginx/DirectoryStructure
#
# Trong hầu hết các trường hợp, quản trị viên sẽ xóa tệp này khỏi các trang web đã bật/ và
# để nó làm tài liệu tham khảo bên trong các trang web có sẵn, nơi nó sẽ tiếp tục tồn tại
# được cập nhật bởi nhóm đóng gói nginx.
#
# Tệp này sẽ tự động tải các tệp cấu hình do người khác cung cấp
# ứng dụng, chẳng hạn như Drupal hoặc WordPress. Các ứng dụng này sẽ được thực hiện
# có sẵn bên dưới đường dẫn có tên gói đó, chẳng hạn như /drupal8.
#
# Vui lòng xem /usr/share/doc/nginx-doc/examples/ để biết thêm các ví dụ chi tiết.
##
# Cấu hình máy chủ mặc định
#
người phục vụ {
nghe 80 default_server;
lắng nghe [::]:80 default_server;
# Cấu hình SSL
#
# nghe 443 ssl default_server;
# lắng nghe [::]:443 ssl default_server;
#
# Lưu ý: Bạn nên tắt gzip cho lưu lượng SSL.
# Xem: https://bugs.debian.org/773332
#
# Đọc ssl_ciphers để đảm bảo cấu hình an toàn.
# Xem: https://bugs.debian.org/765782
#
# Chứng chỉ tự ký được tạo bởi gói ssl-cert
# Đừng sử dụng chúng trong máy chủ sản xuất!
#
# bao gồm đoạn trích/snakeoil.conf;
gốc/var/www/html;
error_log /opt/logs/certbot_error gỡ lỗi;
}