Điểm:0

Nginx php-fpm về sự cố máy tính để bàn Docker

lá cờ it

Tôi có nginx và php-fpm đang chạy trong một vùng chứa duy nhất trên máy tính để bàn Docker cho Windows.Tôi là CNTT và không phải là nhà phát triển, vì vậy hãy tắt nó đi cho tôi. Tôi đã cố gắng để cấu hình hoạt động nhưng không thành công. Tôi cần có khả năng cho phép nhiều tên miền phụ chuyển qua php-fpm nơi ứng dụng php sẽ xác định cơ sở dữ liệu nào sẽ mở theo tên miền phụ cụ thể. Vì thế clientA.mydomain.com clientB.mydomain.com tất cả chỉ nên chuyển qua php và ứng dụng sẽ biết DB nào sẽ kết nối.

Tôi đã tìm kiếm và tìm thấy các giải pháp để chuyển hướng các tên miền phụ đến các trang web riêng biệt, nhưng tôi cần cho phép tất cả các tên miền phụ đến một trang web và xử lý giống như localhost.

Điều này hoạt động tốt khi sử dụng máy chủ cục bộ hoặc 127.0.0.1 nhưng khi tôi cố gắng sử dụng url dns thì trang web sẽ ngừng đăng nhập và tất cả lệnh gọi ajax đều ngừng hoạt động. Có vẻ như các biến phiên ngừng được trả lại. Trang đăng nhập hiển thị và mật khẩu không thành công sẽ hiển thị lỗi đó để tôi biết trang web đang liên lạc với DB thích hợp nhưng nhật ký không hiển thị bất kỳ lỗi hoặc phản hồi ajax nào.

người phục vụ {
    nghe 80 default_server;
    tên máy chủ  _;  
    # Tôi đã thử server_name *.mydomain.com và server_name .mydomain.com, cái sau cho kết quả giống như cấu hình hiện tại này.
    
    gốc /usr/share/nginx/html;
    server_tokens tắt;

    chỉ mục index.php index.html index.htm;

    bộ ký tự utf-8;
    # Thêm ghi nhật ký thiết bị xuất chuẩn
    thông tin error_log /dev/stdout;
    truy cập_log /dev/stdout;

    địa điểm / {
        try_files $uri $uri/ /index.php?$args;
    }

    vị trí ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        bao gồm fastcgi_params;
    }
}

Tôi đã phải loại bỏ rất nhiều để gửi câu hỏi.

Sử dụng máy chủ cục bộ hoặc 127.0.01 với cùng cấu hình này, thông tin đăng nhập hoạt động, ajax đang phản hồi và trang web tải trang chính như mong đợi.

thiết bị xuất chuẩn nginx | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "POST /login.php HTTP/1.1" 302
thiết bị xuất chuẩn nginx | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "NHẬN / HTTP/1.1" 200 
thiết bị xuất chuẩn nginx | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "NHẬN /framework.js?version=
thiết bị xuất chuẩn nginx | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "NHẬN /resources/all.css 
192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "NHẬN /resources/js/pdfjs/pdf.js 
thiết bị xuất chuẩn nginx | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "NHẬN /app.js?version=2021
thiết bị xuất chuẩn nginx | 192.168.80.1 - - [08/Sep/2021:13:23:00 +0000] "NHẬN /resources/images/login_loader_logo.gif
192.168.80.1 - - [08/Sep/2021:13:23:01 +0000] "NHẬN /ajax.php?_dc=163110738
192.168.80.1 - - [08/Sep/2021:13:23:02 +0000] "POST /ajax.php HTTP/1.1" 200 
192.168.80.1 - - [08/Sep/2021:13:23:02 +0000] "NHẬN /ajax.php?_dc=1631107382410&

Khi sử dụng mục nhập url mà tôi đã tạo trong tệp Máy chủ của mình để kiểm tra, có vẻ như js và ajax không hoạt động khi sử dụng URL.

192.168.96.1 - - [08/Sep/2021:13:29:45 +0000] "NHẬN /login.php HTTP/1.1" 200
192.168.96.1 - - [08/Sep/2021:13:29:45 +0000] "NHẬN /showClientLogo.php HTTP/1.1" 200
192.168.96.1 - - [08/Sep/2021:13:29:46 +0000] "NHẬN / HTTP/1.1" 302
192.168.96.1 - - [08/Sep/2021:13:29:46 +0000] "NHẬN /login.php HTTP/1.1" 200
192.168.96.1 - - [08/Sep/2021:13:29:47 +0000] "NHẬN /showClientLogo.php HTTP/1.1" 200
192.168.96.1 - - [08/Sep/2021:13:29:57 +0000] "POST /login.php HTTP/1.1" 302
192.168.96.1 - - [08/Sep/2021:13:29:57 +0000] "NHẬN / HTTP/1.1" 302
192.168.96.1 - - [08/Sep/2021:13:29:57 +0000] "NHẬN /login.php HTTP/1.1" 200
192.168.96.1 - - [08/Sep/2021:13:29:58 +0000] "NHẬN /showClientLogo.php HTTP/1.1" 200

Cảm ơn trước.

Michael Hampton avatar
lá cờ cz
Tại sao bạn tin rằng đây là một vấn đề nginx? Có vẻ như một vấn đề với ứng dụng. Hãy trò chuyện với nhà phát triển của nó.
WillyK avatar
lá cờ it
Một phần vì ứng dụng và cấu hình hoạt động tốt trong IIS và php-cgi. Tôi đã cài đặt và định cấu hình ứng dụng này trong nhiều năm theo cách này.Bây giờ chúng tôi đang làm việc để chứa ứng dụng và sử dụng linux, nginx và php-fpm. localhost hoạt động tốt và chỉ khi bạn đưa một URL thực vào hỗn hợp của mình. Tất cả điều này có thể hoạt động trong AWS như hiện tại và nó có thể là sự cố máy tính để bàn docker nhưng tôi không chắc chắn. Cảm ơn
Điểm:1
lá cờ it

@MichaelHampton đã đúng, tôi đã thử một số cách, nhận thấy rằng các phiên mới được tạo trong quá trình chuyển hướng khiến hệ thống tiếp tục hạ cánh trên trang đăng nhập. Có một cài đặt nội bộ trong ứng dụng liên quan đến cookie tên miền chéo và khi tôi tắt cài đặt đó, trang web sẽ hoạt động bằng cách sử dụng url tên miền. Vì tôi đang thử nghiệm nên tôi chỉ sử dụng http chứ không phải https.

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