在Ubuntu上使用PHP-FPM進行負載均衡,通常需要結合Nginx或Apache作為反向代理服務器。以下是使用Nginx作為反向代理服務器實現負載均衡的步驟:
首先,確保你的系統是最新的,并安裝PHP-FPM和Nginx:
sudo apt update
sudo apt install php-fpm nginx
編輯PHP-FPM配置文件,通常位于/etc/php/7.x/fpm/pool.d/www.conf
(根據你的PHP版本調整路徑):
sudo nano /etc/php/7.x/fpm/pool.d/www.conf
找到并修改以下行,設置監聽地址和端口:
listen = /run/php/php7.x-fpm.sock
將php7.x
替換為你的PHP版本號。
編輯Nginx的默認站點配置文件,通常位于/etc/nginx/sites-available/default
:
sudo nano /etc/nginx/sites-available/default
在server
塊中添加以下內容,配置PHP-FPM的反向代理:
server {
listen 80;
server_name your_domain.com;
root /var/www/html;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.x-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
將your_domain.com
替換為你的域名,并將php7.x
替換為你的PHP版本號。
創建一個符號鏈接以啟用Nginx配置:
sudo ln -s /etc/nginx/sites-available/default /etc/nginx/sites-enabled/
測試Nginx配置是否正確:
sudo nginx -t
如果沒有錯誤,重新加載Nginx以應用更改:
sudo systemctl reload nginx
如果你有多個PHP-FPM實例,可以在Nginx配置中添加負載均衡。編輯Nginx配置文件,通常位于/etc/nginx/nginx.conf
:
sudo nano /etc/nginx/nginx.conf
在http
塊中添加以下內容:
upstream php_backend {
server unix:/run/php/php7.x-fpm.sock;
server unix:/run/php/php7.y-fpm.sock; # 添加其他PHP-FPM實例的路徑
}
將php7.x
和php7.y
替換為你的PHP版本號。
然后,在server
塊中修改fastcgi_pass
指令:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass php_backend;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重新加載Nginx以應用更改:
sudo systemctl reload nginx
現在,你的Nginx服務器應該能夠通過PHP-FPM實例進行負載均衡了。
/etc/php/7.x/fpm/pool.d/www.conf
)中的監聽地址和端口一致。sudo systemctl status nginx
sudo systemctl status php7.x-fpm
通過以上步驟,你應該能夠在Ubuntu上使用PHP-FPM和Nginx實現負載均衡。