1、nginx 中 location 应用实例
location 是 nginx 的精华,nginx 就是通过拦截到的请求去对配置好的 location 块(location block)进行请求代理的,location 就是用来具体配置代理路径的。

2、nginx反向代理应用实例
  1>环境说明:centos7.4
    192.168.129.128 proxy-server(nginx)
    192.168.129.129 web-server(httpd)

  2>准备测试web服务器环境
    web-server安装httpd

[root@web-server ~]# yum install -y httpd

  3>提供web测试页面

[root@web-server ~]# echo "<h1>web.test.com</h1>" > /var/www/html/index.html
[root@web-server ~]# vim /etc/httpd/conf/httpd.conf
ServerName www.example.com: //去掉该行注释

  4>启动httpd服务

[root@web-server1 ~]# systemctl start httpd
[root@web-server2 ~]# systemctl start httpd

  5>访问测试web-server服务器

  6>配置 http 反向代理

[root@proxy-server ~]# vim /apps/nginx/conf/www.proxy.com.conf    //该文件间接include指向/etc/nginx/nginx.conf中的httpd模块
server {
listen ;
server_name www.proxy.com;
location / {
proxy_pass http://192.168.129.129;
}
}
[root@proxy-server ~]# systemctl restart nginx

  7>配置本地域名解析,访问测试

3、 nginx负载均衡配置实例
  由于前面,nginx 只代理了后端一台服务器,但由于我们网站名气大涨访问的人越来越多一台服务器实在是顶不住,于是我们加了多台服务器,那么多台服务器又怎么配置代理呢,我们这里以两台服务器为案例,来配置 nginx 负载均衡。
  1>环境说明:centos7.4
    192.168.129.128 balanced-server(nginx)
    192.168.129.129 web-server1(httpd)
    192.168.129.130 web-server2(httpd)

  2>准备web测试环境,提供测试页面,启动服务
    web-server1、web-server2分别安装httpd

[root@web-server1 ~]# yum install -y httpd
[root@web-server1 ~]# echo "<h1>web1.test.com</h1>" > /var/www/html/index.html
[root@web-server1 ~]# vim /etc/httpd/conf/httpd.conf
ServerName www.example.com:80 //去掉该行注释
[root@web-server1 ~]# systemctl start httpd
[root@web-server2 ~]# yum install -y httpd
[root@web-server2 ~]# echo "<h1>web2.test.com</h1>" > /var/www/html/index.html
[root@web-server2 ~]# vim /etc/httpd/conf/httpd.conf
ServerName www.example.com: //去掉该行注释
[root@web-server1 ~]# systemctl start httpd

  3>访问测试web-server服务器

  4>配置nginx负载均衡

[root@balanced-server ~]# vim /apps/nginx/conf/www.balanced.com.conf  //该文件间接include指向/etc/nginx/nginx.conf中的httpd模块
#设定负载均衡的服务器列表
upstream test.net {
ip_hash;
server 192.168.129.129:;
server 192.168.129.130:;
}
server {
listen ;
server_name www.balanced;
location / {
proxy_pass http://test.net;
}
}
[root@balanced-server ~]# systemctl restart nginx

  注意请先停掉配置的其他server虚拟主机,以防产生冲突;

  upstream 是 Nginx 的 HTTP Upstream 模块,这个模块通过一个简单的调度算法来实现客户端 IP 到后端服务器的负载均衡。在上面的设定中,通过 upstream 指令指定了一个负载均衡器的名称 test.net。这个名称可以任意指定,在后面需要用到的地方直接调用即可。

  5>配置本地域名解析,访问测试

  停掉web-server1,再进行访问测试

