天天看点

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

02_Nginx配置实例

  • 一、Nginx的应用:反向代理实现一:
    • 1.1.通过windows的hosts文件来进行ip映射
    • 1.2.通过nginx实现上述效果
  • 二、反向代理实例二:
    • 重新模拟真实生产环境
  • 三、Nginx的配置实例三--负载均衡:
    • 负载均衡的配置策略:
      • 1.轮询(默认方式):
      • 2.ip_hash(IP绑定)【不建议】
      • 3.fair(第三方)(了解)
      • 4.url_hash(第三方)(了解)
  • 四、Nginx的配置实例四--动静分离:
    • 4.1.动态页面和静态页面的区别
    • 4.2. 动静分离
    • 4.3.如何实现动静分离
    • 4.4. 动静分离的配置
  • Nginx在实际开发中的应用:

一、Nginx的应用:反向代理实现一:

1.1.通过windows的hosts文件来进行ip映射

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

配置完成之后 可以通过 www.123.com:8080 可以达到我们访问tomcat的欢迎页的效果

www.123.com == 127.0.0.1

1.2.通过nginx实现上述效果

修改nginx的配置

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

配置域名解析 在hosts

①在windows中如果现在要访问我们tomcat 则需要在windowns的hosts文件中来配置

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

②如果在linux系统中要通过访问——配置linxu的hosts文件

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

二、反向代理实例二:

在一个nginx中 相同的地址和端口部署两个应用

首先创建两个tomcat 分别的启动端口为9001 9002

分别部署不同的两个项目

edu vod

在webapps下新建两个文件夹 :分别为edu vod

在目录下创建index.html

<!Doctype html>
<html>
        <head>
                <title>EDU</title>
        </head>
        <body>
                <h1>EDU Test page!!!</h1>
        <body>

</html>
           
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

(都可以单独连接)

nginx的配置

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

如果在同一台机器上 需要同时启动两个tomcat 需要修改两个端口

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

location 指令说明

该指令用于匹配 URL。

语法如下:

1、 = :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。
2、 ~:用于表示 uri 包含正则表达式,并且区分大小写。
3、 ~*:用于表示 uri 包含正则表达式,并且不区分大小写。
4、 ^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字
符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location块中的正则 uri 和请求字符串做匹配。
           

注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

重新模拟真实生产环境

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
在133的tomcat的webapps下部署edu  新建一个index.html
在132的tomcat的webapps下部署vod 新建一个index.html
           

反向代理 Nginx的配置

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

成功访问!

三、Nginx的配置实例三–负载均衡:

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

将132下的vod更改:

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

配置要求 :

当我们访问Nginx的时候 此时 两台应用服务器 轮流按照规则对客户端提供服务

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

进行访问发现两台服务器轮流提供服务

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
  1. 负载均衡策略:

    负载均衡及将负载分摊到不同的服务单元,保证服务的可用性,还保证响应的速度 给用户一个很好的体验。

  2. 反向代理的作用:

    对客户端隐藏服务提供者的信息。

负载均衡的配置策略:

1.轮询(默认方式):

每台服务器的硬件配置都基本相同 因此对处理请求的能力也大致相同。将请求按顺序逐一分配到每台服务器上 并实现一个循环。

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

在轮询方式中 如果有服务器宕机 则会自动被剔除

权重方式:

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
在轮询的基础之上 指定分配的概率
权重值越大  分配到的概率也越大
权重策略  主要应用在服务器硬件差异比较大的场景
           

2.ip_hash(IP绑定)【不建议】

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

注意:

在nginx版本1.3.1之前,不能在ip_hash中使用权重(weight)。
ip_hash不能与backup同时使用。
此策略适合有状态服务,比如session。
当有服务器需要剔除,必须手动down掉。
           
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

进行访问发现同一个ip地址只能访问对应服务器

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

3.fair(第三方)(了解)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

4.url_hash(第三方)(了解)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

四、Nginx的配置实例四–动静分离:

4.1.动态页面和静态页面的区别

静态资源:在用户访问的时候  ,不因为用户的操作而使得资源的源代码产生变化的资源:
 图片  js  css  
动态资源: 在用户访问的时候  ,  随着用户的操作而使得资源的源代码产生变化的资源
jsp  
           

4.2. 动静分离

在一个应用中,将变的资源和不变的资源按照一定的规则区分开来。

网站的 优化:将动态资源静态化。 对动态资源缓存处理

4.3.如何实现动静分离

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

4.4. 动静分离的配置

在/usr/local下新建目录static/imgs 给其中存储一些静态的图片

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

在windowns下的hosts文件中做域名解析

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

如果要访问静态资源的目录 则需要添加一个配置

(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:
(Nginx)02_Nginx配置实例一、Nginx的应用:反向代理实现一:二、反向代理实例二:三、Nginx的配置实例三–负载均衡:四、Nginx的配置实例四–动静分离:Nginx在实际开发中的应用:

Nginx在实际开发中的应用:

1 作为静态资源的服务器 
2 反向代理
3 负载均衡
4 动静分离
           

继续阅读