学习技巧:
三W一H学习法
,分表代表What
(是什么)、Why
(为什么使用,有什么优点)、When
(使用场景有哪些)、How
(怎么用)
学前思考
Nginx是什么
Nginx和Apache处理PHP文件的方式是怎样的
Nginx和Apache的区别是什么?
Nginx和Apache的使用场景有哪些?
为什么现在大部分网站都采用Nginx服务器?
Nginx的正向代理和反向代理是什么?
Nginx如何实现负载均衡?
Nginx是什么
Nginx
(engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。
Nginx和Apache的区别
- 处理PHP文件方式不一样
- Apache采用
libphp5.so
处理PHP文件 - Nginx采用
php-fpm
处理PHP文件 - libphp5.so是同Apache同时一起启动的
- Nginx和php-fpm是独立启动的,并且通过9000端口进行通讯
Apache处理php文件
Nginx处理php文件
Nginx对比Apache的优点
Nginx的优点
-
轻量级
,同样是 web 服务,比Apache 占用的内存及资源更少 ; -
高并发
,Nginx 处理请求是异步非塞
的,而Apache 则是阻塞型的,在高并发下Nginx 能保持低资源低消耗高性能
;官方数据测试能够支持高达50,000个并发连接响应
-
高度模块化
的设计:编写模块相对简单; - 社区活跃,各种高性能模块出品迅速。
Apache的优点
-
rewrite
,比Nginx 的rewrite强大; -
模块超多
,基本想到的都可以找到; -
少bug
,Nginx 的bug 相对较多; 超稳定
Nginx和Apache使用场景
-
Nginx适合场景
:追求性能、处理静态请求以及反向代理 ,比如处理电商网站 - Apache适合场景:追求稳定、处理动态请求
Nginx正向代理和反向代理
Nginx正向代理 :代理客户端
Nginx反向代理 :代理服务器端
Nginx实现负载均衡
轮询
加权轮询
概念: 将反向代理的服务器增加权重
,当发送请求时,会先请求高权重的服务器;当服务器权重降低比其他服务器低时,去请求其他服务器。
IP Hash
概念: 通过IP Hash 的内在算法根据IP来轮询,IP Hash可以解决session不共享的问题。
缺点: 如果服务器宕机了则session会失效
建议: redis解决session不共享问题
动静分离
概念:
- 有些
不需要后台处理
的(CSS、JS、Html、jpg等等)文件,称为静态文件 - 动静态文件的区分时按照一定的规则把不变的资源和经常变的资源区分开
- 可以将
静态资源做缓存操作
,提高资源响应速度
负载均衡的配置
# 修改配置文件
[root@learncentos bin]# vim /usr/local/nginx/conf/nginx.conf
user nginx nginx;
# nginx 多核绑定
worker_processes 2;
worker_cpu_affinity 01 10;
events {
worker_connections 65535;
}
# 后端服务器
http {
upstream webalias{
server 192.168.106.131:8080;
server 192.168.106.131:8081;
}
server {
listen 80;
server_name www.jacknum1.cn;
location / {
proxy_pass http://webalias;
}
}
[root@learncentos conf]# lnmp nginx reload #重新加载
[root@learncentos conf]# vim /etc/security/limits.conf
nginx - nofile 65536
#开启两个后端服务器的httpd
# 真机测试
[root@foundation25 ~]# curl www.jacknum1.cn