ฉันมี NGINX กำลังฟังพอร์ต 441 และ SSLH กำลังฟังพอร์ต: 441(https), 442(ssh) และสุดท้าย STUNNEL กำลังฟังพอร์ต 443 ที่ส่งต่อไปยัง SSLH (พอร์ต 2243)
การกำหนดค่า STUNNEL:
pid = /var/run/stunnel.pid
ใบรับรอง = /etc/letsencrypt/live/f1.example.com/fullchain.pem
คีย์ = /etc/letsencrypt/live/f1.example.com/privkey.pem
[slh]
ยอมรับ = 443
เชื่อมต่อ = 127.0.0.1:2243
การกำหนดค่า SSLH:
DAEMON_OPTS="--user sslh --listen 127.0.0.1:2243 --ssh 127.0.0.1:442 --ssl 127.0.0.1:441 --pidfile /var/run/sslh/sslh.pid"
การกำหนดค่า NGINX:
เซิร์ฟเวอร์ {
server_name f1.example.com;
ฟัง 441;
access_log /var/log/nginx/f1.access;
error_log /var/log/nginx/f1.error;
ตำแหน่ง /admin/ {
proxy_pass http://127.0.0.1:10000/;
proxy_set_header โฮสต์ $host;
proxy_redirect http://$host:10000/ /admin/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-ส่งต่อ-สำหรับ $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
เซิร์ฟเวอร์ {
ฟัง 80;
ส่งคืน 302 https://$host$request_uri;
}
อย่างที่คุณเห็นฉันกำลังเรียกใช้แอพ WEBMIN ใน /admin/ เส้นทางด้วยพร็อกซีย้อนกลับโดยใช้ NGINX ปัญหาของฉันคือเมื่อฉันพิมพ์ f1.example.com/admin ในเบราว์เซอร์ มันจะเปลี่ยนเส้นทางไปยังเวอร์ชัน HTTPS ซึ่งก็คือ https://f1.example.com/admin.
หลังจากเข้าสู่ระบบสำเร็จ ระบบจะเปลี่ยนเส้นทางไปที่ http://f1.example.com:441/admin/sysinfo.cgi?xnavigation=1 ซึ่งอยู่ใน HTTP พร้อมพอร์ต 441 (ฉันสงสัยว่าจะใส่หมายเลขพอร์ตที่นี่ได้อย่างไร) โหลดหน้าเว็บได้ดีแต่ไม่ได้อยู่ใน HTTPS ฉันต้องลบหมายเลขพอร์ตด้วยตนเองและกด Enter เพื่ออัปเกรดเป็น HTTPS
ฉันจะทำให้สิ่งนี้ทำงานกับ HTTPS ได้อย่างราบรื่นได้อย่างไร ฉันต้องทำการเปลี่ยนแปลงอะไรกับไฟล์คอนฟิก NGINX ของฉันบ้าง ฉันรู้สึกเหมือนขาดอะไรไปที่นี่