• Nginx


    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:WindowsSystem32driversetchosts

    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参数用于指定轮询几率,weight的默认值为1,;weight的数值与访问比率成正比,比如8080被访问的几率为其他服务器的两倍

    • Ip_hash(保证每个访客固定访问一个后端服务器)

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

     

    • least_conn

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

  • 相关阅读:
    android 圆角图片的实现
    navigationView 的使用和布局文件的绑定
    android listview 的监听事件
    android第三方框架 xlistview 的使用
    android Baseadapter 和 ViewHolder的使用
    android 调用电话功能
    android 颜色对照
    Android_menu_SubMenu
    Android_menu_optionMenu
    Android_Menu_contextMenu
  • 原文地址:https://www.cnblogs.com/dzlj/p/12173298.html
Copyright © 2020-2023  润新知