Điểm:0

Chuyển hướng đến tài sản bên ngoài nginx

lá cờ pk

Mục tiêu của tôi là có một nginx có thể proxy_pass sang máy chủ khác.

đầu vào mong muốn

https://example.com/https://assets1.com/image.jpg?utm=whatever

Kết quả mong muốn
https://assets1.com/image.jpg?utm=whatever

Đây khối vị trí của tôi

người phục vụ {

    chỉ mục index.html index.htm index.nginx-debian.html;
    server_name example.com www.example.com;

    vị trí ~/(.*) {
            nếu ($request_method = 'NHẬN') {
                    add_header 'Kiểm soát truy cập-Cho phép-Xuất xứ' '*';
            add_header 'Kiểm soát truy cập-Cho phép-Thông tin xác thực' 'true';
            add_header 'Phương thức kiểm soát truy cập-cho phép' 'NHẬN, ĐĂNG, TÙY CHỌN';
            add_header 'Kiểm soát truy cập-Cho phép-Tiêu đề' 'DNT,X-CustomHeader,Keep-Alive,User->
    }
    proxy_pass https://$1$is_args$args/;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Máy chủ "www.example.com";
}
nghe 80;
nghe [::]:442 ssl ipv6only=on;
nghe 443 ssl; # được quản lý bởi Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # được quản lý bởi Certbot
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot

}

Và lỗi tôi nhận được:

21/09/2021 09:27:32 [lỗi] 8475#8475: *16 cổng không hợp lệ ở thượng nguồn "https:/assets1.com/image.jpg?utm=whatever", máy khách: [IP], máy chủ: domain.com, yêu cầu: "NHẬN /https://assets1.com/image.jpg?utm=whatever HTTP/1.1", máy chủ lưu trữ: "example.com"

Michael Hampton avatar
lá cờ cz
Khối `vị trí` này không tương ứng với mục nhật ký lỗi mà bạn đã đăng. Vui lòng đăng trạng thái thực của cấu hình _complete_ nginx của bạn bằng cách sử dụng `nginx -T`.
Imnl avatar
lá cờ pk
Đã thêm cấu hình máy chủ đầy đủ
Điểm:0
lá cờ us

URL yêu cầu ban đầu của bạn chứa tiền tố giao thức: https://example.com/https://assets1.com.

Của bạn địa điểm khối chụp phần sau đầu tiên /, Vì thế $1 trở thành https://assets1.com.

trong bạn proxy_pass tuyên bố bạn có https://$1$is_args$args, trở thành https://https://assets1.com khi biến được mở rộng.

nginx cố gắng phân tích cú pháp https://assets1.com dưới dạng một cặp tên miền:cổng, do đó, phần tên miền của URL là https và cổng là một chuỗi rỗng.

Để giải quyết vấn đề này, tôi đề xuất cấu hình sau:

vị trí ~^/https://(.+)$ {
    proxy_pass https://$1$is_args$args;
    ...
}

Bằng cách này, chúng tôi loại trừ phần giao thức khỏi bị bắt vào $1, để chúng tôi có một URL thích hợp. Tôi cũng đã thêm các ký tự bắt đầu và kết thúc để làm cho biểu thức chính quy mạnh mẽ hơn.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.