文档章节

nginx根据域名动态代理

 超级超级管理员
发布于 2015/10/28 15:50
字数 215
阅读 46
收藏 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
博文 174
码字总数 72977
作品 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学习05】nginx 联合tomcat实现动静分离

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011939264/article/details/85567197 前言 Nginx动静分离简单来说就是把动态跟静态请求分开,不能理解成只是...

程小二
01/01
0
0
Nginx如何实现反向代理

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

xxrenzhe11
2014/05/02
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
centos 6.8 安装LNMP环境(linux+nginx+mysql+php)

Nginx 特性 Nginx 性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。 1、相比 Apache,用 Nginx 作为 Web 服务器:使用资源更少,支持更多并发连接,效率更高。 2、作为...

vperson
2017/04/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基于 DataLakeAnalytics 的数据湖实践

随着软硬件各方面条件的成熟,数据湖(Data Lake)已经越来越受到各大企业的青睐, 与传统的数仓实践不一样的是,数据湖不需要专门的“入仓”的过程,数据在哪里,我们就从哪里读取数据进行分析...

迷你芊宝宝
27分钟前
1
0
ubuntu查看防火墙状态

1.查看防火墙当前状态 sudo ufw status 2.开启防火墙 sudo ufw enable 3.关闭防火墙 sudo ufw disable 4.查看防火墙版本 sudo ufw version 5.默认允许外部访问本机 sudo ufw default all...

Frost729
28分钟前
1
0
Gradle插件使用过程记录

Android中基于Gradle进行编译打包的过程,下面记录一下如何进行Gradle插件开发的过程: 首先在项目中新建的一个名为buildSrc的module,为什么叫这个名字请看官方文档。然后将Java文件夹以及r...

JerryLin123
35分钟前
1
0
RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占优势

美国时间3月4-8日,国际知名信息安全峰会RSA Conference在美国旧金山开幕,云安全及云可以为企业提供更可靠的资产管理方式成为大会热点。 此次峰会共吸引全球700多家机构参展,其中近42%为云...

阿里云云栖社区
36分钟前
2
0
重磅推出TabLayout高级窗口组件

TabLayout是在APICloud现有窗口系统基础上升级而来的高级窗口组件,符合Material Design规范,可通过简单的配置为窗口实现原生的导航栏和TabBar,它将帮助您节省30%以上的重复编码工作量,同...

API_Cloud
41分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部