Heim  >  Artikel  >  Betrieb und Instandhaltung  >  So konfigurieren Sie Nginx von Laravel Octane und WebSocket in Laradock

So konfigurieren Sie Nginx von Laravel Octane und WebSocket in Laradock

WBOY
WBOYnach vorne
2023-05-17 15:22:061199Durchsuche

Vorherige Beschreibung

Nach der Installation von Laravel Octane in laradock beginnt swoole mit der Konfiguration des Portzugriffs Verbindung in Nginx schlägt fehl, Fehlermeldung 502, Konfiguration ist wie folgt: laradock中安装好Laravel Octane后swoole启动,在nginx中配置端口访问连接失败, 报错提示502,配置如下:

location /octane {
    proxy_pass http://127.0.0.1:8080;}

原因:Swoole服务器在Workspace容器中运行;Nginx服务器在Nginx容器中运行,需要找到Workspace的ip并在nginx中配置。

解决方法

  • docker ps 查看Workspace容器的id。

  • docker inspect 容器id,找到Networks中的IPAddress

  • 修改nginx配置文件。


    map $http_upgrade $connection_upgrade {
     default upgrade;
     ''      close;}
    

    upstream ws {
     server 172.22.0.4:9502 weight=5 max_fails=3 fail_timeout=30s;}
    
    <pre class="brush:php;toolbar:false">location /ws { set $suffix &quot;&quot;; if ($uri = /index.php) { set $suffix ?$query_string; } proxy_http_version 1.1; proxy_set_header Host $http_host; proxy_set_header Scheme $scheme; proxy_set_header SERVER_PORT $server_port; proxy_set_header REMOTE_ADDR $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_pass http://ws$suffix;}</pre>
    map $http_upgrade $connection_upgrade {
        default upgrade;
        &#39;&#39;      close;}upstream ws {
        server 172.22.0.4:9502 weight=5 max_fails=3 fail_timeout=30s;}server {
    
        listen 80;
        listen [::]:80;
    
        server_name bbs.test;
        root /var/www/laravel/public;
        index index.php index.html index.htm;
    
        location / {
             try_files $uri $uri/ /index.php$is_args$args;
        }
    
        location ~ \.php$ {
            try_files $uri /index.php =404;
            fastcgi_pass php-upstream;
            fastcgi_index index.php;
            fastcgi_buffers 16 16k;
            fastcgi_buffer_size 32k;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            #fixes timeouts
            fastcgi_read_timeout 600;
            include fastcgi_params;
        }
    
        location ~ /\.ht {
            deny all;
        }
    
        location /.well-known/acme-challenge/ {
            root /var/www/letsencrypt/;
            log_not_found off;
        }
    
        location /ws {
            set $suffix "";
    
            if ($uri = /index.php) {
                set $suffix ?$query_string;
            }
    
            proxy_http_version 1.1;
            proxy_set_header Host $http_host;
            proxy_set_header Scheme $scheme;
            proxy_set_header SERVER_PORT $server_port;
            proxy_set_header REMOTE_ADDR $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;
    
            proxy_pass http://ws$suffix;
        }
    
        error_log /var/log/nginx/laravel_error.log;
        access_log /var/log/nginx/laravel_access.log;}
  • Ursache: Swoole-Server läuft im Workspace-Container; Nginx-Server läuft im Nginx-Container, Sie müssen die IP von Workspace finden und Nginx-Konfiguration.
  • Lösung

    docker ps Sehen Sie sich die ID des Workspace-Containers an.

    #🎜🎜##🎜🎜#Docker prüft Container-ID, finden Sie IPAddress in Netzwerke. #🎜🎜##🎜🎜##🎜🎜##🎜🎜#Nginx-Konfigurationsdatei ändern. #🎜🎜##🎜🎜#
    #🎜🎜#rrreee#🎜🎜##🎜🎜#rrreeerrreee#🎜🎜##🎜🎜##🎜🎜#Starten Sie Nginx neu. #🎜🎜##🎜🎜##🎜🎜##🎜🎜##🎜🎜#Profil #🎜🎜##🎜🎜#rrreee

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie Nginx von Laravel Octane und WebSocket in Laradock. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen