Điểm:0

cách thiết lập máy chủ websocket cùng với hai phụ trợ laravel và spa

lá cờ fr

tôi có hai thiết lập phụ trợ laravel trên các tuyến khác nhau. và có một spa trên root. bây giờ tôi muốn đặt một máy chủ websocket cùng với nó. đây là trang web của tôi.conf


############## block-4 : kiểm tra nhiều thư mục con ############
người phục vụ {
    nghe 80;
    # tên_máy chủ abc.xyz;
    tên máy chủ _;
    gốc /var/www/html/abc.xyz;
    # gốc /var/www/html;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

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

 
    địa điểm / {
        # gốc /var/www/html/abc.xyz;
        try_files $uri /index.html ;
    }

    bộ ký tự utf-8;

    vị trí = /favicon.ico {
        truy cập_đăng xuất; log_not_found tắt;
    }
    vị trí = /robots.txt {
        truy cập_đăng xuất; log_not_found tắt;
    }

    # lỗi_trang 404 /index.php;

############## block-4 : kiểm tra nhiều thư mục con ############
người phục vụ {
    nghe 80;
    # tên_máy chủ abc.xyz;
    tên máy chủ _;
    gốc /var/www/html/abc.xyz;
    # gốc /var/www/html;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-Content-Type-Options "nosniff";

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

 
    địa điểm / {
        # gốc /var/www/html/abc.xyz;
        try_files $uri /index.html ;
    }

    bộ ký tự utf-8;

    vị trí = /favicon.ico {
        truy cập_đăng xuất; log_not_found tắt;
    }
    vị trí = /robots.txt {
        truy cập_đăng xuất; log_not_found tắt;
    }

    # lỗi_trang 404 /index.php;

    # Hướng dẫn viết lại vị trí BACKEND
    vị trí / phụ trợ {
        bí danh /var/www/html/abc.xyz/backend;

        try_files $uri $uri/ @backend;

        vị trí ~ \.php$ {
            bao gồm fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
        }
    }

    vị trí @backend {
        # viết lại /backend/(.*)$ /backend/index.php?/$1 cuối cùng;
        viết lại ^/backend/(.*)$ /backend/index.php cuối cùng;
    }
    # cuối vị trí BACKEND


    # Hướng dẫn viết lại vị trí BACKEND
    vị trí /api {
        bí danh /var/www/html/abc.xyz/api;

        try_files $uri $uri/ @api;

        vị trí ~ \.php$ {
            bao gồm fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
        }
    }

    địa điểm @api {
        viết lại /api/(.*)$ /api/index.php?/$1 cuối cùng;
    }
    # cuối vị trí BACKEND


    # phpmyadmin viết lại quy tắc.
    vị trí /phpmyadmin {
        gốc /usr/chia sẻ/;
        chỉ mục index.php index.html index.htm;
        vị trí ~ ^/phpmyadmin/(.+\.php)$ {
            try_files $uri =404;
            gốc /usr/chia sẻ/;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
            fastcgi_index index.php;
            bao gồm /etc/nginx/fastcgi_params;
        }

        vị trí ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
            gốc /usr/chia sẻ/;
        }
    }
    # kết thúc khối phpmyadmin tại đây.

    # cấu hình ổ cắm web tại đây 
  vị trí /ws* {
    proxy_pass http://127.0.0.1:6001;
    proxy_set_header Máy chủ lưu trữ $host;
    proxy_read_timeout 60;
    proxy_connect_timeout 60;
    proxy_redirect tắt;

    # Cho phép sử dụng ổ cắm web
    proxy_http_version 1.1;
    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_cache_bypass $http_upgrade;
  }
    # kết thúc cấu hình websocket


    vị trí ~ /\.(?! nổi ​​tiếng).* {
        Phủ nhận tất cả;
    }
}

############# khối cuối-4 ######################


các vị trí /ws khối được lấy từ tài liệu về ổ cắm web của laravel. nhưng khối vị trí này đang báo lỗi 404 không tìm thấy. nhưng cấu hình nginx này không hoạt động. Dự án trang web laravel của tôi hoạt động tốt trên localhost.

chỉnh sửa

đây là đầu ra của lsof -i :80,443,6001

