文档章节

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

blanch-kyle
 blanch-kyle
发布于 2015/11/26 16:28
字数 660
阅读 112
收藏 0
点赞 0
评论 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
杭州
java 服务器获取请求的IP方法之总结

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

IT_小翼 ⋅ 2015/03/13 ⋅ 0

GitLab的安装及使用(CentOS 7)

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

wzlinux ⋅ 2017/10/22 ⋅ 0

nginx本地缓存模块ngx_slowfs_cache

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

小运 ⋅ 2013/08/23 ⋅ 0

request.getHeader("x-forwarded-for")获取不到IP

1、 获取不到IP有可能是客户端不是http请求:建议你public String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.leng......

YaZi-Liu ⋅ 2016/07/15 ⋅ 0

获取代理 原客户端ip

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

李永china ⋅ 2016/05/04 ⋅ 2

Nginx简介及配置文件详解

一 Nginx简介 Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务 1.Nginx工作原理 Nginx由内核和模块组成,完成工作是通过查找配置文件将客户端请求映...

露露露露张 ⋅ 2017/11/03 ⋅ 0

Nginx系列-11.配置Nginx反向代理和负载均衡

Nginx系列-11.配置Nginx反向代理和负载均衡 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系...

ngle ⋅ 06/10 ⋅ 0

HAProxy Nginx LVS Apache总结篇

今天也许是最后一次探讨关于HAProxy Nginx LVS Apache的文章,之后将不再赘述,博主之后将要把重心放在Java和Python上,大家如果有什么疑问可以通过博客首页QQ联系、或者留言。 一、今天花点...

任志远Ray ⋅ 2017/03/01 ⋅ 0

nginx学习之反向代理负载均衡

nginx是一款很强大的http和反向代理服务器。它的功能非常强大。 并不是一开始就需要负载均衡集群,当网络流量不断增长,单个处理单元无法满足负载请求时,网络应用流量将要出现瓶颈时,负载均...

yaoruixue ⋅ 2017/07/14 ⋅ 0

lnmp安装配置

一、总体简介 Lnmp架构(Linux+nginx+mysql+php)是目前网站的主流架构,这个架构包含了一个网站的最基本要求:运行环境+web容器+动态页面处理+存储。当然同样主流的架构还有lamp,但是个人认...

wx584a086dd4e8a ⋅ 2017/06/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

JAVA RMI

什么是JAVA RMI Java RMI (Remote Method Invocation) 远程方法调用,能够让客户端像使用本地调用一样调用服务端 Java 虚拟机中的对象方法。RMI 是面向对象语言领域对 RPC (Remote Proced...

saulc ⋅ 5分钟前 ⋅ 0

Linux系统工程狮养成记

如今的社会,随着时代的发展,出现了很多职业,像电子类,计算机类的专业,出现了各种各样的工程师,有算法工程师,java工程师,前端工程师,后台工程师,Linux工程师,运维工程师等等,不同...

linux-tao ⋅ 15分钟前 ⋅ 0

进入编辑模式 vim命令模式 vim实践

1.

oschina130111 ⋅ 15分钟前 ⋅ 0

mysql用户管理、常用sql语句、mysql数据库备份恢复

1. mysql用户管理 mysql默认有一个root超级管理员账户,实际工作环境中不可能每个人都用此root权限,防止误操作、误删除,可以给单独的用户进行授权。 Mysql创建用户以及授权: grant all on...

laoba ⋅ 16分钟前 ⋅ 0

类型后面三个点(String...)和数组(String[])的区别

类型后面三个点(String…),是从Java 5开始,Java语言对方法参数支持一种新写法,叫可变长度参数列表,其语法就是类型后跟…,表示此处接受的参数为0到多个Object类型的对象,或者是一个Obj...

流氓兔- ⋅ 21分钟前 ⋅ 0

JEPLUS表格组件之表格合并——JEPLUS软件快速开发平台

JEPLUS表格组件之表格合并 我们在列表配置时会遇见这样的一种情况,需要对个人的数据进行统一化,对一些数据进行归类,这样展示出来美观又直观,在这篇笔记中我来给大家介绍下如何配置出来专...

JEPLUS ⋅ 23分钟前 ⋅ 0

golang 并发中全局唯一操作

package main// go 携程共享 数据// 加锁解锁操作// 同步锁import ("sync""fmt")// 创建Once结构var once = sync.Once{}func computed(data *int, lock *sync.Mut...

304158 ⋅ 23分钟前 ⋅ 0

Mobx入门之二:asynchronous actions

这一节主要看mobx怎么实现asynchronous actions 1 要实现的demo功能 输入地名,查询天气,利用openweathermap api 2 思想 observable观察数据:location地点、temperature温度 observer响应式...

pengqinmm ⋅ 26分钟前 ⋅ 0

【2018.0620学习笔记】【linux高级知识 13.4-13.6】

13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢复

lgsxp ⋅ 47分钟前 ⋅ 0

Java强弱引用示例

package jdk;import java.lang.ref.PhantomReference;import java.lang.ref.ReferenceQueue;import java.lang.ref.SoftReference;import java.lang.ref.WeakReference;public ......

月下狼 ⋅ 53分钟前 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部