Nginx

时间:2020-01-09 20:29:47   收藏:0   阅读:76

Nginx 简介 

Nginx (engine x) 是一个轻量级的、高性能的、基于 Http 的、反向代理服务器,同时还 是一个电子邮件服务器。

Nginx 最初是由俄罗斯人 Igor Sysoev(伊戈尔·赛索耶夫)使用 C 语言为俄罗斯访问量第 二的 Rambler.ru 站点开发的一款服务器。2004 年 10 月发布第一个版本。

国内大型的站点,例如百度、京东、新浪、网易、腾讯、淘宝等,都使用了 Nginx。 

代理服务器 

代理服务器根据其代理对象的不同,可以分为正向代理服务器与反向代理服务器。这里 的“正”与“反”均是站在客户端角度来说的。 

正向代理 

技术图片

客户端---http--->代理服务器----->真实服务器(返回结果)

在这个过程中客户端是知道真实服务器,也知道代理服务器,但是客户端的请求都是所做的请求都是由代理服务器来处理。

反向代理

技术图片

 

 

 反向代理 Reverse Proxy,是对服务端的代理。单从功能示意图上看,好像反向代理与正 向代理没有区别,都是架设在客户端与服务端间的主机。但反向代理是服务端架设的主机, 与客户端无关。客户端认为其访问的是服务器本身,但其真正访问是反向代理服务器。

客户端在使用反向代理服务器时,根本就不知道自己真正要访问的目标服务器的地址及 信息,所有的访问都是通过代理完成的。这点上是与正向代理服务器不同的。

安装Nginx

1. 官网下载相应nginx版本tar包

2. 使用xftp上传到linux

3. 解压tar包

4. 安装所需依赖

-  yum install pcre-devel

-  yum install zlib zlib-devel

-  yum install openssl openssl-devel

-  yum -y install gcc gcc-c++ autoconf automake make   安装c++编译环境

5. 进入解压开的nginx-1.16.1文件夹找到 configur 执行

6. 然后执行 make(nginx是一个完全由C语言编写的程序make命令是将文件编译就想java的javac一样)

7. 在执行make install(make install这个命令是将nginx安装)

安装好后可以在./usr/local/目录下发现一个nginx的文件夹.

这个就是安装好后的nginx。安装好后目录结构如下

技术图片

启动nginx

1.Nginx用的是80端口 , 把端口对外开放

firewall-cmd --zone=public --add-port=80/tcp --permanent

firewall-cmd --reload

2.启动:安装好的nginx目录中有一个sbin,里面是一个nginx(可执行文件执行    ./nginx 

3.启动后直接在网页输入本机ip即可访问  页面如下

 技术图片

Nginx常用命令

  1. /usr/local/nginx/sbin/nginx                     # 启动nginx 
  2. /usr/local/nginx/sbin/nginx -s reload      # 重新载入配置文件   
  3. /usr/local/nginx/sbin/nginx -s reopen     # 重启 Nginx
  4. /usr/local/nginx/sbin/nginx -s stop         # 停止 Nginx
  5. /usr/local/nginx/sbin/nginx -t                  #检查配置文件是否正确

修改nginx.conf配置文件实现反向代理

文件: /usr/local/nginx/conf/nginx.conf是核心配置文件

技术图片

 

 

1.修改windows系统目录中的hosts文件, ip为虚拟机里面的地址

地址:C:\Windows\System32\drivers\etc\hosts

技术图片

 

 

2.在http块中添加upstream

tomcat是安装在本机ip地址127.0.0.1即是在别的服务器者需要修改ip

upstream tomcat_server{

         server 127.0.0.1:8080; 

         }

3.修改server块
server_name  it.nginx.com;        #自定义访问域名

root  /home/nginx/tomcat_data/;    #静态文件存放路径

index index.html;                 #定义首页

4.修改server下的location块
proxy_pass http://tomcat_server;           #映射对应upstream

proxy_set_header X-Real-IP $remote_addr;   #映射nginx真实ip

proxy_set_header Host $Host;

技术图片

 

 

5.先检查配置文件是否正确

/usr/local/nginx/sbin/nginx -t(出现以下日志则可以重启nginx了)

技术图片

 

 

6./usr/local/nginx/sbin/nginx -s reload 修改了配置,重启配置.再访问it.nginx.com 

使用Nginx实现负载均衡

首先启动两台Tomcat服务器

1. 然后在nginx配置文件中修改upstream 添加两个ip地址分别是
   upstream tomcat_server{

        server 127.0.0.1:8080;

        server 127.0.0.1:8081;

   }

2.其他配置文件可以不用修改,直接检查即可 (/usr/local/nginx/sbin/nginx -t)通过即可运行nginx

技术图片

 

 

 技术图片

 

 

 可以看见同一个前端代码访问了不同的后端。

Nginx负载均衡策略

    nginx默认的负载均衡策略既是轮询,轮询就是从上到下一个一个执行

技术图片

    权重方式,在轮询策略的基础上指定轮询的几率

技术图片

 

    在该例子中,weight参数用于指定轮询几率,weight的默认值为1,;weight的数值与访问比率成正比,比如8080被访问的几率为其他服务器的两倍

    指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可以解决session不能跨服务器的问题。

技术图片

 

 技术图片

    把请求转发给连接数较少的后端服务器。轮询算法是把请求平均的转发给各个后端,使它们的负载大致相同;但是,有些请求占用的时间很长,会导致其所在的后端负载较高。这种情况下,least_conn这种方式就可以达到更好的负载均衡效果。

技术图片

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!