Puncte:0

cum să configurați serverul websocket împreună cu două backend laravel și un spa

drapel fr

Am două configurații de backend laravel pe rute diferite. și există un spa pe rădăcină. acum vreau să setez un server websocket împreună cu el. aici este site-ul meu.conf


############## bloc-4: testarea subdirectoarelor multiple ############
Server {
    asculta 80;
    # nume_server abc.xyz;
    numele serverului _;
    rădăcină /var/www/html/abc.xyz;
    # root /var/www/html;

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

    index index.html index.php;

 
    Locație / {
        # root /var/www/html/abc.xyz;
        try_files $uri /index.html ;
    }

    set de caractere utf-8;

    locație = /favicon.ico {
        access_log off; log_not_found off;
    }
    locație = /robots.txt {
        access_log off; log_not_found off;
    }

    # error_page 404 /index.php;

############## bloc-4: testarea subdirectoarelor multiple ############
Server {
    asculta 80;
    # nume_server abc.xyz;
    numele serverului _;
    rădăcină /var/www/html/abc.xyz;
    # root /var/www/html;

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

    index index.html index.php;

 
    Locație / {
        # root /var/www/html/abc.xyz;
        try_files $uri /index.html ;
    }

    set de caractere utf-8;

    locație = /favicon.ico {
        access_log off; log_not_found off;
    }
    locație = /robots.txt {
        access_log off; log_not_found off;
    }

    # error_page 404 /index.php;

    # BACKEND instrucțiuni de rescriere a locației
    locație /backend {
        alias /var/www/html/abc.xyz/backend;

        try_files $uri $uri/ @backend;

        locație ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
        }
    }

    locație @backend {
        # rescrie /backend/(.*)$ /backend/index.php?/$1 ultimul;
        rescrie ^/backend/(.*)$ /backend/index.php ultima;
    }
    # capăt al locației BACKEND


    # BACKEND instrucțiuni de rescriere a locației
    locație /api {
        alias /var/www/html/abc.xyz/api;

        try_files $uri $uri/ @api;

        locație ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
        }
    }

    locație @api {
        rescrie /api/(.*)$ /api/index.php?/$1 ultimul;
    }
    # capăt al locației BACKEND


    # reguli de rescrie phpmyadmin.
    locație /phpmyadmin {
        root /usr/share/;
        index index.php index.html index.htm;
        locație ~ ^/phpmyadmin/(.+\.php)$ {
            try_files $uri =404;
            root /usr/share/;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
            fastcgi_index index.php;
            includ /etc/nginx/fastcgi_params;
        }

        locație ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
            root /usr/share/;
        }
    }
    # sfârșitul blocului phpmyadmin aici.

    # configurație web socket aici 
  locație /ws* {
    proxy_pass http://127.0.0.1:6001;
    proxy_set_header Gazdă $gazdă;
    proxy_read_timeout 60;
    proxy_connect_timeout 60;
    proxy_redirect dezactivat;

    # Permite utilizarea websocket-urilor
    proxy_http_versiunea 1.1;
    proxy_set_header Actualizare $http_upgrade;
    proxy_set_header Conexiune „upgrade”;
    proxy_set_header Gazdă $gazdă;
    proxy_cache_bypass $http_upgrade;
  }
    # sfârșitul configurației websocket


    locație ~ /\.(?!cunoscut).* {
        nega totul;
    }
}

############# bloc final-4 ######################


cel locație /ws blocul este preluat din documentația laravel websockets. dar acest bloc de locație dă eroarea 404 negăsit. dar această configurație nginx nu funcționează. Proiectul meu de site web laravel funcționează bine pe localhost.

Editați | ×

aceasta este rezultatul lsof -i :80.443.6001

COMANDA PID UTILIZATOR TIP FD DIMENSIUNEA DISPOZITIV/OPRIT NUMELE NODULUI
php 414490 root 5u IPv4 5974385 0t0 TCP *:x11-1 (ASCULTATE)
php 414490 root 6u IPv4 5991457 0t0 TCP localhost.localdomain:x11-1->localhost.localdomain:35684 (STABILIT)
nginx 415533 root 6u IPv4 5990824 0t0 TCP *:https (ASCULTATE)
nginx 415533 root 7u IPv4 5990825 0t0 TCP *:http (ASCULTATE)
nginx 415534 www-data 6u IPv4 5990824 0t0 TCP *:https (ASCULTATE)
nginx 415534 www-data 7u IPv4 5990825 0t0 TCP *:http (ASCULTATE)
nginx 415535 www-data 6u IPv4 5990824 0t0 TCP *:https (ASCULTATE)
nginx 415535 www-data 7u IPv4 5990825 0t0 TCP *:http (ASCULTATE)
nginx 415536 ​​www-data 6u IPv4 5990824 0t0 TCP *:https (ASCULTATE)
nginx 415536 ​​www-data 7u IPv4 5990825 0t0 TCP *:http (ASCULTATE)
nginx 415537 www-data 6u IPv4 5990824 0t0 TCP *:https (ASCULTATE)
nginx 415537 www-data 7u IPv4 5990825 0t0 TCP *:http (ASCULTATE)
nginx 415538 www-data 6u IPv4 5990824 0t0 TCP *:https (ASCULTATE)
nginx 415538 www-data 7u IPv4 5990825 0t0 TCP *:http (ASCULTATE)
nginx 415539 www-data 6u IPv4 5990824 0t0 TCP *:https (ASCULTATE)
nginx 415539 www-data 7u IPv4 5990825 0t0 TCP *:http (ASCULTATE)
nginx 415539 www-data 8u IPv4 5985866 0t0 TCP linux:https->157.42.56.21:55728 (STABILIT)
nginx 415539 www-data 12u IPv4 5985868 0t0 TCP localhost.localdomain:35684->localhost.localdomain:x11-1 (STABILIT)
djdomi avatar
drapel za
Pe ce port ascultă Laravel?
rajesh_chaurasiya avatar
drapel fr
@djdomi ceri portul http implicit laravel sau portul websocket? portul implicit laravel 80 și pentru websocket este 6001.
djdomi avatar
drapel za
arata-ne, `lsof -i :80,443,6001`
rajesh_chaurasiya avatar
drapel fr
@djdomi adaug rezultatul în editarea întrebării.
djdomi avatar
drapel za
Poate vă puteți alătura [thechat-ului](https://chat.stackexchange.com/rooms/126791/thechat) pentru a-l scurta, dar pot vedea numai NGINX rulând pe aceste 2 porturi. - dar văd că rulați o versiune mai nouă a lsof, așa că `lsof -P -i :80,443,6001` ar putea fi actualizat :)
rajesh_chaurasiya avatar
drapel fr
@djdomi m-am îndepărtat de această configurație nginx. de data aceasta am creat un bloc de server pentru websocket pe un alt subdomeniu. care a funcționat. cu toate acestea, acesta încă nu funcționează corect așa cum era de așteptat. dar vreau sa incerc.
djdomi avatar
drapel za
@rajeshchaurasiya Ei bine, subdomeniile IMHO sunt mai bune pentru așa ceva în loc de subdirectoare. Dar poate că tocmai ați uitat să reîncărcați nginx și de data aceasta ați făcut-o din cauza schimbării la un subdomeniu? :)
rajesh_chaurasiya avatar
drapel fr
@djdomi nu domnule. imi amintesc aceasta regula. Am reîncărcat și repornit (pentru precauție suplimentară) configurația nginx. Cred că problema a fost probabil în blocul de locație. dar vă mulțumesc domnule pentru atenția acordată. voi fi în legătură

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.