Tôi có một ứng dụng js tiếp theo mà tôi đã triển khai trên cổng 3000 và đặt proxy 3000 trên nginx.
Bây giờ tôi có máy chủ phụ trợ Node js tùy chỉnh mà tôi muốn chạy trên cùng một máy chủ trên cổng 5000 khác nhau.
Tôi thiết lập nginx như thế này
địa điểm / {
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Nâng cấp $http_upgrade;
'nâng cấp' kết nối proxy_set_header;
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;
proxy_pass http://localhost:3000;
}
vị trí ^~ /api {
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Nâng cấp $http_upgrade;
'nâng cấp' kết nối proxy_set_header;
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;
proxy_pass http://localhost:5000;
}
Tôi không gặp vấn đề gì khi truy cập ứng dụng trên example.com.
Tôi thiết lập vị trí /api để kết nối tìm nạp server.js /api.
khi tôi tìm nạp như thế này
axios.get(example.com/api)
lỗi trả về của nó -- Cannot GET /api/
nhưng khi tôi đặt proxy vị trí nginx như thế này
proxy_pass http://localhost:5000/;
với một dấu gạch chéo về phía trước, nó đang hoạt động và các axios đang tìm nạp dữ liệu thành công.
Nhưng bất cứ khi nào tôi đang cố tìm nạp một tuyến đường khác từ tệp server.js như
axios.get(example.com/api/credential)
Nó lại hiện lỗi như thế này
Không thể NHẬN // thông tin xác thực
Quay lại với dấu gạch chéo kép // thông tin xác thực
tuyến '/' duy nhất hoạt động từ server.js bằng cách tìm nạp example.com/api
không có dấu gạch chéo về phía trước trên proxy, lỗi trả về của nó. không thể NHẬN/api hoặc không thể NHẬN api/thông tin xác thực
Hãy giúp tôi.
Cảm ơn trước.
Cập nhật
tôi đã sửa với của Ivan câu trả lời. Bây giờ tôi có vấn đề mới với cấu hình đó.
Tôi đang sử dụng socket.io bên cạnh axios. Vì vậy, bất cứ khi nào tôi cố gắng kết nối qua socket.io
mã ổ cắm máy khách của tôi là ..
nhập io từ "socket.io-client";
const socket = io("https://example.com/api");
và cấu hình ổ cắm máy chủ là ..
const io = require("socket.io")(máy chủ, {
bạn: {
nguồn gốc: "*",
},
});
Bây giờ khi tải trang, bảng điều khiển đang ghi nhật ký..
NHẬN https://example.com/socket.io?EIO=4&transport=polling&t=O4UTf4l 404 (Không tìm thấy)
Hãy giúp tôi.