[root@web-server1 ~]# systemctl stop httpd

  6>拓展:upstream 支持的负载均衡算法
  nginx 的负载均衡模块目前支持 4 种调度算法,下面进行分别介绍,其中后两项属于第三方调度算法。
    (1)轮询(默认),每个请求按时间顺序逐一分配到不同的后端服务器,如果后端某台服务器宕机,故障系统被自动剔除,使用户访问不受影响。Weight 指定轮询权值,Weight 值越大,分配到的访问机率越高,主要用于后端每个服务器性能不均的情况下。

upstream test.net {
......;
server 192.168.129.129: weight=; //该server有1/3的访问概率
server 192.168.129.130: weight=; //该server有2/3的访问概率
}

    (2)ip_hash,每个请求按访问 IP 的 hash 结果分配,这样来自同一个 IP 的访客固定访问一个后端服务器,有效解决了动态网页存在的 session 共享问题。
    (3)fair,这是比上面两个更加智能的负载均衡算法。此种算法可以依据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间来分配请求,响应时间短的优先分配。Nginx 本身是不支持 fair 的,如果需要使用这种调度算法,必须下载 Nginx 的upstream_fair 模块。
    (4)url_hash,此方法按访问 url 的 hash 结果来分配请求,使每个 url 定向到同一个后端服务器,可以进一步提高后端缓存服务器的效率。Nginx 本身是不支持 url_hash 的,如果需要使用这种调度算法,必须安装 Nginx 的 hash 软件包。

  7>upstream 支持的状态参数
  在 HTTP Upstream 模块中,可以通过 server 指令指定后端服务器的 IP 地址和端口,同时还可以设定每个后端服务器在负载均衡调度中的状态。
  常用的状态有:
    down,表示当前的 server 暂时不参与负载均衡。
    backup,预留的备份机器。当其他所有的非 backup 机器出现故障或者忙的时候,才会请求backup 机器,因此这台机器的压力最轻。
    max_fails,允许请求失败的次数,默认为 1。当超过最大次数时,返回 proxy_next_upstream模块定义的错误。
    fail_timeout,在经历了 max_fails 次失败后,暂停服务的时间。max_fails 可以和 fail_timeout一起使用。

    max_fails,允许请求失败的次数,默认为 1。当超过最大次数时,返回 proxy_next_upstream模块定义的错误;fail_timeout,在经历了 max_fails 次失败后,暂停服务的时间。max_fails 可以和 fail_timeout一起使用,进行健康状态检查。再配置一个backup,防止所有的服务器都不能提供服务。

  注意:当负载调度算法为 ip_hash 时,后端服务器在负载均衡调度中的状态不能是 weight和backup。

nginx常见应用实例的更多相关文章

  1. php中的curl使用入门教程和常见用法实例

    摘要: [目录] php中的curl使用入门教程和常见用法实例 一.curl的优势 二.curl的简单使用步骤 三.错误处理 四.获取curl请求的具体信息 五.使用curl发送post请求 六.文件 ...

  2. Nginx详解二十五:Nginx架构篇之Nginx常见的问题

    Nginx常见的问题 1.相同server_name多个虚拟主机优先级访问,是按读取文件的优先级来排序 在/opt/app/下准备3个code文件夹,下面放入3个html文件,里面的内容分别是code ...

  3. Nginx常见错误与问题之解决方法技术指南

      Nginx常见错误与问题之解决方法技术指南. 安装环境: 系统环境:redhat enterprise 6.5 64bit 1.Nginx 常见启动错误 有的时候初次安装nginx的时候会报这样的 ...

  4. 轻量级HTTP服务器Nginx(常用配置实例)

    轻量级HTTP服务器Nginx(常用配置实例)   文章来源于南非蚂蚁   Nginx作为一个HTTP服务器,在功能实现方面和性能方面都表现得非常卓越,完全可以与Apache相媲美,几乎可以实现Apa ...

  5. Nginx 负载均衡实例redis

    Nginx 负载均衡实例redis 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  6. Nginx常见的安装方式

    Nginx常见的安装方式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx的安装版本分为开发版.稳定版和过期版, Nginx安装可以使用yum或源码安装 ...

  7. 【python库模块】Python subprocess模块功能与常见用法实例详解

    前言 这篇文章主要介绍了Python subprocess模块功能与常见用法,结合实例形式详细分析了subprocess模块功能.常用函数相关使用技巧. 参考 1. Python subprocess ...

  8. Nginx+Tomcat多实例及负载均衡配置

    Nginx+Tomcat多实例及负载均衡配置 采用nginx的反向代理负载均衡功能,配合后端的tomcat多实例来实现tomcat WEB服务的负载均衡 01 安装nginx服务 安装所需的pcre库 ...

  9. Keepalived+Nginx高可用实例

    Keepalived+Nginx高可用实例 注意事项: 1.VIP不需要在服务器网络配置文件中配置. 2.nginx主不可用时,需要kill掉nginx主的keepalived服务,这样才可以实现VI ...

