swarm(Nginx+php)+haproxy+mysql+Discuz论坛搭建

实验环境

ip 服务 备注
192.168.1.11 Docker swarm service(nginx+php) swarm-manager
192.168.1.12 Docker swarm service(nginx+php) node1
192.168.1.13 Docker swarm service(nginx+php) node2
192.168.1.14 mysql+haproxy mysql-haproxy

Ansible部署Nginx/Tomcat高可用+Maven私服生成Web项目

Ansible部署Tomcat/Nginx高可用+Maven私服生成Web项目

实验环境

环境中需要用到互联网,推荐每台都使用外网

Ansible4:192.168.1.4

Nginx+Keepalived5:192.168.1.5 VIP:192.168.1.100

Nginx+Keepalived6:192.168.1.6 VIP:192.168.1.100

Tomcat+Maven7:192.168.1.7

Tomcat+Maven8:192.168.1.8

Nexus:192.168.1.1(Maven仓库私服使用现成的)

验证Client使用宿主机即可

Web应用环境

模拟公司真实环境架构搭建

模拟公司真实环境架构搭建

现要求公司的整体架构达到高可用

实验环境:

client(Ansible):192.168.1.1/192.168.2.2、网关192.168.2.1

透明代理:192.168.1.4(192.168.2.1)

Varnish反向代理:192.168.1.5、网关192.168.1.4

负载均衡+keepalived:192.168.1.6/192.168.1.7

LNMP:192.168.1.8/192.168.1.9

Iscsi共享存储:192.168.1.10

高可用架构结业.png

Ansible-Roles应用---安装nginx

Ansible-Roles应用—安装nginx

nginx-role目录结构

/etc/ansible/roles
├── nginx.yml  
# 最终执行的yml文件,以role功能调用roles目录下的nginx角色中的所有main.yml
└── nginx
   ├── defaults
   ├── files
   │   ├── nginx   # nginx启动脚本
   │   └── nginx-1.11.1.tar.gz  # nginx安装包
   ├── handlers
   │   └── main.yml  # 写了nginx的启动yml语句
   ├── meta
   ├── tasks
   │   ├── evir.yml # 做软链并创建程序用户的yml语句
   │   ├── install.yml # 源码编译安装的yml语句
   │   ├── main.yml  # 用来调用tasks目录中的三个yml文件的顺序
   │   └── script.yml  # 复制nginx脚本的yml语句
   ├── templates
   └── vars
       └── main.yml # 所有nginx目录下的yml语句中使用的变量

Ansible自动化批量部署LNMP

nginx剧本

需要单独在主控端,写一个nginx启动脚本和php测试页面,用来传文件,nginx用copy,php用模板,用copy也行

[root@localhost ~]# vim nginx.yml 
- hosts: dbserver
  remote_user: root
  tasks:
    - name: install nginx
      unarchive: src=/root/nginx-1.11.1.tar.gz dest=/usr/src
    - name: yum install pcre* openssl*
      yum: name=pcre-devel,openssl-devel,gcc,gcc-c++,zlib-devel
    - name: make install nginx
# 以下表示进行shell操作时,先进入/usr/src/nginx-1.11.1目录
      shell: ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-pcre && make && make install
      args:
        chdir: /usr/src/nginx-1.11.1
    - name: lnfile
      file: src=/usr/local/nginx/sbin/nginx dest=/usr/local/sbin/nginx state=link
    - name: create nginx user
      user: name=nginx create_home=no shell=/sbin/nologin state=present
    - name: nginx start script
      copy: src=/root/nginx dest=/etc/init.d/nginx
    - name: xp
      file: path=/etc/init.d/nginx mode=0755
    - name: add system service
      shell: chkconfig --add nginx
    - name: open system auto started
      shell: systemctl enable nginx
    - name: start nginx
      service: name=nginx state=started

[root@localhost ~]# ansible-playbook nginx.yml 

Only one搭建LNMP

LNMP

LNMP是Linux+Nginx+Mysql+PHP的组合方式

使用LNMP的主要原因还是因为Nginx体积小,方便后期对于网络的环境变换(灵活)、切换和方便调试,比较符合轻量级, 相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,也可作为负载均衡及反向代理服务器,做到动静分离

Only one也就是LNMP全部都安装在一台Linux服务器

Nginx虚拟主机

虚拟主机:可以在一台服务器部署多个不同页面

实验目的

使用一台nginx服务器,可以分别访问到多个页面,

使用虚拟主机的三种方法:相同ip不同端口,不同ip相同端口,不同域名相同ip

实验步骤

源码安装nginx

nginx官网下载

建议在安装之前检测80端口是否被占用netstat -anpt | grep 80

Nginx反向代理及负载均衡调优

Nginx反向代理的实现

nginx通过反向代理实现负载均衡需要两个模块:(默认在安装时已经添加)

ngx_http_proxy_module  # 代理模块
ngx_http_upstream_module    # 负载均衡模块

upstream www_server_pools {        # 开启负载均衡功能,命名为www_server_pools
      server 192.168.1.4 weight=1;        # 后端节点ip1
      server 192.168.1.5 weight=1;        # 后端节点ip2
        }

Nginx安装以及平滑升级

nginx


Nginx

概念

nginx(engine x)隐形X
属于高性能web反向代理服务器,同样也是高性能http服务器,同时还是IMAP/POP3/SMTP邮件服务器
功能丰富,且稳定,由C语言编写,距离操作系统较近,运行速度较快,消耗资源少,属于轻量级服务,支持高并发(50000)


与apache对比

1)nginx占用资源少,支持更多的并发连接,效率更高,如果一个成熟的nginx服务器,可以提供5W的并发连接响应
2)负载均衡服务器
nginx支持php,可以作为httpd代理服务器进行服务,用C语言编写,效率比apache要快
3)作为邮件代理服务器
nginx最早作为邮件服务器使用,性能高于apache
4)安装简单 在7*24小时高可用状态下,可以进行平滑升级(版本升级)




正在载入...
PoweredHexo
HostedAliyun
DNSAliyun
ThemeVolantis
UV
PV
BY-NC-SA 4.0