溫馨提示×

如何在Ubuntu上搭建LNMP集群

小樊
40
2025-08-11 09:53:27
欄目: 智能運維

在Ubuntu上搭建LNMP(Linux, Nginx, MySQL, PHP)集群是一個復雜的過程,涉及到多個組件的安裝和配置。以下是一個基本的步驟指南,幫助你在Ubuntu上搭建一個簡單的LNMP集群。

1. 準備工作

  • 硬件準備:至少需要兩臺服務器,一臺作為主服務器(Master),另一臺作為從服務器(Slave)。
  • 網絡配置:確保兩臺服務器之間可以互相通信。

2. 安裝Nginx

在兩臺服務器上安裝Nginx:

sudo apt update
sudo apt install nginx

3. 安裝MySQL

在兩臺服務器上安裝MySQL:

sudo apt update
sudo apt install mysql-server

4. 配置MySQL主從復制

主服務器配置

  1. 編輯MySQL配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  1. [mysqld]部分添加以下內容:
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name
  1. 重啟MySQL服務:
sudo systemctl restart mysql
  1. 創建一個用于復制的用戶:
CREATE USER 'replicator'@'%' IDENTIFIED BY 'your_password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
  1. 查看主服務器的二進制日志位置:
SHOW MASTER STATUS;

記下FilePosition的值。

從服務器配置

  1. 編輯MySQL配置文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
  1. [mysqld]部分添加以下內容:
server-id = 2
relay_log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = your_database_name
read_only = 1
  1. 重啟MySQL服務:
sudo systemctl restart mysql
  1. 配置從服務器連接到主服務器:
CHANGE MASTER TO
MASTER_HOST='master_ip_address',
MASTER_USER='replicator',
MASTER_PASSWORD='your_password',
MASTER_LOG_FILE='recorded_log_file_name',
MASTER_LOG_POS=recorded_log_position;
  1. 啟動從服務器復制:
START SLAVE;
  1. 檢查從服務器狀態:
SHOW SLAVE STATUS\G

確保Slave_IO_RunningSlave_SQL_Running都是Yes。

5. 安裝PHP

在兩臺服務器上安裝PHP及其常用擴展:

sudo apt update
sudo apt install php-fpm php-mysql

6. 配置Nginx處理PHP請求

編輯Nginx配置文件:

sudo nano /etc/nginx/sites-available/default

添加以下內容:

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.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

重啟Nginx服務:

sudo systemctl restart nginx

7. 測試集群

在主服務器上創建一個PHP文件,例如info.php

<?php
phpinfo();
?>

訪問http://your_domain.com/info.php,確保頁面顯示PHP信息。然后在從服務器上訪問相同的頁面,確保數據同步。

8. 配置負載均衡(可選)

如果你需要更高的可用性和性能,可以考慮使用Nginx作為負載均衡器。

安裝和配置HAProxy

在兩臺服務器上安裝HAProxy:

sudo apt update
sudo apt install haproxy

編輯HAProxy配置文件:

sudo nano /etc/haproxy/haproxy.cfg

添加以下內容:

global
    log /dev/log local0
    log /dev/log local1 notice
    daemon

defaults
    log global
    mode http
    option httplog
    option dontlognull
    timeout connect 5000ms
    timeout client 50000ms
    timeout server 50000ms

frontend http_front
    bind *:80
    default_backend http_back

backend http_back
    balance roundrobin
    server server1 master_ip_address:80 check
    server server2 slave_ip_address:80 check

重啟HAProxy服務:

sudo systemctl restart haproxy

現在,你的LNMP集群已經搭建完成,并且可以通過HAProxy進行負載均衡。

請注意,這只是一個基本的指南,實際生產環境中可能需要更多的配置和優化。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女