成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

LNMP+HAProxy+Keepalived負(fù)載均衡(三)- 配置文件匯總

894974231 / 3980人閱讀

摘要:的操作命令將端口由修改為,修改內(nèi)容如下具體配置可參考下面的配置文件重啟,并查看其狀態(tài)的配置文件服務(wù)器需要修改的配置,僅用參考端口根據(jù)自己的情況修改站點根目錄可以加載自己的配置文件,這里我把配置文件中的內(nèi)容直接替換了原本的節(jié)

Nginx的操作命令

vim /usr/local/nginx/conf/nginx.conf
# 將端口由80修改為10001,修改內(nèi)容如下:
listen 10001 default_server;
# 具體配置可參考下面的nginx配置文件

# 重啟Nginx,并查看其狀態(tài);
service nginx restart & service nginx status

Nginx的配置文件(Web服務(wù)器需要修改的配置,僅用參考)

user  www www;
worker_processes auto;
error_log  /home/wwwlogs/nginx_error.log  crit;
pid        /usr/local/nginx/logs/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
   use epoll;
   worker_connections 51200;
   multi_accept on;
}
http
{
   include       mime.types;
   default_type  application/octet-stream;
   server_names_hash_bucket_size 128;
   client_header_buffer_size 32k;
   large_client_header_buffers 4 32k;
   client_max_body_size 50m;

   sendfile   on;
   tcp_nopush on;
   keepalive_timeout 60;
   tcp_nodelay on;

   fastcgi_connect_timeout 300;
   fastcgi_send_timeout 300;
   fastcgi_read_timeout 300;
   fastcgi_buffer_size 64k;
   fastcgi_buffers 4 64k;
   fastcgi_busy_buffers_size 128k;
   fastcgi_temp_file_write_size 256k;

   gzip on;
   gzip_min_length  1k;
   gzip_buffers     4 16k;
   gzip_http_version 1.1;
   gzip_comp_level 2;
   gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
   gzip_vary on;
   gzip_proxied   expired no-cache no-store private auth;
   gzip_disable   "MSIE [1-6].";
   #limit_conn_zone $binary_remote_addr zone=perip:10m;
   ##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.

   server_tokens off;
   access_log off;

   server
   {
       # 端口根據(jù)自己的情況修改
       listen 10001 default_server;
       server_name _;
       index index.html index.htm index.php default.html default.htm default.php;
       # 站點根目錄
       root  /home/wwwroot/publishPath;

       include rewrite/laravel.conf;
       #error_page   404   /404.html;

       # Deny access to PHP files in specific directory
       #location ~ /(wp-content|uploads|wp-includes|images)/.*.php$ { deny all; }

       include enable-php.conf;

       location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
       {
           expires      30d;
       }
       location ~ .*.(js|css)?$
       {
           expires      12h;
       }
       location ~ /.well-known {
           allow all;
       }
       location ~ /.
       {
           deny all;
       }
       access_log off;
   }
????# 可以加載自己的配置文件,這里我把配置文件中的內(nèi)容直接替換了原本的server節(jié)點配置;
   # include vhost/*.conf;
}

MySQL的操作命令

vim /etc/my.cnf
service mysql restart & service mysql status
lnmp restart

MySQL的配置文件(DB服務(wù)器需要修改的配置,僅用參考)

[client]
port        = 10002
socket      = /tmp/mysql.sock

[mysqld]
port        = 10002
socket      = /tmp/mysql.sock
# 數(shù)據(jù)庫文件存放位置
datadir = /home/lnmp/mysql/data
skip-external-locking
key_buffer_size = 128M
max_allowed_packet = 1M
table_open_cache = 512
sort_buffer_size = 2M
net_buffer_length = 8K
read_buffer_size = 2M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 32M
thread_cache_size = 64
query_cache_size = 64M
tmp_table_size = 64M
performance_schema_max_table_instances = 4000

explicit_defaults_for_timestamp = true
#skip-networking
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535

log-bin=mysql-bin
binlog_format=mixed
server-id = 51
lower_case_table_names = 1
expire_logs_days = 10
replicate_wild_do_table=lgd_system.%
# relay_log=mysqld-relay-bin
log-slave-updates=YES

default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_data_home_dir = /home/lnmp/mysql/data
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = /home/lnmp/mysql/data
innodb_buffer_pool_size = 512M
innodb_log_file_size = 128M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50

