IIS7.5转发至Apache, 共用80端口

一些情况下, 我们需要同时使用IIS和Apache, 那么需要满足以下条件

同时启动IIS和Apache 且

(用Apache代理IIS

用IIS代理Apache)

本文介绍用IIS代理Apache的方法

Step1 配置Apache和域名, 且使用非80端口, 使得以如下uri可以访问到你的网站

http://www.domain.com:81

Step2 为IIS正确安装”URL重写”重写模块(已安装则略过)

这个模块某些版本有bug, 在Windows Server 2008 R2+IIS7.5环境下, 可使用这个.

Step3 安装Application Request Routing(已安装则略过)

网址: https://www.iis.net/downloads/microsoft/application-request-routing

Step4 打开IIS管理器

->点击 Application Request Routing Cache

-> 点击 Server Proxy Settings

-> 勾选 Enable Proxy

-> 应用, 如下图

Step5 新建IIS站点, 并为其绑定你要用的域名, 以及80端口, 目录随便指向一个目录即可, 如下图

为什么要新建站点?

在IIS全站设置URL转发, 也可以实现IIS代理Apache;

但是IIS代理Apache是要损耗一定性能的.

在全站设置会影响到服务器上其他IIS网站

Step6 在该”转发站”里点”URL重写”, 并添加空白规则, 如下图

Step7 在”入站规则”里如下图这么写

如此用来实现将 www.domain.com的80端口指向由Apache管理的81端口

以上, 曾实例化于Windows Server 2008 R2 + IIS7.5

IIS7.5中禁止某User Agent

本文以Windows Server 2008 R2为例

Step1 重新安装”URL重写模块”(可正常使用则略过)

微软”URL重写模块”有bug, 若不能正常使用请先重装

在Windows Server 2008 R2+IIS7.5中可以用的好像是这个 https://www.microsoft.com/zh-cn/download/details.aspx?id=7435

Step2 在IIS管理器中打开你的网站->点”URL重写”, 如下图

Step3 在”入站规则”上点右键->点”添加规则”->点”请求阻止”, 如我们要禁止UA中包含”OPPO”的客户端访问网站, 可以像下面这么写

确定后即生效

IIS7+PHP上传图片却无权访问的一个解决方法

PHP上传文件的机制是

先将文件上传到一个临时目录 -> 然后将这个文件从临时目录移动到要求的目录

好比说我要上传一个图片, 需要:

1.我对图片最终保存的文件夹有访问权限

2.我对临时文件夹里的文件有访问权限

在Windows Server2008中, PHP5.4默认使用的临时文件夹是这样的: C:\Windows\Temp

这个文件夹的对IIS的权限不好处理

解决方法是: 更改PHP上传临时文件夹地址

Step1. 新建C:\_temp_php文件夹

Step2 编辑php.ini文件, 搜索 upload_tmp_dir, 然后写成

upload_tmp_dir = C:\_temp_php

注意不要前面的注释分号, 然后保存

Step3 重启IIS

我如此操作就解决了, 就是让IIS对upload_tmp_dir中的文件有访问权限.