LỆNH PID NGƯỜI DÙNG LOẠI FD KÍCH THƯỚC THIẾT BỊ/TẮT TÊN NÚT
php 414490 root 5u IPv4 5974385 0t0 TCP *:x11-1 (LẮNG NGHE)
php 414490 root 6u IPv4 5991457 0t0 TCP localhost.localdomain:x11-1->localhost.localdomain:35684 (ĐÃ THÀNH LẬP)
nginx 415533 root 6u IPv4 5990824 0t0 TCP *:https (LẮNG NGHE)
nginx 415533 root 7u IPv4 5990825 0t0 TCP *:http (LẮNG NGHE)
nginx 415534 dữ liệu www 6u IPv4 5990824 0t0 TCP *:https (LẮNG NGHE)
nginx 415534 dữ liệu www 7u IPv4 5990825 0t0 TCP *:http (LẮNG NGHE)
nginx 415535 dữ liệu www 6u IPv4 5990824 0t0 TCP *:https (LẮNG NGHE)
nginx 415535 dữ liệu www 7u IPv4 5990825 0t0 TCP *:http (LẮNG NGHE)
nginx 415536 ​​dữ liệu www 6u IPv4 5990824 0t0 TCP *:https (LẮNG NGHE)
nginx 415536 ​​dữ liệu www 7u IPv4 5990825 0t0 TCP *:http (LẮNG NGHE)
nginx 415537 dữ liệu www 6u IPv4 5990824 0t0 TCP *:https (LẮNG NGHE)
nginx 415537 www-data 7u IPv4 5990825 0t0 TCP *:http (LẮNG NGHE)
nginx 415538 dữ liệu www 6u IPv4 5990824 0t0 TCP *:https (LẮNG NGHE)
nginx 415538 www-data 7u IPv4 5990825 0t0 TCP *:http (LẮNG NGHE)
nginx 415539 dữ liệu www 6u IPv4 5990824 0t0 TCP *:https (LẮNG NGHE)
nginx 415539 dữ liệu www 7u IPv4 5990825 0t0 TCP *:http (LẮNG NGHE)
nginx 415539 www-data 8u IPv4 5985866 0t0 TCP linux:https->157.42.56.21:55728 (ĐÃ THÀNH LẬP)
nginx 415539 www-data 12u IPv4 5985868 0t0 TCP localhost.localdomain:35684->localhost.localdomain:x11-1 (ĐÃ THÀNH LẬP)
djdomi avatar
lá cờ za
Laravel lắng nghe cổng nào?
rajesh_chaurasiya avatar
lá cờ fr
@djdomi bạn có yêu cầu cổng http hoặc cổng websocket mặc định của laravel không? cổng mặc định của laravel là 80 và đối với websocket là 6001.
djdomi avatar
lá cờ za
cho chúng tôi xem, `lsof -i :80,443,6001`
rajesh_chaurasiya avatar
lá cờ fr
@djdomi tôi đang thêm đầu ra vào phần chỉnh sửa câu hỏi.
djdomi avatar
lá cờ za
có lẽ Bạn có thể tham gia [thechat](https://chat.stackexchange.com/rooms/126791/thechat) để rút ngắn nó, nhưng tôi chỉ thấy NGINX chạy trên 2 cổng này. - nhưng tôi thấy bạn đang chạy phiên bản lsof mới hơn nên `lsof -P -i :80,443,6001` có thể được cập nhật :)
rajesh_chaurasiya avatar
lá cờ fr
@djdomi tôi đã rời khỏi cấu hình nginx này. lần này tôi đã tạo khối máy chủ cho websocket trên một tên miền phụ khác. điều đó đã hiệu quả. tuy nhiên điều đó vẫn không hoạt động đúng như mong đợi. nhưng tôi muốn thử nó.
djdomi avatar
lá cờ za
@rajeshchaurasiya Tên miền phụ IMHO tốt hơn cho những thứ như vậy thay vì thư mục con. Nhưng có lẽ bạn vừa quên tải lại nginx và lần này bạn đã làm điều đó do thay đổi tên miền phụ? :)
rajesh_chaurasiya avatar
lá cờ fr
@djdomi không ạ. tôi nhớ quy tắc này tôi đã tải lại và khởi động lại (để phòng ngừa thêm) cấu hình nginx. tôi nghĩ có lẽ vấn đề nằm ở khối vị trí. nhưng cảm ơn ngài vì sự quan tâm của bạn. Tôi sẽ liên lạ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.