Điểm:1

Nginx proxy_pass root đến trang đích bên ngoài

lá cờ fr

Đối với miền mới x.co mà tôi đang thiết lập, tôi muốn gốc (x.co) hiển thị trang đích bên ngoài mà không thay đổi url thành url của trang đích bên ngoài.

Trang đích này đã được tạo trên hubspot và xuất bản tại a.hubspot.b/c

Có một cách đơn giản để đạt được điều này? Tôi đã kiểm tra một vài câu trả lời như 1, 2, 3, nhưng không nhận được nó.

Những gì tôi có bây giờ là dưới đây. Nó chuyển tiếp tới trang đích thay đổi url thành a.hubspot.b/c. Tôi cần url giữ nguyên x.co.

FWIW, tôi cũng sử dụng bộ nhớ đệm và DNS của cloudflare.

người phục vụ {
        nghe 80;
        server_name x.co www.x.co;
        trả về 301 https://$server_name$request_uri;
}

người phục vụ {
        nghe 443 ssl http2;
        server_name x.co www.x.co;

        ssl_certificate x.co.pem;
        ssl_certificate_key x.co.key;

        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

        ssl_session_cache được chia sẻ:SSL:1m;
        ssl_session_timeout 5 phút;

        ssl_ciphers CAO:!aNULL:!MD5;
        bật ssl_prefer_server_ciphers;

        địa điểm / {
            #proxy_pass https://x-12345.hubspotpagebuilder.eu/coming-soon/;

            bộ giải quyết 8.8.8.8;

            proxy_pass https://x-12345.hubspotpagebuilder.eu/coming-soon;
            proxy_set_header Máy chủ lưu trữ $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;


            #root /var/www/frontend/x;
            #roothtml;
            #index index.html index.htm;
        }
    }

Chỉnh sửa/thêm - thật ngu ngốc là tôi đã không buồn kiểm tra nhật ký lỗi nginx. Khi tôi làm vậy, đã có những manh mối tốt cho vấn đề. Các bản ghi lỗi có

"SSL_do_handshake() không thành công (SSL: error:14094410:SSL routines:ssl3_read_bytes_sslv3 cảnh báo bắt tay thất bại:SSL số cảnh báo 40) trong khi SSL bắt tay ngược dòng, máy khách: 2401: ......" 

(...... ở cuối có nghĩa là còn nhiều văn bản mà tôi chưa nhập ở đây. Tôi đang sử dụng chứng chỉ Cloudflare trên phần phụ trợ của mình và chuyển hướng đến trang hubspot trong nginx - đó có vẻ là một vấn đề.

Và nó đã được. Giải pháp là thêm proxy_ssl_server_name bật;. Tất cả proxy_set_header các chỉ thị mà tôi đã sao chép trong tuyệt vọng là vô nghĩa và có thể vui vẻ sử dụng. Trang này tỏ ra rất hữu ích trong việc giải thích vấn đề và giải pháp.

Ivan Shatsky avatar
lá cờ gr
Tôi đã không nhận được một vài điều.Điều gì sẽ xảy ra với bất kỳ yêu cầu nào khác (ý ​​tôi là khác với yêu cầu gốc)? Tại sao bạn lại sử dụng tất cả các chỉ thị `proxy_set_header` đó? Bạn đang sử dụng chúng cho mục đích nào đó hay chỉ sao chép-dán chúng từ một ví dụ nào đó mà không hiểu chúng thực sự đã làm gì?
Ahron avatar
lá cờ fr
Tất cả `proxy_set_headers` và `resolver` đều được dán bản sao. Phần còn lại là của riêng tôi. Khi những gì tôi đã làm không hiệu quả, tôi bắt đầu sao chép. Đối với các yêu cầu không phải root, 404 vẫn ổn ngay bây giờ.
Ivan Shatsky avatar
lá cờ gr
Cố gắng xóa ít nhất một `proxy_set_header Host $host;`. Bạn chỉ cần một trình phân giải nếu tên miền cho lệnh `proxy_pass` được chỉ định bằng cách sử dụng (các) biến không phải là trường hợp của bạn (tuy nhiên nó sẽ không gây hại gì).
Ahron avatar
lá cờ fr
Sau đó, tôi gặp lỗi Máy chủ bị lỗi cổng 502 qua Cloudflare
Ivan Shatsky avatar
lá cờ gr
Bạn gặp lỗi 502 sau khi xóa chỉ thị `proxy_set_header Host $host;`, không phải lệnh `resolver`?
Ahron avatar
lá cờ fr
Đúng. Tôi không thể tìm ra nó.
Ivan Shatsky avatar
lá cờ gr
Nghe thực sự kỳ lạ. Được rồi, hãy thử đặt giá trị một cách rõ ràng bằng cách sử dụng `proxy_set_header Host "x-12345.hubspotpagebuilder.eu";`.
Ahron avatar
lá cờ fr
Không có tác dụng đáng buồn.
Ahron avatar
lá cờ fr
Nhật ký lỗi cho biết "SSL_do_handshake() không thành công (SSL: error:14094410:SSL routines:ssl3_read_bytes_sslv3 cảnh báo bắt tay thất bại:SSL cảnh báo số 40) trong khi SSL bắt tay ngược dòng, máy khách: 2401: ......" (.. .... ở cuối có nghĩa là có nhiều văn bản hơn mà tôi đã không nhập ở đây. Tôi đang sử dụng chứng chỉ Cloudflare trên phần phụ trợ của mình và chuyển hướng đến trang hubspot trong nginx - có vẻ như đó là một vấn đề
Ivan Shatsky avatar
lá cờ gr
Bạn nên thêm thông báo nhật ký lỗi khi chỉnh sửa câu hỏi của mình. Điều này có vẻ giống như một số loại phiên bản TLS không khớp, nhưng đó là lĩnh vực mà tôi không có kiến ​​thức chuyên sâu. Cân nhắc cập nhật các thẻ câu hỏi của bạn, có thể người khác sẽ xem nó.
Ahron avatar
lá cờ fr
Ok, cảm ơn rất nhiều vì đã kiên trì cố gắng giúp tôi. Tôi đã hiểu rồi. Đó thực sự là một vấn đề SSL. Tôi thật ngớ ngẩn khi không thèm kiểm tra nhật ký. Giải pháp là thêm `proxy_ssl_server_name on;` tất cả các bản sao chép `proxy_set_headers` đều vô nghĩa do bản chất của vấn đề. Liên kết này tỏ ra rất hữu ích nên có lẽ bạn cũng có thể xem qua - https://www.claudiokuenzler.com/blog/1120/nginx-reverse-proxy-ssl-alert-number-40-while-ssl-handshaking-upstream

Đă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.