了解Nginx

一、概念 Nginx是一个高性能的HTTP和反向代理服务器,同时也提供了IMAP/POP3/SMTP邮件服 务。在我国比如百度、京东、新浪等公司都在使用这项技术。Neginx代码完全由C语言编写。官方数据表示能够支持高达50000个并发连接数的响应。

二、特点 1、占用内存少 2、并发能力强 3、Nginx安装非常简单、配置文件非常简洁(还能够支持perl语法) 4、Nginx启动非常容容易,并且几乎可以做到7*24不间断的运行,即使运行数个月也不需要重启,还能够实现在不间断服务的情况下实现版本的升级

三、作用 反向代理、负载均衡、动静分离,后文对这三个作用有详细介绍!

正向代理和反向代理

一、正向代理

正向代理,就是代理客户端。来访问一些本来访问不到的服务器。 举例说明: 我们常用的VPN,他的作用就是帮助我们访问一些平时访问不到的服务器。比如访问一些外国网站,我们使用VPN就相当于一台香港的服务器,香港的服务器则不需要翻墙就能直接访问了

二、反向代理(Neginx作用)

反向代理,代理服务器。简言之就是一个网站有多台服务器,但是客户端访问一个网址就能实现访问不同地理位置的服务器。 举例说明: 我们熟知的百度,肯定在国内不止一台服务器,但是我们作为客户端只需要在地址栏输入www.baidu.com即可成功的访问不同位置的百度服务器,那么这样就形成了一种反向代理。

提供负载均衡 

一、Nginx提供负载均衡的算法 Nginx提供的负载均衡策略有两种,内置策略和扩展策略。 1、内置策略:轮询、加权轮询、iphash 2、扩展策略:自己研发的个性化的策略

二、内置策略的理解 1、轮询 轮询就是将客户端的请求给服务器排列顺序,按照顺序依次安排访问

2、加权轮询 就是按照服务器的权重(最大负载量)进行请求的分配,负载量大的服务器将会分到更多的请求

3、iphash(这种方法用的较少,一般解决session问题,使用Redis缓存来解决) iphash是通过对客户端的ip进行hash操作,然后根据hask结果将同一客户端ip的请求分发给同一太服务器来处理,这样就可以解决session不共享的问题了!

实现动静分离

什么是动静分离? 在我们的软件开发中,有些请求是需要后台来处理的,有些请求是不需要后台来处理的(CSS、HTML、jpg等等),这些不需要经过后台的文件称为静态文件。让动态网站里的动态网页根据一定的规则把不变的资源和经常变化的资源区分开来,动静资源做好了拆分以后,我们就可以根据静态资源的特点将其做缓存操作,提高资源的响应速度。

下载安装和使用(Window和Linux)

一、Windows系统下安装 1、进入到官网上,下载最新版本的Nginx

nginx: download

2、下载后将压缩包解压到软件安装目录

3、认识Nginx文件中的各种配置 (1)conf下的nginx.conf文件,打开后能查看到监控的端口号,就是所有访问80端口的请求都会被监控

4、启动Nginx,在Nginx安装目录上输入cmd

5、在命令行界面输入nginx.exe即可启动

6、测试是否启动成功,在浏览器上输入localhost:80(80也可以省略,因为HTTP默认的端口号就是80),出现下面的界面说明启动成功

二、Linux环境下安装 1、选择如下的安装包点击下载

2、将下载好的软件上传到服务器上,并解压

3、进入到加压后的nginx文件下,查看他的目录

4、运行configure文件

./configure

5、执行make命令

6、执行以下命令

make install

7、查看服务器是否成功安装了Nginx

whereis nginx

8、进入到这个目录下

9、进入到sbin文件下

10、执行nginx文件

./nginx

无报错就是成功 但是我这出现了问题,之前可能是存在nginx,再启动Nginx就报端口号被占用了,那么就需要杀掉所有关于Nginx的进程

再次运行nginx 文件即可

11、查看当前Nginx的端口号是多少 (1)返回到上一级的Nginx文件

cd ..

(2)查看当前文件夹下的文件

(3)进入到conf文件夹,cat一下nginx.conf文件,就能看到当前的端口号是多少了

(3)当前端口号

12、输入公网的ip,默认是http的80端口,就能进入到Nginx的首页了

Nginx常用命令

想使用Nginx命令,首先要进入到nginx的sbin目录下 一、查看自己服务器上的nginx安装在哪里

whereis nginx

前提条件就是要进入到这个文件下的sbin目录

cd /usr/local/nginx/sbin/ #首先先进到这个目录下,才能执行Nginx的命令

./nginx #启动

./nginx -s stop #停止

./nginx -s quit #安全退出

./nginx -s reload #重新加载配置文件(非常常用!)

ps aux|grep nginx #查看nginx进程

项目中使用Nginx

一、首先保证是一个boot微服务项目,至少开启两个不同端口的服务

二、在Nginx的conf文件夹下的nginx.conf中配置 首先先梳理一下nginx.conf文件中的内容

event:配置最大连接数和配置一些监听的事件

配置负载均衡和反向代理 实际开发中,我们的服务会在不同的ip主机上,测试的时候我都是设置的ip一致,端口不一致

upstream ghstudy:是配置负载均衡的配置,ghstudy将被写在server/location下的proxy_pass下(是配置反向代理的关键字,后面配置相关的服务器地址),这样访问80端口,就能按照我们配置的负载均衡策略,将请求按照策略打到不同的服务器上,这样就实现了负载均衡的方法

注意:每一次修改了nginx.conf配置文件,记得在命令行中重新加载配置文件

nginx -s reload

三、配置完上面的信息,那么当我们访问localhost:80端口的根目录,就可以代理到8080和8081两个服务,具体的请求分配按照weight来配置 访问网页,会按照分配的权重,将请求的数据分配给不同的服务。

至此,关于Nginx的学习已经结束,你已经掌握了Nginx的使用和它的特性,深入的学习请继续关注博客,后续还会持续更新相关技术点,敬请期待~~~~~~

好文阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: