实验环境
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 |
/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语句中使用的变量
需要单独在主控端,写一个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
LNMP是Linux+Nginx+Mysql+PHP的组合方式
使用LNMP的主要原因还是因为Nginx体积小,方便后期对于网络的环境变换(灵活)、切换和方便调试,比较符合轻量级, 相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,也可作为负载均衡及反向代理服务器,做到动静分离
Only one也就是LNMP全部都安装在一台Linux服务器
nginx(engine x)隐形X
属于高性能web反向代理服务器,同样也是高性能http服务器,同时还是IMAP/POP3/SMTP邮件服务器
功能丰富,且稳定,由C语言编写,距离操作系统较近,运行速度较快,消耗资源少,属于轻量级服务,支持高并发(50000)
1)nginx占用资源少,支持更多的并发连接,效率更高,如果一个成熟的nginx服务器,可以提供5W的并发连接响应
2)负载均衡服务器
nginx支持php,可以作为httpd代理服务器进行服务,用C语言编写,效率比apache要快
3)作为邮件代理服务器
nginx最早作为邮件服务器使用,性能高于apache
4)安装简单 在7*24小时高可用状态下,可以进行平滑升级(版本升级)