Laradock中Laravel Octane与WebSocket的nginx怎么配置

其他教程   发布日期:2023年06月18日   浏览次数:518

今天小编给大家分享一下Laradock中Laravel Octane与WebSocket的nginx怎么配置的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

前情描述

  1. laradock
中安装好Laravel Octane后swoole启动,在nginx中配置端口访问连接失败, 报错提示502,配置如下:

  1. location /octane {
  2. proxy_pass http://127.0.0.1:8080;}

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

解决方法

    1. docker ps
    查看Workspace容器的id。
    1. docker inspect 容器id
    ,找到
    1. Networks
    中的
    1. IPAddress
  • 修改nginx配置文件。


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

    1. upstream ws {
      server 172.22.0.4:9502 weight=5 max_fails=3 fail_timeout=30s;}
    1. location /ws {
    2. set $suffix "";
    3. if ($uri = /index.php) {
    4. set $suffix ?$query_string;
    5. }
    6. proxy_http_version 1.1;
    7. proxy_set_header Host $http_host;
    8. proxy_set_header Scheme $scheme;
    9. proxy_set_header SERVER_PORT $server_port;
    10. proxy_set_header REMOTE_ADDR $remote_addr;
    11. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    12. proxy_set_header Upgrade $http_upgrade;
    13. proxy_set_header Connection $connection_upgrade;
    14. proxy_pass http://ws$suffix;}
  • 重启nginx。

配置文件

  1. map $http_upgrade $connection_upgrade {
  2. default upgrade;
  3. '' close;}upstream ws {
  4. server 172.22.0.4:9502 weight=5 max_fails=3 fail_timeout=30s;}server {
  5. listen 80;
  6. listen [::]:80;
  7. server_name bbs.test;
  8. root /var/www/laravel/public;
  9. index index.php index.html index.htm;
  10. location / {
  11. try_files $uri $uri/ /index.php$is_args$args;
  12. }
  13. location ~ .php$ {
  14. try_files $uri /index.php =404;
  15. fastcgi_pass php-upstream;
  16. fastcgi_index index.php;
  17. fastcgi_buffers 16 16k;
  18. fastcgi_buffer_size 32k;
  19. fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
  20. #fixes timeouts
  21. fastcgi_read_timeout 600;
  22. include fastcgi_params;
  23. }
  24. location ~ /.ht {
  25. deny all;
  26. }
  27. location /.well-known/acme-challenge/ {
  28. root /var/www/letsencrypt/;
  29. log_not_found off;
  30. }
  31. location /ws {
  32. set $suffix "";
  33. if ($uri = /index.php) {
  34. set $suffix ?$query_string;
  35. }
  36. proxy_http_version 1.1;
  37. proxy_set_header Host $http_host;
  38. proxy_set_header Scheme $scheme;
  39. proxy_set_header SERVER_PORT $server_port;
  40. proxy_set_header REMOTE_ADDR $remote_addr;
  41. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  42. proxy_set_header Upgrade $http_upgrade;
  43. proxy_set_header Connection $connection_upgrade;
  44. proxy_pass http://ws$suffix;
  45. }
  46. error_log /var/log/nginx/laravel_error.log;
  47. access_log /var/log/nginx/laravel_access.log;}

以上就是Laradock中Laravel Octane与WebSocket的nginx怎么配置的详细内容,更多关于Laradock中Laravel Octane与WebSocket的nginx怎么配置的资料请关注九品源码其它相关文章!