Nginx常用的案例配置场景

1.基于不同域名区分不同的项目 --- 配置两个server节点

        背景说明,域名分别为:1) www.nginx.com  对应的端口号为8080 2) bbs.nginx.com 对应的端口号为8081

                          www.nginx.com域名访问的项目所在路径为 nginx安装目录下 data/www目录下的index.html

                          bbs.nginx.com域名访问的项目所在路径为 nginx安装目录下 data/bbs目录下的index.html

       1.1) 配置http节点 --> server节点 下的属性 

                  1.1.1) 属性 listen :配置server监听端口号

                  1.1.2) 属性 server_name:配置域名的

                  1.1.3) 属性 location节点下的 属性 root : 配置域名+监听端口号 访问的目的地

       1.2) 修改windows系统中域名和IP映射文件,

                         windows系统hosts文件所在位置为:C:\Windows\System32\drivers\etc

                         Centos7 系统hosts文件所在位置为:/etc/

              在hosts文件末尾添加:

                127.0.0.1 www.nginx.com

                127.0.0.1 bbs.nginx.com

       1.3在nginx安装目录创建 data/www data/bbs 目录,并把安装nginx目录下html目录下index.html文件在data/www data/bbs

目录下分别拷贝一份,并作一个细小的改动,以区别不同的目录,便于测试

       1.4) 配置案例 --注意 root 配置的目录,不能以 / 开头

   server {
	    ## server 监听的端口号
        listen       8080;
	    ###服务name 配置域名,配置域名
        server_name  www.nginx.com;
        ###location 匹配所有url地址
        location / {
		    ### 表示存放在nginx根目录 默认html文件
            root   data/www;
	        ### 默认首页index.html
            index  index.html index.htm;
        }

    }

      1.5)测试效果

2.基于相同的域名不同的项目名区分项目 --一个server节点不同的location节点

         背景说明,域名分别为:www.nginx.com ,项目名称分别为 1) order  2)member

          在1的基础上修改

          2.1) 删除一个server节点,即bbs.nginx.com所在的server节点

          2.2) 修改www.nginx.com所在的server节点

                  2.2.1) 配置location节点 / --> /order/  

                  2.2.2) 添加一个location节点 / -->/member/

                  2.2.3) 通过反向代理访问到不同的项目 proxy_pass

                  2.2.4)利用springboot启动两个简单的项目

          2.3配置案例

    server {
        ###监听端口号为80
        listen       80;
        ###服务名称,配置域名
        server_name  www.nginx.com;
        ###项目名称
        location /order/ {
            ##这里的地址,最好从浏览器中拷贝过来
            proxy_pass http://127.0.0.1:8080/;
            index  index.html index.htm;
        }

        location /member/ {
            proxy_pass http://127.0.0.1:8081/;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

        2.4)测试效果

3.反向代理

        场景2中已包含反向代理的配置,即proxy_pass配置的

4.负载均衡

      4.1) 负载均衡配置,需要配置上游服务器地址列表 即 upstream 

      4.2) 配置案例

    ###定义上游服务器(需要被nginx真实代理访问的服务器) 默认是轮询机制
    ###tomcatServer是指 location节点中反向代理proxy_pass配置的值
    upstream tomcatServer {
		server 127.0.0.1:8080;
		server 127.0.0.1:8081;
	}

     4.3)nginx自带的负载均衡算法有三种

              4.3.1) 轮询-默认使用的算法

               4.3.2)按权重轮询 ,配置方法 weight

  ###定义上游服务器(需要被nginx真实代理访问的服务器) 默认是轮询机制
    ###tomcatServer是指 location节点中反向代理proxy_pass配置的值
    upstream tomcatServer {
        ###分成3份,访问80801次,访问80812次为一个轮回
	        server 127.0.0.1:8080  weight=1;
		server 127.0.0.1:8081  weight=2;
	}

               4.3.2)ip_hash:只要是同一个ip访问,都会被分配到同样一个上游服务器

    ###定义上游服务器(需要被nginx真实代理访问的服务器) 默认是轮询机制
    ###tomcatServer是指 location节点中反向代理proxy_pass配置的值
    upstream tomcatServer {
		server 127.0.0.1:8080;
		server 127.0.0.1:8081;
                ip_hash;
	}

5.故障转移

     背景说明:负载均衡采用的算法是 轮询算法,上游服务器有三个,分别为8080,8081,8082。

如果三台服务器都是正常的;那么客户端会依次访问,8080,8081,8082;

    但是,某一时刻,8081服务故障停止了,那么当轮询到8081时,如果没有设置故障转移的配置,

那么nginx会一直访问8081,迟迟不能看到返回结果,这样不能保证应用的高可用,所以需要配置

故障转移的措施

server {
        listen       80;
        server_name  www.nginx.com;
        location / {
		    ### 指定上游服务器负载均衡服务器
		    proxy_pass http://tomcatServer;
            index  index.html index.htm;
			###nginx与上游服务器(真实访问的服务器)超时时间 后端服务器连接的超时时间_发起握手等候响应超时时间
			proxy_connect_timeout 2s;
			###nginx发送给上游服务器(真实访问的服务器)超时时间
            proxy_send_timeout 2s;
			### nginx接受上游服务器(真实访问的服务器)超时时间
            proxy_read_timeout 2s;

        }
    }

说明:如果访问8081,在设置的超时时间内没有获取到返回结果, 那么访问8082服务,即就近访问下一个该轮询到的

上游服务器

猜你喜欢

转载自blog.csdn.net/lihongtai/article/details/85771467
今日推荐