前情描述
在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;}
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;}
-
重啟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;}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;}
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END