ฉันมีหยดใหม่ที่รัน Ubuntu 20.04 ฉันใช้เซิร์ฟเวอร์นี้เพื่อโฮสต์ API ของฉันเท่านั้น ดังนั้นฉันจึงพยายามส่งต่อไปยัง api.example.com ปัญหาคือเมื่อฉันไป https://api.example.com ฉันเข้าใจ 502 เกตเวย์เสีย
อย่างไรก็ตามเมื่อฉันไปเยี่ยม http://example.comฉันได้รับหน้าต้อนรับ nginx ฉันได้รีสตาร์ท nginx แล้วและรันสิ่งนี้ sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
แต่ฉันยังคงได้รับข้อผิดพลาด ฉันได้ลงทะเบียน api.example.com แล้ว และมันเปลี่ยนเส้นทางไปที่ https ดังนั้นฉันค่อนข้างสับสนกับปัญหา บันทึกข้อผิดพลาด nginx แสดง:
21/2021/11 03:31:57 [ข้อผิดพลาด] 8737#8737: *25 การเชื่อมต่อ() ล้มเหลว (111: ข้อผิดพลาดที่ไม่รู้จัก) ขณะเชื่อมต่อกับอัปสตรีม ไคลเอนต์: ip ของฉัน เซิร์ฟเวอร์: api.example.com คำขอ: " GET /favicon.ico HTTP/1.1", อัปสตรีม: "http://127.0.0.1:3001/favicon.ico", โฮสต์: "api.example.com", ผู้อ้างอิง: "https://api.example.com /".
ฉันยังมีเซิร์ฟเวอร์ที่ทำงานบนพอร์ต 3001
การกำหนดค่า nginx ของฉันคือ:
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name api.example.com;
ที่ตั้ง / {
proxy_pass http://localhost:3001;
proxy_http_version 1.1;
proxy_set_header อัพเกรด $http_upgrade;
proxy_set_header การเชื่อมต่อ 'อัปเกรด';
proxy_set_header โฮสต์ $host;
proxy_cache_bypass $http_upgrade;
}
ฟัง [::]:443 ssl ipv6only=เปิด; # จัดการโดย Certbot
ฟัง 443 ssl; # จัดการโดย Certbot
ssl_certificate /etc/letsencrypt/live/api.exmaple.com/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/api.exmaple.com/privkey.pem; # จัดการโดย Certbot
รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
}
เซิร์ฟเวอร์ {
ถ้า ($ โฮสต์ = api.example.com) {
ส่งคืน 301 https:$host$request_uri;
}
ฟัง 80;
ฟัง [::]:80;
server_name api.example.com;
กลับ 404;
}
ฉันไม่ได้ใช้ cloudflare ดังนั้นฉันไม่คิดว่านี่เป็นปัญหา DNS ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม