文档章节

nginx根据域名动态代理

 超级超级管理员
发布于 2015/10/28 15:50
字数 215
阅读 42
收藏 0

多个域名,存在数据库里面,访问到nginx的时候,根据不同域名,反向代理到不同的服务器上 编译nginx的时候要启用 auth_request --with-http_auth_request_module

nginx配置

http {
    resolver 114.114.114.114;  # api返回的地址是域名,提示无法解析时添加该行
    auth_request /api.asp;
    auth_request_set $url $sent_http_url;
    
    server {
        listen       80;
        server_name  localhost;
        
        location / {
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header REMOTE-HOST $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass $url;

        }
        
        location ~ \.asp$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }

}

这里面把asp后缀解析为PHP,会提示Access to the script ‘asp‘ has been denied,把php-fpm 配置文件里面的security.limit_extensions 扩展加上asp 重启服务即可

api.asp 内容

<?php
ob_start();
$domain = substr($_SERVER['HTTP_HOST'],5);
$conn = mysql_connect("127.0.0.1","root","password");
if (!$conn)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("vpopmail", $conn);

$result = mysql_query("select host from tables where domain='".$domain."' limit 1");

while($row=mysql_fetch_array($result))
{
    $url = "http://".$row['host'];
}

mysql_close($conn);

header("url: $url");
exit();
?>

© 著作权归作者所有

共有 人打赏支持
粉丝 2
博文 144
码字总数 50436
作品 0
成都
运维
私信 提问
nginx 反向代理,动静态请求分离,proxy_cache缓存及缓存清除

一,nginx反向代理配置 #tomcat 显然就是用户访问www.wolfdream.com(需要设置本地localhost,将www.wolfdream.com指向nginx所在IP)的时候(或将www.wolfdream.com直接写在nginx所在的IP地址)...

晨曦之光
2012/03/09
992
0
Nginx如何实现反向代理

Nginx的2种用途 静态内容的web服务器; 反向代理服务器; Nginx作为反向代理的特点 接收用户请求是异步的,即先将用户请求全部接收下来,再一次性发送后后端web服务器,极大的减轻后端web服务...

xxrenzhe11
2014/05/02
0
0
nginx的反向代理配置

首先说明一下,nginx的反向代理和nginx的负载均衡很相似,nginx一般被作为反向代理实现负载均衡,有的人也把nginx的反向代理当做负载均衡,把nginx的负载均衡当做反向代理。nginx有很多功能和...

任小为
2014/08/06
0
0
Nginx 学习笔记(三)proxy_cache 缓存配置和ngx_cache_purge模块

反向代理的缓存清理 一、proxy_cache配置 (1)如何配置和安装,都在这里了:https://github.com/Tinywan/Lua-Nginx-Redis/blob/master/Nginx/Nginx-Web/Nginx-8-proxycache.md (2)被代理域...

tinywan1227
2017/11/20
0
0
Nginx快速入门视频课程——笔记

视频课程链接:http://edu.51cto.com/course/14606.html Nginx,主讲:汤小洋 一、Nginx简介 1. Nginx是什么? Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/S...

汤小洋
08/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Flask框架web开发:零基础入门

Flask框架是Python开发的一个基于Werkzeug和Jinja 2的web开发微框架,它的优势就是极其简洁,但又非常灵活,而且容易学习和应用。因此Flask框架是Python新手快速开始web开发最好的选择,此外...

笔阁
4分钟前
0
0
VMware前路难测,多个厂家群雄逐鹿

在人们高谈Salesforce、亚马逊等新兴云计算厂商取得的成就时,以VMware、HPE和Cisco为代表的老牌厂商也在进行着自己的转型和变化,而且还取得一定的进展。以VMware为例,虚拟机巨头公布了第二...

linuxCool
7分钟前
0
0
什么是以太坊DAO?(一)

Decentralized Autonomous Organization,简称DAO,以太坊中重要的概念。一般翻译为去中心化的自治组织。 “在区块链上,没有人知道你是一台冰箱”——理查德布朗 到目前为止,我们列出的所有...

geek12345
8分钟前
0
0
linux防火墙操作

一、.对于centos7自带的防火墙的相关指令 #停止firewall systemctl stop firewalld.service #禁止firewall开机启动 systemctl disable firewalld.service #查看firewall的状态 systemctl st......

张锦飞
11分钟前
0
0
Linux 磁盘与磁盘分区

  Linux 系统中所有的硬件设备都是通过文件的方式来表现和使用的,我们将这些文件称为设备文件,硬盘对应的设备文件一般被称为块设备文件。本文介绍磁盘设备在 Linux 系统中的表示方法以及...

SEOwhywhy
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部