Tôi đang sử dụng NGINX để proxy_pass
tất cả các yêu cầu với tiền tố /xác thực/
đến máy chủ api của nodejs tại máy chủ cục bộ:3000
.
Tôi có tập tin cấu hình duy nhất này /etc/nginx/sites-enabled/default3.conf
:
người phục vụ {
vị trí /auth/ {
viết lại /auth/(.+) /$1 break;
proxy_pass http://127.0.0.1:3000;
proxy_redirect tắt;
proxy_set_header HOST $host;
}
}
Nó hoạt động tốt với hầu hết các yêu cầu của tôi (thay vì GET http://localhost:3000/đăng xuất
, ĐƯỢC http://localhost/auth/đăng xuất
sẽ hoạt động như mong đợi), ngoại trừ yêu cầu này NHẬN http://localhost/auth/docs
, cái này sẽ ánh xạ tới http://localhost:3000/docs
nhưng tôi đã nhận được một chuyển hướng:
HTTP/1.1 301 được di chuyển vĩnh viễn
Máy chủ: nginx/1.18.0 (Ubuntu)
Ngày: Thứ Tư, ngày 15 tháng 12 năm 2021 01:59:02 GMT
Loại nội dung: văn bản/html; bộ ký tự = UTF-8
Độ dài nội dung: 175
X-Powered-By: Express
Kiểm soát truy cập-Cho phép-Xuất xứ: *
Chính sách bảo mật nội dung: default-src 'none'
X-Content-Type-Options: nosniff
Vị trí: /docs/
sau đó thay vào đó là 404 KHÔNG TÌM KIẾM:
HTTP/1.1 404 Không tìm thấy
Máy chủ: nginx/1.18.0 (Ubuntu)
Ngày: Thứ Tư, ngày 15 tháng 12 năm 2021 03:20:26 GMT
Loại nội dung: văn bản/html
Mã hóa truyền: chunked
Kết nối: giữ nguyên
Mã hóa nội dung: gzip
Có vẻ như khi tôi NHẬN http://localhost/auth/docs
, yêu cầu đến máy chủ nodejs của tôi, nhưng sau đó được chuyển hướng trở lại http://localhost/tài liệu
, nhưng làm thế nào điều này có thể được? Tôi vẫn có thể NHẬN http://localhost:3000/docs
không có vấn đề.
CẬP NHẬT
http://localhost:3000/docs
là nơi tôi đang phục vụ giao diện người dùng Swagger cho API máy chủ, sử dụng mô-đun npm vênh vang-ui-express
.