nginx基于客户端访问IP重定向

简介: 最近换了一家公司,工作比较忙,因为工作环境的关系导致不能经常写博客了,暂时手里也就写了LDAP+Samba+Vsftp统一集中认证项目文档、weblogic集群部署安装文档,由于各种关系导致不能外发,哈哈!各位博友原谅!现在就写一篇关于nginx的重定向文档吧! 项目需求: 公司现在的网站架构是nginx+apache反向代理,现需要将客户端访问的某两个网段IP地址重定向到应用主页,其余的所有IP地址访问都重定向到维护页面。
最近换了一家公司,工作比较忙,因为工作环境的关系导致不能经常写博客了,暂时手里也就写了LDAP+Samba+Vsftp统一集中认证项目文档、weblogic集群部署安装文档,由于各种关系导致不能外发,哈哈!各位博友原谅!现在就写一篇关于nginx的重定向文档吧!
项目需求:

公司现在的网站架构是nginx+apache反向代理,现需要将客户端访问的某两个网段IP地址重定向到应用主页,其余的所有IP地址访问都重定向到维护页面。

环境介绍:

为了实验方便,这里我nginx+apache就用一台服务器设置,另外三台机器充当测试机角色。

主机名

IP地址

系统版本

用途

myling

72.46.131.205

CentOS6.464位)

Nginx+apache

centos

173.252.246.188

CentOS6.464位)

测试专用

zhunzhun.zeng

59.108.119.51

Windows xp

测试专用

未知

223.202.18.16

Windows server 2003

测试专用

预期达到的效果:

1173.252.246网段、59.108.119网段的IP访问应用的主页。

272.46.131网段、223.202.18网段的IP地址访问维护页面。

实施步骤:

说明:这里我只简单的测试,nginxapache用的rpm包。

1、安装nginxapache

yum install –y nginx httpd

2、在默认的nginx配置目录下新建一个pool.conf文件

vi /etc/nginx/conf.d/pool.conf

内容如下:

upstream vhttpd_server_pool {

  ip_hash;

  server 72.46.131.205:8877;        这里我apache用的是8877端口

}

3、在同样的目录下新建一个test.conf文件。暂时用一个测试域名test.cn

vi /etc/nginx/conf.d/test.conf

内容如下:

server {

listen 80;

    server_name test.cn;

    location / {

    proxy_set_header HOST $host;

    proxy_set_header X-Real-IP $remote_addr;

    proxy_set_header Client-IP $remote_addr;

    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    if ($remote_addr ~* "^(173.252.246)") {

    proxy_pass http://vhttpd_server_pool;

    }

    if ($remote_addr ~* "^(59.108.119)") {

    proxy_pass http://vhttpd_server_pool;

    }

    }

}

4、在apache默认发布的目录下新建一个测试页面index.html

vi /var/www/html/index.html

内容如下:

Hello!zengzhunzhun!

5、在nginx默认的发布目录下新建一个维护页面index.html

vi /usr/share/nginx/html/index.html

内容如下:

网站正在维护中!请稍后访问!

6、启动nginxapache,启动nginx前先检查配置文件语法是否正确

/etc/init.d/nginx configtest

出现如下界面说明配置文件没问题。

/etc/init.d/nginx start

/etc/init.d/httpd start

7、测试工作

首先测试nginx配置文件里面定义的两个IP网段能正常访问后端的apache

173.252.246.18859.108.119.51两台测试机的hosts文件增加IP和域名的映射关系,如下:

72.46.131.205   test.cn

173.252.246.188测试结果:

59.108.119.51测试结果:

现在测试本机和223.202.18.16访问网站是否是到nginx的维护页面呢?当然也需要修改两台机器的hosts文件。增加上面一样的内容。

本机测试结果:

223.202.18.16测试结果:

总结:正常达到预期的效果。

目录
相关文章
|
2天前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
5天前
|
安全 Ubuntu 搜索推荐
如何使用 Nginx 创建临时和永久重定向
如何使用 Nginx 创建临时和永久重定向
21 2
|
13天前
|
应用服务中间件 持续交付 nginx
[nginx]借助nginx实现自动获取本机IP
[nginx]借助nginx实现自动获取本机IP
|
5天前
|
Ubuntu 应用服务中间件 网络安全
如何使用 Apache 和 Nginx 创建临时和永久重定向
如何使用 Apache 和 Nginx 创建临时和永久重定向
13 0
|
13天前
|
应用服务中间件 nginx 数据安全/隐私保护
nginx配置源IP访问控制
nginx配置源IP访问控制
|
1月前
|
JavaScript 应用服务中间件 nginx
【项目部署系列教程】5. nginx配置反向代理,解决跨域接口的访问
【项目部署系列教程】5. nginx配置反向代理,解决跨域接口的访问
73 10
|
22天前
|
负载均衡 应用服务中间件 nginx
nginx配置kibana访问用户名和密码认证、及无认证访问配置
nginx配置kibana访问用户名和密码认证、及无认证访问配置
55 0
|
1月前
|
前端开发 应用服务中间件 nginx
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
网页设计,若依项目修改(It must be done)01----若依打包位置,nginx代理前端静态资源和后端接口,就是怎样设置转载,访问固定端口,让他访问其他资料的配置文件,访问/,给你那些
|
1月前
|
网络协议 应用服务中间件 网络安全
如何排查Nginx配置问题导致的域名访问错误
如何排查Nginx配置问题导致的域名访问错误
109 2
|
2月前
|
安全 应用服务中间件 nginx
Nginx访问403
Nginx访问403
61 3