zzbb 发表于 2018-11-14 06:31:36

nginx高可用,构建LNAMMP架构

  keepalived实现nginx高可用:
  Directory1:
  IP:172.16.72.5
  Directory2:
  IP:172.16.72.4
  RS1:
  IP:172.16.72.6
  RS2:
  IP:172.16.72.7
  Virtual IP:172.16.72.1
  ①安装nginx,keepalived
  yum -y install nginx keepalived
  ②校准时间,设置ntpd服务,时间服务器
  ③配置Directory1的nginx
  配置文件/etc/nginx/nginx.conf

  upstream设置后端服务器的相关信息
  在servver中设置Directory反代
  proxy_pass
  Directory2的nginx配置相同;
  配置keepalived:

  keepalived脚本接口,用于判断nginx服务是否开启
  若nginx服务已关闭,则返回exit 1,权重-10,这样在抢占模式下BACKUP就会转为MASTER;

  Directory2的配置:
  nginx配置

  keepalived配置:


  nginx高可用验证:
  MASTER为Directory1:

  浏览器访问:


  关闭Directory1的nginx服务
  # nginx -s stop
  MASTER转到Directory2上:

  访问浏览器:


  构建LNAMMP架构:
  1) Nginx既是前端调度器,又是缓存服务器;
  2) 将php的session缓存于memcached中;
  3) 在Apache和php上部署Discuz论坛程序;
  4) 使用https连接,即使用户使用的是http协议也可以以https协议进行访问;
  ①配置Nginx前端调度器,缓存服务器:
  如上所述;
  ②后端真实服务器上配置Discuz程序
  将Discuz程序导入,使用unzip解压缩;
  配置Mariadb
  如:

  解压后产生文件有upload,readme,utility;
  安装php-fpm;
  ③配置后端服务器的httpd
  两个Real Server的配置均相同,配置密钥的方式在这里不说了

  #yum install -y mod_ssl
  安装httpd下的https插件
  ④前端nginx的rewrite与反代
  在nginx高可用的基础上进行的修改

  rewrite重写为https模式;

  当访问80端口后,重写为https的域名,由443端口获取,再将其反代到wjq这个服务器组中;
  访问结果:
  直接访问https://www.wujunqi1.com/upload/install/index.php

  访问:http://www.wujunqi1.com/upload/install/index.php便会转到https服务
  断掉Directory1的nginx服务:
  #nginx -s stop
  访问第二台Directory2,结果相同

  设置memcached缓存服务器:
  缓存服务器IP为172.16.72.5即第一台MASTER主机
  安装memcached
  #yum install -y memcached
  启动memcached
  #systemctl start memcached.service
  并在后端RS的php上设置会话缓存,主要配置/etc/php-fpm.d/www.conf(安装的是php-fpm)
  若安装的是php,则修改/etc/php.ini配置文件;

  需要注意的是,在配置php会话缓存时,需要与memcached相对应的配置项,如php-pecl-memcache   或者php-pecl-memcached;
  使用如下代码,去验证php缓存是否成功:

  修改缓存服务器IP地址即可;
  该代码的主要意义在于,连接远程缓存服务器,并将hellokey作为键值,Hello World作为缓存数   据保存在缓存服务器中,保存时间600秒;
  访问nginx的虚拟IP,172.16.72.1,反代至后端的172.16.72.6主机得出缓存成功的结果;


页: [1]
查看完整版本: nginx高可用,构建LNAMMP架构