文档章节

nginx同时支持反向代理和鉴权配置一例

blanch-kyle
 blanch-kyle
发布于 2015/11/26 16:28
字数 660
阅读 157
收藏 0
配置要求:
1.支持反向代理,由nginx处理静态资源,后端的tomcat处理动态页面。
2.所有的请求必须先经过鉴权(包括静态资源)。
3.如果鉴权不通过则需要跳转到指定页面。


处理过程:
反向代理nginx自带可以实现,鉴权操作使用插件ngx_http_auth_request_module实现。


配置内容及说明如下(大体流程没问题,部分配置后期可能需要处理):

#工作进程,根据硬件调整,大于等于cpu核数

worker_processes  1;

 

events {

         #使用epollI/O 模型

    use epoll;

 

#工作进程的最大连接数量,根据硬件调整,和前面工作进程配合起来用,尽量大,但是别把cpu跑到100%就行,每个进程允许的最多连接数, 理论上每台nginx服务器的最大连接数为worker_processes*worker_connections

worker_connections  1024;

 

}

 

#设定http服务器,利用它的反向代理功能提供负载均衡支持

http {

         #设定mime类型,类型由mime.type文件定义

include       mime.types;

#设置文件使用的默认的MIME-type

default_type  application/octet-stream;

 

#sendfile指令指定 nginx 是否调用sendfile 函数(zero copy 方式)来输出文件,
对于普通应用,必须设为on。如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络IO处理速度,降低系统uptime

sendfile        on;

#keepalive超时时间。

keepalive_timeout  65;

 

#负载均衡, weight(权重)

    upstream authserver {

             server 192.168.30.33:11238 weight=10;

             server 192.168.30.34:11238 weight=5;

    }

        

     upstream jspserver {

               server 192.168.30.33:11238 weight=10;

             server 192.168.30.34:11238 weight=5;

    }

 

         #配置虚拟机

server {

         #配置监听端口

listen       3333;

                  

                   #当出现指定的错误时,指定需要跳转的页面。

error_page  403         =       /403.html;

 

 

#配置访问域名:登录页面都有访问权限

                  location = /login.html {

                            #根目录

                 root /wwwroot/;

                            #允许所有人访问

                 allow all;

                            break;

        }

#配置访问域名:没有权限的人要重定向到登录页面

                  location = /403.html {

             root /wwwroot/;

                            #域名重定向到登录页面

            rewrite ^/(.*)$ http://$host:3333/login.html permanent;

            allow all;

             }

                   #配置访问域名:访问静态资源

                  location /static {

                            #需要到auth去认证

                       auth_request /auth;

                       root /wwwroot/;

                  }

                   #配置访问域名:访问动态页面

                  location / {

                            #需要到auth去认证

            auth_request /auth;

                            #设置头部的一些信息

                 proxy_set_header Host $http_host;

                 proxy_set_header X-Real-IP $remote_addr;

                 proxy_set_header X-Scheme $scheme;

                            #请求负载均衡

                 proxy_pass http://jspserver;

        }

                   #配置访问域名:认证处理

                  location = /auth {

                       proxy_pass http://authserver;

                       proxy_pass_request_body off;

                       proxy_set_header Content-Length "";

                       proxy_set_header X-Original-URI $request_uri;

                  }


    }
}


附:

nginx安装:
./configure --prefix=/usr/local/nginx  --add-module=/root/ngx_http_auth_request_module-662785733552/
make
make install

© 著作权归作者所有

共有 人打赏支持
blanch-kyle
粉丝 0
博文 2
码字总数 865
作品 0
杭州
深入玩转K8S之如何访问业务应用(Traefik-ingress篇)

上篇懒得写了索性转载了一篇nginx-ingress的,本篇我们来看神器Traefik,我个人是比较看好和偏向与Traefik的,它轻便易用而且还有节目。 先介绍下什么是Traefik,Traefik是一个为了让部署微服...

Devin
08/02
0
0
java 服务器获取请求的IP方法之总结

项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没有问题,但是部署以后发现存在问题,一直鉴权不通过,一群人抓瞎。 我找到那块的代码,跟了一遍流程发现逻辑没有啥问题,但是...

IT_小翼
2015/03/13
0
0
GitLab的安装及使用(CentOS 7)

一、前言 GitLab是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 它拥有与Github类似的功能,能够浏览源代码,管理...

wzlinux
2017/10/22
0
0
nginx本地缓存模块ngx_slowfs_cache

nginx proxy反向代理本身就支持缓存的,但是如果没有使用到nginx反向代理的话,就需要使用ngxslowfscache模块来实现本地站点静态文件缓存,同时还为低速的存储设备创建快速缓存。 1. 安装ngx...

小运
2013/08/23
739
0
获取代理 原客户端ip

Java获取IP地址:request.getRemoteAddr()警惕 项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没有问题,但是部署以后发现存在问题,一直鉴权不通过,一群人抓瞎。 我找到那块的...

李永china
2016/05/04
44
2

没有更多内容

加载失败,请刷新页面

加载更多

下一页

002,zabbix-agent的安装 监控Linux主机

2.1.安装zabbix-agent $ rpm -i http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm$ yum install -y zabbix-agent zabbix-get 2.2.配置zabbix-agent ......

happyeveryday32
37分钟前
2
0
docker learn :swarm

swarm是什么 swarm是一组运行docker服务的集群,之后,还是使用那些命令去操作docker,但是是通过swarm manager来执行的。 swarm中的机器可以是实体的也可以是虚拟的,加入swarm后,他们被当作...

writeademo
37分钟前
1
0
Golang + vscode 开发环境配置

GOPATH 环境变量的配置 https://my.oschina.net/xinxingegeya/blog/718305 安装vscode go 扩展 下载vscode ,安装go的扩展https://github.com/Microsoft/vscode-go 该扩展对 Golang 支持非常......

秋风醉了
40分钟前
0
0
idea jar包

我自己用idea新建一个springboot项目,打包一直有问题,百度了下,又总结了下。 方式一: 找到Project Structure菜单,然后点开,照下图点击 然后出现下图所示 红框1:为你项目的main函数所在...

朝如青丝暮成雪
41分钟前
0
0
Vue scoped CSS 与深度作用选择器 /deep/

使用 scoped 后,父组件的样式将不会渗透到子组件中。 例如(无效): <template> <div id="app"> <el-input class="text-box" v-model="text"></el-input> </div></template><......

不负好时光
41分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部