Nginx原理与实战(一) - Go语言中文社区

Nginx原理与实战(一)


学习技巧: 三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
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/Jack_num1/article/details/115473378
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