Điểm:0

CORS và Nginx trước proxy / proxy ngược apache không hoạt động để truy cập máy chủ API

lá cờ id

Tôi đang cố thiết lập proxy ngược cho máy chủ api của mình nhưng nhận được trang lỗi 404.

Bối cảnh: Trong khi thiết lập ứng dụng Reac.js và cố gắng tìm giải pháp cho vấn đề CORS, tôi đã quyết định sử dụng proxy ngược (proxy pass) với nginx để gọi nội bộ máy chủ api và lừa trình duyệt nghĩ rằng api đang ở trên cùng một miền.

Đây là thiết lập dự định của tôi:

https://example.com trỏ đến thư mục trang web

https://example.com/api gọi url api đang nghe nội bộ http://127.0.0.1:1234 qua proxy ngược nginx

Tôi sử dụng hestia cp có nginx phía trước apache làm proxy ngược.

Vấn đề Nếu tôi sử dụng lynx để gọi trực tiếp http://127.0.0.1:1234, tôi nhận được phản hồi chính xác từ máy chủ api của mình. Tuy nhiên khi sử dụng qua proxy pass trên url https://example.com/api, tôi nhận được trang lỗi 404.

Tệp cấu hình Nginx

Đây là thiết lập nginx.ssl.conf của tôi cho example.com

vị trí /api/ {
                proxy_pass http://127.0.0.1:1234;
                access_log /var/log/apache2/domains/example.com-api.log tùy chỉnh;
                access_log /var/log/apache2/domains/example.com-api.bytes byte;

}

Đây là thiết lập nginx.conf của tôi cho miền api.com của tôi, nghe trên 127.0.0.1, cổng 1234

người phục vụ {
    nghe 127.0.0.1:1234;
    tên_máy chủ 127.0.0.1;

    địa điểm / {
        proxy_pass http://10.0.10.55:8080;
        vị trí ~* ^.+\.(jpeg|jpg|png|gif|bmp|ico|svg|tif|tiff|css|js|htm|html|ttf|otf|webp|woff|txt|csv|rtf|doc |docx|xls|xlsx|ppt|pptx|odf|odp|ods|odt|pdf|psd|ai|eot|eps|ps|zip|tar|tgz|gz|rar|bz2|7z|aac|m4a|mp3 |mp4|ogg|wav|wma|3gp|avi|flv|m4v|mkv|mov|mpeg|mpg|wmv|exe|iso|dmg|swf)$ {
            gốc /home/user/web/api.com/public_html;
            access_log /var/log/apache2/domains/api.com.log kết hợp;
            access_log /var/log/apache2/domains/api.com.bytes byte;
            hết hạn tối đa;
            try_files $uri @fallback;
        }
    } vị trí /lỗi/ {
        bí danh /home/user/web/api.com/document_errors/;
    }

    vị trí @fallback {
        proxy_pass http://10.0.10.55:8080;
    }

    vị trí ~ /\.ht {return 404;}
    vị trí ~ /\.svn/ {return 404;}
    vị trí ~ /\.git/ {return 404;}
    vị trí ~ /\.hg/ {return 404;}
    vị trí ~ /\.bzr/ {return 404;} }

Ai đó có thể giúp tôi gỡ lỗi hoặc khắc phục sự cố này không? Không thể thấy bất cứ điều gì nổi bật trong nhật ký nhưng có lẽ không biết phải tìm gì. Có vẻ như cuộc gọi qua proxy nginx không đến được apache. Tôi đã đọc rằng lynx gọi trực tiếp apache, nếu tôi bỏ qua nginx nếu tôi sử dụng kết hợp url/cổng 127.0.0.1:1234.

Rất cám ơn trước

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