Day51-Nginx多实例知识与大厂企业级实战
客户端访问nginx虚拟主机的原理流程
nginx多实例实践
nginx多实例大厂应用案例
nginx恶意域名解析及解决方案
nginx别名介绍及应用实践
1. 什么是nginx多实例?
简单理解,一个nginx master进程对应一个实例。
运行一个实例:
/usr/sbin/nginx -c /etc/nginx/nginx01.conf
运行多个实例。
/usr/sbin/nginx -c /etc/nginx/nginx02.conf
/usr/sbin/nginx -c /etc/nginx/nginx03.conf
2. 为什么要用多实例?
#运行www
/usr/sbin/nginx -c /etc/nginx/nginx02.conf
#运行blog
/usr/sbin/nginx -c /etc/nginx/nginx03.conf
#运行bbs:
/usr/sbin/nginx -c /etc/nginx/nginx01.conf
08年淘宝,分用户管理(类似现在KVM,docker)
3. 大厂数百个业务项目,如何来管理?
www blog bbs 加起来200个。
共赢:
分用户解决方案:解决开发和运维之间打架争权限问题,顺便就把网站宕机的责任推给他了。
1.为每个业务建立一个普通用户inca。
2.把普通用户的家目录,作为项目的站点目录(/home/inca目录权限是700,天然所有项目做了权限隔离)。
3.把配置文件、访问日次、错误日志都放到/home/inca目录。
4.nginx -c nginx.conf方法启动(普通用户无法启动特权端口(默认端口),用8080代替原理的80端口(前端有负载均衡))。
5.管理权限是inca用户(只要登录inca用户,可以做一切想做的事)。
6.把inca用户权限给开发组组长(分配轮流负责网站宕机。)
7.把200个项目,创建200个用户,分为200个实例,200人,10人一个小组。10个用户给他们。
8.后半夜宕机了,开发起来。处理不了,报警研发经理,报警研发总监,报警CTO。跟运维无关。
9.200个项目,10个运维,全给开发了,需要1个够了。给3个运维工资。
10.网站宕机会不会减少?网站宕机和开发相关,他写代码就会重视了。
11.学习开发,学习devops,开发自动化平台,搞云原生。。。。做优化,做架构调整。
12.流量翻倍的时候,不增加运维,80台。提前未雨绸缪。
13.工资又翻倍了。。
14.把运维和开发绑在一条绳上(系统网络归运维,服务宕机归开发)
4. 大厂上百项目web分用户解决方案
4.1 编译nginx环境实践:
1.添加两个普通用户并设置密码
[root@web02 ~]# useradd zuma
[root@web02 ~]# useradd inca
[root@web02 ~]# echo 123456|passwd --stdin inca
[root@web02 ~]# echo 123456|passwd --stdin zuma
2.在不同的用户家目录下面创建各种目录
[root@web02 ~]# cd /home/inca/
[root@web02 inca]# mkdir conf/extra log html -p
[root@web02 inca]# tree
├── conf #主配置文件目录
│ └── extra #虚拟主机目录
├── html #inca站点目录
└── logs #日志目录
或者直接拷贝
[root@web02 zuma]# cp -a /application/nginx/{conf,logs,html} /home/inca
[root@web02 zuma]# cp -a /application/nginx/{conf,logs,html} /home/zuma<