sử dụng dấu gạch chéo trong cấu hình nginx


8
    location /product {
        proxy_pass http://10.0.0.25:8080;
    }

nếu tôi sử dụng mô tả vị trí đầu tiên cho thư mục sản phẩm, tôi nên sử dụng http://mysdomain.com/product/và tôi không thể sử dụng http://mysdomain.com/producttừ trình duyệt. Tôi có nghĩa là tôi nên sử dụng một dấu gạch chéo của url. Tôi muốn truy cập vào thư mục sản phẩm với hai tiêu chí.

Có sự khác biệt giữa điều này:

    location /product/ {
        proxy_pass http://10.0.0.25:8080;
    }

Câu trả lời:


10

Những địa điểm này là khác nhau. /productionVí dụ đầu tiên sẽ phù hợp , đó có thể không phải là những gì bạn mong đợi. Vì vậy, tôi thích sử dụng các vị trí với một dấu gạch chéo.

Ngoài ra, lưu ý rằng:

Nếu một vị trí được xác định bởi chuỗi tiền tố kết thúc bằng ký tự gạch chéo và các yêu cầu được xử lý bởi một trong các proxy_pass, fastcgi_pass, uwsgi_pass, scgi_pass hoặc memcached_pass, thì không đáp ứng với yêu cầu có URI bằng chuỗi này, nhưng không có dấu gạch chéo, một chuyển hướng vĩnh viễn với mã 301 sẽ được trả về URI được yêu cầu với dấu gạch chéo được nối thêm.

Nếu bạn có một cái gì đó như:

location /product/ {
    proxy_pass http://backend;
}

và đi đến http://example.com/product, nginx sẽ tự động chuyển hướng bạn đến http://example.com/product/.

Ngay cả khi bạn không sử dụng một trong những chỉ thị trên, bạn luôn có thể thực hiện chuyển hướng theo cách thủ công:

location = /product {
    rewrite ^ /product/ permanent;
}

hoặc, nếu bạn không muốn chuyển hướng, bạn có thể sử dụng:

location = /product {
    proxy_pass http://backend;
}

Tôi đang sử dụng proxy_pass myip: 8080 / sản phẩm , sau đó gọi trình duyệt địa chỉ này. Trình duyệt chuyển hướng tôi đến myip / sản phẩm và không thể xem trang lỗi.
barteloma

Sử dụng backticks cho mã. Markdown đã phân tích bạn bình luận và thật khó để tìm ra mã của bạn thực sự là gì.
Alexey Ten

Cảm ơn, điều quan trọng là phải biết rằng nếu / sản phẩm / được thêm vào thì ngay cả trình duyệt gửi nó / sản phẩm cũng bị ràng buộc nhận 301 từ máy chủ. Điểm khá hợp lệ thực sự.
Sur Max

3

Không, những điều này không giống nhau - bạn sẽ cần sử dụng dấu gạch chéo với biểu thức chính quy để khớp với cả hai, nghĩa là

location ~ /product/?

Xem câu trả lời liên quan này để biết phản hồi chi tiết hơn về cách khớp toàn bộ URL.

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.