快速入门:大白话梳理 Nginx,全网最通俗易懂
Nginx 服务快速入门
目录
一、Nginx 介绍
1. 什么是 Nginx?
Nginx (engine x) 是一个高性能的 HTTP 和 反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。
其特点是占有内存少,并发能力强,事实上 nginx 的并发能力在同类型的网页服务器中表现较好。
2. 为什么要使用 Nginx?
随着当今互联网的迅速发展,单点服务器早已无法承载上万个乃至数十万个用户的持续访问。比如一台 Tomcat 服务器在理想状态下只能够可以承受住 2000 个左右的并发量,为了解决这个问题,就需要多台 Tomcat 服务器来进行负载均衡。
那么,应该如何实现负载均衡?Nginx 就是其中的一种解决方案,当用户访问网站时,Nginx 拦截到这个访问请求,并将其通过轮询的方式均匀地分配到不同的服务器上。
并且,在 Nginx 中有一种 ip_hash 策略,它可以获取到用户的真实 IP,计算出 hash 值来选择服务器,这也是一种优秀的负载均衡方式。 所以,掌握 Nginx 成为了 Web 开发学习道路上不可缺少的一部分。
3. 什么是正向代理?
正向代理,就是客户端将自己的请求率先发给代理服务器,通过代理服务器将请求转发给服务器。我们常用的 VPN 就是一种代理服务器,为了可以连上国外的网站,客户端需要使用一个可以连接外网的服务器作为代理,并且客户端能够连接上该代理服务器。
4. 什么是反向代理?
反向代理与正向代理不同,正向代理是代理了客户端,而反向代理则是代理服务器端。在有多台服务器分布的情况下,为了能让客户端访问到的 IP 地址都为同一个网站,就需要使用反向代理。
明白了反向代理的工作机制后,接下来就可以进入 Nginx 的学习!
二、Nginx 在 Linux 下的安装
由于 Nginx 被大量使用在 Web 服务器中,所以本教程选择了 Centos 服务器的 7.4 版本作为演示!
1. 下载
进入官方下载页面: http://nginx.org/en/download.html ,选择 Stable version 稳定版本进行下载,并上传至服务器。
2. 安装
上传 tar 包至服务器后,解压到当前目录 tar -zxvf nginx-1.18.0.tar.gz -C ./
进入解压后的目录,执行 configure 脚本 cd nginx-1.18.0/ ./configure
使用 make 命令进行安装 make && make install
安装完成后,使用 whereis 命令查找 Nginx 的安装位置 (默认安装在/user/local/目录下)whereis nginx
进入安装目录下的 bin 文件夹,启动 nginx 服务,访问服务器默认的 80 端口查看是否安装成功!
三、Nginx 配置入门
1. 配置文件
在 Nginx 的安装目录下有一个 conf 文件夹,打开其中的 nginx.conf 文件
2. 反向代理单个服务器
那么,如何使用 Nginx 进行反向代理?
在 location 参数中添加 proxy_pass 字段,并填写需要反向代理的服务器地址与端口号:
注意:每一行的配置都需要以封号结尾!!!
3. 反向代理多台服务器
如果有多台服务器怎么办?除了不断地添加 proxy_pass 参数,更好的解决方案是配置 upstream 服务器组!
在配置文件的 http 块中添加 upstream 属性:
四、运行测试
1. 启动服务
配置完成后,进入 Nginx 安装目录下的 sbin 文件夹,运行 nginx 程序即可:
如果之前已经启动,无需关闭 nginx 服务,只需要让 nginx 重新加载配置文件即可:
刷新浏览器,若反向代理成功,访问的路径会自动映射到配置文件中的服务器地址!
将来,随着用户量的增长,可能需要添加新的服务器;这时只需要修改配置文件,使用 nginx -s reload 命令即可,无需关闭 nginx 服务器!
2. 关闭服务
关闭 nginx 服务的方式一般分为两种:
五、负载均衡
1. 什么是负载均衡?
由于不同服务器的配置不同,为了让性能高的服务器分配到更多的请求,便引入了负载均衡的概念。
前面提到过,Nginx 的负载均衡方式可以有很多种,如 加权轮询(默认) 、IP 哈希、url 哈希等等,这里就以加权轮询作为介绍。
加权轮询,也就是通过给服务器添加各自的权重值,Nginx 通过权重来进行请求的分配,权重越高接收到的请求数量越多,反之越少:
上图配置了三台服务器,在加权轮询的模式下,6 次不同的请求中,权重为 3 的服务器将会分配到 3 次请求,权重为 2 的服务器会分配到 2 个请求,权重为 1 的服务器则会分配到 1 个请求。负载均衡大大减少了在高并发的环境下服务器宕机的风险!
2. 配置 Nginx 负载均衡
同样地,打开 nginx.conf 文件进行配置:
在 upstream 块中添加 weight 参数:
原文链接: http://www.cnblogs.com/ljr825010/p/14351625.html
如果觉得本文对你有帮助,可以关注一下我公众号,回复关键字【面试】即可得到一份 Java 核心知识点整理与一份面试大礼包!另有更多技术干货文章以及相关资料共享,大家一起学习进步!
版权声明: 本文为 InfoQ 作者【Java王路飞】的原创文章。
原文链接:【http://xie.infoq.cn/article/22cc35c6b9a3f51c1ff1aa671】。未经作者许可,禁止转载。
评论 (1 条评论)