เป้าหมายของฉันคือมีหนึ่ง nginx ที่สามารถ proxy_pass ไปยังเซิร์ฟเวอร์อื่นได้
อินพุตที่ต้องการ
https://example.com/https://assets1.com/image.jpg?utm=อะไร
ผลลัพธ์ที่ต้องการ
https://assets1.com/image.jpg?utm=อะไร
ที่นี่บล็อกตำแหน่งของฉัน
เซิร์ฟเวอร์ {
ดัชนี index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com;
ตำแหน่ง ~/(.*) {
ถ้า ($request_method = 'GET') {
add_header 'การควบคุมการเข้าถึง - อนุญาต - ต้นทาง' '*';
add_header 'Access-Control-Allow-Credentials' 'จริง';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User->
}
proxy_pass https://$1$is_args$args/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header โฮสต์ "www.example.com";
}
ฟัง 80;
ฟัง [::]:442 ssl ipv6only=เปิด;
ฟัง 443 ssl; # จัดการโดย Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # จัดการโดย Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # จัดการโดย Certbot
รวม /etc/letsencrypt/options-ssl-nginx.conf; # จัดการโดย Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # จัดการโดย Certbot
}
และข้อผิดพลาดที่ฉันได้รับ:
2021/09/21 09:27:32 [ข้อผิดพลาด] 8475#8475: *16 พอร์ตไม่ถูกต้องในอัปสตรีม
"https:/assets1.com/image.jpg?utm=whatever", ไคลเอ็นต์: [IP], เซิร์ฟเวอร์:
domain.com คำขอ: "GET /https://assets1.com/image.jpg?utm=whatever
HTTP/1.1", โฮสต์: "example.com"