[mysqldump]
# 數(shù)據(jù)庫備份賬戶,自行創(chuàng)建并分配相應(yīng)的權(quán)限
user=bakuser
password=ZXdfty^&
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash

[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 2M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

HAProxy的操作命令

# 負(fù)載狀態(tài)監(jiān)測:
# Web服務(wù)器HAProxy - http://192.168.6.111:8080/web
# DB服務(wù)器HAProxy - http://192.168.6.211:8080/db
# 如果需要通過外網(wǎng)訪問,需要把8080端口映射到外網(wǎng)端口即可。
# 常用命令:
vim /etc/haproxy/haproxy.cfg
service haproxy restart & service haproxy status

HAProxy的配置文件(Web服務(wù)器)

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
   # 全局的日志配置,使用log關(guān)鍵字,指定使用127.0.0.1上的syslog服務(wù)中的local0日志設(shè)備,記錄日志等級為info的日志
   log         127.0.0.1 local3
   # 軟件工作目錄
   chroot      /var/lib/haproxy
   # haproxy的pid存放路徑,啟動進(jìn)程的用戶必須有權(quán)限訪問此文件
   pidfile     /usr/local/haproxy/haproxy.pid
   # 最大連接數(shù),默認(rèn)4000
   maxconn     30000
   # 所屬用戶
   user        haproxy
   # 所屬組
   group       haproxy
   # 以守護進(jìn)程方式運行haproxy
   daemon
   # turn on stats unix socket
   # stats socket /var/lib/haproxy/stats????# socket路徑

#---------------------------------------------------------------------
# common defaults that all the "listen" and "backend" sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
   mode                    http????# 默認(rèn)的模式mode { tcp|http|health },tcp是4層,http是7層,health只會返回OK
   log                     global????# 采用全局定義的日志
   option                  httplog????# 啟用日志記錄HTTP請求,默認(rèn)haproxy日志記錄是不記錄HTTP請求日志
   option                  dontlognull????# 不記錄健康檢查的日志信息
   option http-server-close    # 每次請求完畢后主動關(guān)閉http通道
   
   # 如果后端服務(wù)器需要獲得客戶端真實ip需要配置的參數(shù),可以從Http Header中獲得客戶端ip
   option forwardfor       except 127.0.0.0/8
   option                  redispatch????# serverId對應(yīng)的服務(wù)器掛掉后,強制定向到其他健康的服務(wù)器
   retries                 3    # 3次連接失敗就認(rèn)為服務(wù)不可用,也可以通過后面設(shè)置 
   timeout http-request    10s??????# http請求超時時間
   timeout queue           1m???????# 一個請求在隊列里的超時時間
   timeout connect         10s??????# 連接超時
   timeout client          1m???????# 客戶端連接超時
   timeout server          1m???????# 服務(wù)器連接超時
   timeout http-keep-alive 10s??????# 設(shè)置http-keep-alive的超時時間
   timeout check           10s????? # 檢測超時
   maxconn                 3000????# 最大連接數(shù)

#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
# 前端配置
frontend  main *:80
   acl url_static       path_beg       -i /static /images /javascript /stylesheets
   acl url_static       path_end       -i .jpg .gif .png .css .js

   use_backend static          if url_static
   default_backend             servers

#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
# 后臺靜態(tài)文件服務(wù)配置
backend static
   balance     roundrobin
   server????static1 192.168.6.100:10001 check inter 2000 fall 3 weight 50
   server????static2 192.168.6.110:10001 check inter 2000 fall 3 weight 50

#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
# 后臺服務(wù)配置
backend servers
   balance     roundrobin
   # 添加cookie配置,將某客戶端引導(dǎo)到之前為其服務(wù)過的后端服務(wù)器上,即和后端某服務(wù)器保持聯(lián)系,防止登錄驗證失效
   cookie app_cook    insert nocache
   server????app1 192.168.6.100:10001 check inter 2000 fall 3 weight 50 cookie server1
   server????app2 192.168.6.110:10001 check inter 2000 fall 3 weight 50 cookie server2

# HAProxy狀態(tài)監(jiān)控服務(wù)配置
listen stats
   # 綁定端口
   bind *:8080
   mode http
   # stats enable
   # 訪問地址:192.168.6.100:8080/web 和 192.168.6.110:8080/web
   stats uri /web
   stats realm Global statistics
   # 管理員賬戶
   stats auth hapadmin:1qazse$#2

HAProxy的配置文件(DB服務(wù)器)

#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global
   pidfile     /var/run/haproxy.pid
   maxconn     30000
   user        haproxy
   group       haproxy
   daemon
   nbproc????1

#---------------------------------------------------------------------
# common defaults that all the "listen" and "backend" sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults
   mode                    tcp
   option                  redispatch
   retries                 3
   timeout queue           1m
   timeout connect         10s
   timeout client          1m
   timeout server          1m
   timeout check           10s
   maxconn                 4096
   option        abortonclose

frontend main
    bind *:3306
   ??default_backend servers

backend servers
   server????mysql1 192.168.6.200:10002 check inter 3000 fall 3 weight 50
   server????mysql2 192.168.6.210:10002 check inter 3000 fall 3 weight 50

# 監(jiān)控訪問地址:192.168.6.210:8080/db 和 192.168.6.200:8080/db
listen stats
   mode http
   bind 0.0.0.0:8080
   stats enable
   stats uri /db
   stats realm Global statistics
   stats auth dbadmin:1qazse$#2

Keeplived的操作命令

# 查看已安裝的Keepalived的版本:
keepalived -v
# 查看配置:
cat /etc/keepalived/keepalived.conf
# 編輯配置文件:
vim /etc/keepalived/keepalived.conf
# 測試高可用的遠(yuǎn)程訪問:
mysql -h 遠(yuǎn)程數(shù)據(jù)庫ip地址 -P 端口 -u 用戶名 -p
mysql -h 192.168.6.200 -P 3306 -u dbuser -p

# 開通服務(wù)器間的 vrrp 協(xié)議通信,用于Keepalived通信:
firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface 網(wǎng)卡名稱 --destination 224.0.0.18 --protocol vrrp -j ACCEPT;
firewall-cmd --reload;
# 服務(wù)器的網(wǎng)卡名稱請根據(jù)自己的情況修改,
# INPUT代表接收224.0.0.18的報文。
# 在VIP服務(wù)器上測試VIP漂移:
ip addr | grep 網(wǎng)卡名稱
# 停止VIP所在服務(wù)器的keepalived服務(wù),并查看VIP是否移除,并查看備用服務(wù)器是否獲取到VIP:
service keepalived stop && service keepalived status
ip addr | grep 網(wǎng)卡名稱
# 在之前停止keepalived服務(wù)的服務(wù)器上開啟keepalived服務(wù),查看VIP是否已取回:
service keepalived start && service keepalived status
ip addr | grep 網(wǎng)卡名稱

Keeplived的配置(Web服務(wù)器)

Web主服務(wù)器的配置:

# Master的配置內(nèi)容:
! Configuration File for keepalived
global_defs {
  notification_email {
      [email protected]????# 收郵件人,可以定義多個
  }
  notification_email_from [email protected]????# 發(fā)件人,可偽裝
  smtp_server 127.0.0.1????# 發(fā)送郵件的服務(wù)器地址
  smtp_connect_timeout 30????# 連接超時時間
  no_email_faults
  router_id WebMaster
  vrrp_skip_check_adv_addr
  vrrp_strict
  vrrp_garp_interval 0
  vrrp_gna_interval 0
}
vrrp_script chk_haproxy { # HAProxy服務(wù)監(jiān)測腳本
  script "/etc/keepalived/check_haproxy.sh"
  interval 2
  weight 2
}
vrrp_instance VI_1 {    # 每一個vrrp_instance就是定義一個虛擬路由器
  state MASTER    # 由初始狀態(tài)狀態(tài)轉(zhuǎn)換為master狀態(tài)
  interface 網(wǎng)卡名稱    # 網(wǎng)卡名稱,如eth0,根據(jù)自己的情況修改
  virtual_router_id 100????# 虛擬路由的id號,一般不能大于255的
  priority 100    # 優(yōu)先級,數(shù)字越大,優(yōu)先級越高,主比次大
  advert_int 1    # 初始化通告
  authentication {    # 認(rèn)證機制
      auth_type PASS
      auth_pass 666    # 密碼,自行更改,主備一致即可
  }    
  track_script {
      chk_haproxy
  }
  virtual_ipaddress {    # Web服務(wù)的虛擬ip地址:vip,前面提到的備用的虛擬IP。
      #/ brd  dev  scope  label 

Web備服務(wù)器的配置:

# Backup的配置內(nèi)容:
! Configuration File for keepalived
global_defs {
  notification_email {
      [email protected]????# 收郵件人,可以定義多個
  }
  notification_email_from [email protected]????# 發(fā)件人,可偽裝
  smtp_server 127.0.0.1????# 發(fā)送郵件的服務(wù)器地址
  smtp_connect_timeout 30????# 連接超時時間
  no_email_faults
  router_id WebBackup
  vrrp_skip_check_adv_addr
  vrrp_strict
  vrrp_garp_interval 0
  vrrp_gna_interval 0
}
vrrp_script chk_haproxy { # HAProxy服務(wù)監(jiān)測腳本
  script "/etc/keepalived/check_haproxy.sh"
  interval 2
  weight 2
}
vrrp_instance VI_1 {    # 每一個vrrp_instance就是定義一個虛擬路由器
  state BACKUP    # 由初始狀態(tài)狀態(tài)轉(zhuǎn)換為backup狀態(tài)
  interface 網(wǎng)卡名稱    # 網(wǎng)卡名稱,如eth0,根據(jù)自己的情況修改
  virtual_router_id 100????# 虛擬路由的id號,一般不能大于255的
  priority 90    # 優(yōu)先級,數(shù)字越大,優(yōu)先級越高,主比次大
  advert_int 1    # 初始化通告
  authentication {    # 認(rèn)證機制
      auth_type PASS
      auth_pass 666    # 密碼,自行更改,主備一致即可
  }    
  track_script {
      chk_haproxy
  }
  virtual_ipaddress {    # Web服務(wù)的虛擬ip地址:vip,前面提到的備用的虛擬IP。
      #/ brd  dev  scope  label 

Keeplived的配置(DB服務(wù)器)

DB主服務(wù)器的配置:

# Master的配置內(nèi)容:
! Configuration File for keepalived
global_defs {
  notification_email {
      [email protected]????# 收郵件人,可以定義多個
  }
  notification_email_from [email protected]????# 發(fā)件人,可偽裝
  smtp_server 127.0.0.1????# 發(fā)送郵件的服務(wù)器地址
  smtp_connect_timeout 30????# 連接超時時間
  no_email_faults
  router_id DBMaster
  vrrp_skip_check_adv_addr
  vrrp_strict
  vrrp_garp_interval 0
  vrrp_gna_interval 0
}
vrrp_script chk_haproxy { # HAProxy服務(wù)監(jiān)測腳本
  script "/etc/keepalived/check_haproxy.sh"
  interval 2
  weight 2
}
vrrp_instance VI_1 {    # 每一個vrrp_instance就是定義一個虛擬路由器
  state MASTER    # 由初始狀態(tài)狀態(tài)轉(zhuǎn)換為master狀態(tài)
  interface 網(wǎng)卡名稱    # 網(wǎng)卡名稱,如eth0,根據(jù)自己的情況修改
  virtual_router_id 99????# 虛擬路由的id號,一般不能大于255的
  priority 100    # 優(yōu)先級,數(shù)字越大,優(yōu)先級越高,主比次大
  advert_int 1    # 初始化通告
  authentication {    # 認(rèn)證機制
      auth_type PASS
      auth_pass 666    # 密碼,自行更改,主備一致即可
  }    
  track_script {
      chk_haproxy    
  }????
  virtual_ipaddress {    # DB服務(wù)的虛擬ip地址:vip,前面提到的備用的虛擬IP。
      #/ brd  dev  scope  label 

DB備服務(wù)器的配置:

# Backup的配置內(nèi)容:
! Configuration File for keepalived
global_defs {
  notification_email {
      [email protected]????# 收郵件人,可以定義多個
  }
  notification_email_from [email protected]????# 發(fā)件人,可偽裝
  smtp_server 127.0.0.1    ????# 發(fā)送郵件的服務(wù)器地址
  smtp_connect_timeout 30????# 連接超時時間
  no_email_faults
  router_id DBBackup
  vrrp_skip_check_adv_addr
  vrrp_strict
  vrrp_garp_interval 0
  vrrp_gna_interval 0
}
vrrp_script chk_haproxy { # HAProxy服務(wù)監(jiān)測腳本
  script "/etc/keepalived/check_haproxy.sh"
  interval 2
  weight 2
}
vrrp_instance VI_1 {    # 每一個vrrp_instance就是定義一個虛擬路由器
  state BACKUP    ????# 由初始狀態(tài)狀態(tài)轉(zhuǎn)換為master狀態(tài)
  interface 網(wǎng)卡名稱 # 網(wǎng)卡名稱,如eth0,根據(jù)自己的情況修改
  virtual_router_id 99????# 虛擬路由的id號,一般不能大于255的
  priority 90        # 優(yōu)先級,數(shù)字越大,優(yōu)先級越高,主比次大
  advert_int 1        # 初始化通告
  authentication {    ????# 認(rèn)證機制
      auth_type PASS
      auth_pass 666    # 密碼,自行更改,主備一致即可
  }    
  track_script {
      chk_haproxy    
  }????
  virtual_ipaddress {    # DB服務(wù)的虛擬ip地址:vip,前面提到的備用的虛擬IP。
      #/ brd  dev  scope  label 

創(chuàng)建Keepalived調(diào)用的腳本

操作命令

mkdir /etc/keepalived/
echo "" > /etc/keepalived/check_haproxy.sh
echo "" > /etc/keepalived/clean_arp.sh
chmod +x /etc/keepalived/*.sh
# 然后編輯兩個腳本的內(nèi)容,如下

/etc/keepalived/check_haproxy.sh

#!/bin/bash
# 判斷haproxy是否已經(jīng)啟動
if?[?$(ps?-C?haproxy?--no-header?|?wc?-l)?-eq?0?];?then
  # 如果沒有啟動,則啟動haproxy程序
  haproxy -f /etc/haproxy/haproxy.cfg
fi
# 睡眠兩秒鐘,等待haproxy完全啟動
sleep?2
# 判斷haproxy是否已經(jīng)啟動
if?[?$(ps?-C?haproxy?--no-header?|?wc?-l)?-eq?0?];?then
  # 如果haproxy沒有啟動起來,則將keepalived停掉,則VIP自動漂移到另外一臺haproxy機器,實現(xiàn)了對haproxy的高可用
  service keepalived stop

/etc/keepalived/clean_arp.sh

#!/bin/sh
VIP=$1
GATEWAY=192.168.6.255 # 本機的網(wǎng)卡網(wǎng)關(guān)地址
/sbin/arping -I ens160 -c 5 -s $VIP $GATEWAY &>/dev/null

發(fā)布文件的配置

# 站點根目錄賦權(quán)
chmod -R 777 /home/wwwroot/publishPath
# PHP環(huán)境配置
vim /home/wwwroot/publishPath/.env

# 編輯配置內(nèi)容:
APP_DEBUG=false
# Web的內(nèi)網(wǎng)VIP,如需外網(wǎng)訪問,則需要將192.168.6.111映射到外網(wǎng),然后將該處的IP改成外網(wǎng)IP
APP_URL=http://192.168.6.111
DB_CONNECTION=mysql
# DB的內(nèi)網(wǎng)VIP
DB_HOST=192.168.6.211
# DB的內(nèi)網(wǎng)端口
DB_PORT=3306
# 數(shù)據(jù)庫名稱
DB_DATABASE=dbName
# 數(shù)據(jù)庫用戶名
DB_USERNAME=dbuser
# 數(shù)據(jù)庫密碼
DB_PASSWORD=dbpwd
# 其他配置選項使用默認(rèn)設(shè)置,這里省略。

# 配置保存退出后重啟php服務(wù):
service php-fpm restart

關(guān)于IP的說明
以上說到的IP都是內(nèi)網(wǎng)IP,所有的配置都使用內(nèi)網(wǎng)IP即可。如需外網(wǎng)訪問,只需要把兩個虛擬IP和端口映射到外網(wǎng)即可(注意修改php配置的APP_URL)。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/40282.html

相關(guān)文章

  • LNMP+HAProxy+Keepalived負(fù)載均衡(二)- 基礎(chǔ)服務(wù)準(zhǔn)備

    摘要:日志服務(wù)修改日志服務(wù)配置并重啟日志服務(wù)編輯系統(tǒng)日志配置,指定包含的配置文件路徑和規(guī)則為創(chuàng)建一個獨立的配置文件編輯配置文件的內(nèi)容如下取消注釋取消注釋與中的配置對應(yīng)如果不加,則除了在中寫入日志外,也會寫入文件配置的主配置文件,開啟遠(yuǎn)程日志修改配 日志服務(wù) 修改日志服務(wù)配置并重啟日志服務(wù); vim /etc/rsyslog.conf 編輯系統(tǒng)日志配置,指定包含的配置文件路徑和規(guī)則: ...

    zhangke3016 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<