随机推荐

  1. 浏览器判断兼容IE

    很多时候IE浏览器的兼容性问题总是让人很头疼,或许是样式的或许是脚本的.总之因为IE的低版本问题会引发各种各样的问题出来. function isUnderIE10() {//IE 6,7,8,9 i ...

  2. Alibaba Cloud Linux 2 LTS 正式发布,提供更高性能和更多保障!

    在Alibaba Cloud Linux 2(原Aliyun Linux 2)上线一年之际阿里云对外正式发布Alibaba Cloud Linux 2 LTS版本.LTS版本的发布对于Alibaba ...

  3. jvm入门及理解(二)——类加载器子系统

    一.类加载子系统的作用 类加载子系统负责从文件系统或者网络中加载Class文件,class文件在文件开头有特定的文件标识: ClassLoader只负责class文件的加载,至于它是否可以运行,则由E ...

  4. Java成长记录第二集--基础重点

    第一篇写的博客给自己的学习路线立了个flag后,感觉现在学习的积极性大增,这也离不开那几位老铁们的互相鼓励.废话不多说,现在给出自己总结的Java基础部分所要重点注意的内容,对以后的开发工作也是很常用 ...

  5. AJ学IOS 之微博项目实战(13)发送微博调用相机里面的图片以及调用相机

    AJ分享,必须精品 一:效果 二:代码 相机部分就简单多了,几行代码调用而已,但是如果你要是想实现更多丰富的功能,需要自己写.利用AssetsLibrary.framework,利用这个框架可以获得手 ...

  6. AJ学IOS 之微博项目实战(7)程序启动新特性用UICollectionViewController实现

    AJ分享,必须精品 一:效果 这里实现了大多数app都会有的软件新特性的功能,用的是UICollectionViewController实现的 二:思路 这里用了UICollectionViewCon ...

  7. 【Java】标识符 & 命名规则

    Java的标识符和命名规则 什么是标识符[Identifier]? 指用来标识某个实体的一个符号.在不同的应用环境下有不同的含义. 在编程语言中,标识符是开发者编程时使用的名字,对于变量.常量.函数. ...

  8. Epicor RoHS Overview

    Epicor ERP具有一个旨在帮助符合指令2002/95/EC (RoHS1) and 2011/65/EU (RoHS2)的模块,特别适用于医疗设备公司. 不合格的依据是–最大浓度值和合格声明/ ...

  9. CVE-2019-0193 Apache solr velocity模块漏洞

    Solr简单介绍 Solr是建立在Apache Lucene ™之上的一个流行.快速.开放源代码的企业搜索平台. Solr具有高度的可靠性,可伸缩性和容错能力,可提供分布式索引,复制和负载平衡查询,自 ...

  10. Git 创建远程仓库并克隆到本地,创建本地仓库并推送到远程仓库

    配置用户信息 配置的是你个人的用户名称和电子邮件地址.这两条配置很重要,每次 Git 提交时都会引用这两条信息,说明是谁提交了更新,会随更新内容一起被永久纳入历史记录 git config --glo ...