นั่นเป็นคำขอพื้นฐาน ฉันจะตอบโดยทั่วไปเนื่องจากผู้ใช้ไม่ได้ให้ข้อมูลที่เพียงพอเพื่อให้แม่นยำยิ่งขึ้น คำเตือน: ดังนั้นสิ่งนี้จะตอบโดยทั่วไป
ข้อมูลเบื้องต้น
ผู้ใช้แจ้งว่าต้องการฟังหรือพอร์ต 5,000 สำหรับ https
เปลี่ยนเส้นทาง http เป็น https มาตรฐาน
เซิร์ฟเวอร์ {
server_name *.domain.tld โดเมน.tld;
#ฟังพอร์ต 80
ฟัง 80;
#เปลี่ยนเส้นทางไปที่ https
ส่งคืน 301 https://$host$request_uri;
}
ฟัง NGINX บนพอร์ต 5000
เซิร์ฟเวอร์ {
server_name *.domain.tld โดเมน.tld;
#ฟังพอร์ต 5000, http
ฟัง 5,000;
#เพิ่มของที่นี่
}
คำสั่งเซิร์ฟเวอร์ https มาตรฐาน โดยใช้ Certbot สำหรับการสร้างใบรับรอง
เซิร์ฟเวอร์ {
#ฟังบน 443 สำหรับ SSL (https) ด้วย http 1.0/1.1
#ฟัง 443 ssl;
#ฟัง 44 สำหรับ SSL (https) กับ http 2
ฟัง 443 ssl http2;
#สิ่งที่เราฟังสำหรับโดเมน
server_name *.domain.tld โดเมน.tld;
ที่ตั้ง / {
รูท /var/www/vhosts/domain.tld;
}
ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem; # จัดการโดย Certbot
}
Reverse-Proxy พื้นฐานฟังบนพอร์ต 80 http และพอร์ต 443 SSL
เซิร์ฟเวอร์ {
#ฟังบน 80 สำหรับ https ด้วย http 1.0/1.1
ฟัง 80;
#ฟัง 80 สำหรับ https ด้วย http 2 (ปิดใช้งาน certbot ไม่เข้าใจในพอร์ต 80)
#ฟัง80 http2;
#ฟังบน 443 สำหรับ SSL (https) ด้วย http 1.0/1.1
#ฟัง 443 ssl;
#ฟัง 44 สำหรับ SSL (https) กับ http 2
ฟัง 443 ssl http2;
#สิ่งที่เราฟังสำหรับโดเมน
server_name *.domain.tld โดเมน.tld;
ที่ตั้ง / {
proxy_pass http://127.0.0.1:5000;
#https ยังใช้งานได้
#proxy_pass https://127.0.0.1:5000;
proxy_set_header โฮสต์ $http_host;
}
ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem; #บริหารจัดการโดย
เซอร์บอท
ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem; #บริหารจัดการโดย
เซอร์บอท
}
ข้อสรุป
หากคุณต้องการเข้าถึงแบ็กเอนด์ของคุณบนพอร์ต 5000 คุณต้องใช้ proxy_pass
ถ้าคุณต้องการให้ NGINX ฟังบนพอร์ต 5000 ในกรณีที่ไม่ได้ใช้ฟัง ฟัง 5,000 ssl;
และอย่างที่คนอื่นพูดไปแล้วว่า SSL เป็นโปรโตคอลและไม่ได้ผูกมัดกับพอร์ตใดพอร์ตหนึ่ง มักใช้ 443 แต่ห้ามฟัง ฉันสามารถใช้ 61337 สำหรับมันได้
ฉันจะอัปเดตคำตอบในกรณีที่ OP จะอัปเดตคำถาม