温馨提示×

Laravel在Ubuntu上如何实现负载均衡

小樊
35
2025-11-16 23:43:12
栏目: 云计算

在Ubuntu上使用Laravel实现负载均衡,通常需要以下几个步骤:

  1. 安装Nginx或Apache: 你需要一个Web服务器来处理HTTP请求。Nginx和Apache都是流行的选择。

    sudo apt update
    sudo apt install nginx  # 安装Nginx
    
  2. 配置Nginx或Apache: 配置Web服务器以将请求分发到多个Laravel应用实例。

    • Nginx配置示例

      upstream laravel_app {
          server 192.168.1.1:80;  # 第一个Laravel实例
          server 192.168.1.2:80;  # 第二个Laravel实例
          server 192.168.1.3:80;  # 第三个Laravel实例
      }
      
      server {
          listen 80;
          server_name example.com;
      
          location / {
              proxy_pass http://laravel_app;
              proxy_set_header Host $host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
          }
      }
      
    • Apache配置示例

      <VirtualHost *:80>
          ServerName example.com
      
          ProxyPreserveHost On
          ProxyPass / http://192.168.1.1:80/
          ProxyPassReverse / http://192.168.1.1:80/
      
          ProxyPass / http://192.168.1.2:80/
          ProxyPassReverse / http://192.168.1.2:80/
      
          ProxyPass / http://192.168.1.3:80/
          ProxyPassReverse / http://192.168.1.3:80/
      </VirtualHost>
      
  3. 安装和配置PHP-FPM: Laravel应用通常使用PHP-FPM来处理PHP请求。

    sudo apt install php-fpm
    

    配置PHP-FPM以监听Unix套接字或TCP端口。

    • Unix套接字配置

      编辑/etc/php/7.4/fpm/pool.d/www.conf文件,设置listen = /run/php/php7.4-fpm.sock

    • TCP端口配置

      编辑/etc/php/7.4/fpm/pool.d/www.conf文件,设置listen = 127.0.0.1:9000

    然后重启PHP-FPM服务:

    sudo systemctl restart php7.4-fpm
    
  4. 配置Nginx或Apache使用PHP-FPM

    • Nginx配置示例

      location ~ \.php$ {
          include snippets/fastcgi-php.conf;
          fastcgi_pass unix:/run/php/php7.4-fpm.sock;  # 使用Unix套接字
          # fastcgi_pass 127.0.0.1:9000;  # 使用TCP端口
          fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
          include fastcgi_params;
      }
      
    • Apache配置示例

      确保启用了proxy_fcgi模块,并配置如下:

      <FilesMatch \.php$>
          SetHandler "proxy:fcgi://localhost:9000"
      </FilesMatch>
      
  5. 部署Laravel应用: 将你的Laravel应用部署到多个服务器实例上。确保每个实例都有相同的代码和数据库配置。

  6. 测试负载均衡: 启动Nginx或Apache服务,并访问你的应用URL,确保请求被正确分发到不同的Laravel实例。

    sudo systemctl start nginx
    # 或者
    sudo systemctl start apache2
    

通过以上步骤,你可以在Ubuntu上使用Nginx或Apache实现Laravel应用的负载均衡。

0