chuyển hướng nginx không có cổng


2

Tôi có một vấn đề với 301 chuyển hướng trong Nginx. Nó luôn chuyển hướng đến một URL với cổng cục bộ.

Tình huống như sau: Trang web đang chạy qua Cloudflare, https đầy đủ. CF gửi yêu cầu http đến máy chủ nơi vecni chấp nhận chúng. Varnish sau đó chuyển yêu cầu tới nginx, người xử lý phần còn lại cùng với FPM.

Nginx đang chạy trên cổng 8080. Tôi tạo chuyển hướng 301 trong Nginx như tôi thường làm:

location = /url1 {
  return 301 /url2;
}

Nginx sau đó chuyển hướng đến URL, nhưng thêm tên máy chủ & cổng ban đầu mà nó đang chạy (8080). Vì vậy, tôi đặt port_in_redirect thành tắt trong cấu hình máy chủ. Điều đó làm việc một nửa. Nó sẽ chuyển hướng một URL http sang https (không đề cập đến cổng 8080). Nó sẽ chuyển hướng một URL https sang http, vòng lặp.

Làm thế nào tôi có thể chắc chắn rằng điều đó không xảy ra? Tôi tự hỏi liệu có thể biết sơ đồ mà Cloudflare đang phục vụ yêu cầu không.


Vui lòng chỉnh sửa bài đăng của bạn để hiển thị cấu hình trang Nginx đầy đủ của bạn. Đề nghị bạn gắn thẻ tôi khi bạn làm như vậy tôi thấy nó.
Tim

Câu trả lời:


2

Cố gắng thêm absolute_redirect offvào khối vị trí của bạn

location = /url1 {
  absolute_redirect off;
  return 301 /url2;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.