本文及资源最后更新时间 2022-05-04 by sky995
前提
你已经按文档说明跑起来了 Cloudreve,即用你的浏览器访问 localhost:设置的端口 可以看到网盘界面。此处提前建议数据库用 MySQL,不要图省事用 SQLite,问题有点多。
你已经安装完了 IIS 并添加了一个网站,且是可以通过外网访问的;同时已经安装了 IIS 的 URL Rewrite 和 ARR 模块。
启用 ARR
打开 IIS,进入主页的 Application Request Routing Cache,再进入右边的 Server Proxy Settings…,勾选最上面的 Enable proxy,同时取消勾选下面的 Reverse rewrite host in response headers。点击右边的 应用 保存更改。
如果不取消勾选反向重写主机头,会导致 Cloudreve API 无法返回正确的地址,导致无法预览图片视频等。
调整上传大小限制
打开 IIS,进入主页最下面的 配置编辑器 (Configuration Editor),转到 system.webServer/security/requestFiltering
节点,调整下面的 requestLimits -> maxAllowedContentLength 为你希望的理论最大文件值 (单位 byte) 后点击右边的 应用 保存更改即可。
如果需要对网站进行限流,可以通过右击你的站点 -> 管理网站 -> 高级设置 里设置 Limit。
保留主机头
打开 IIS,进入主页最下面的 配置编辑器 (Configuration Editor),转到 system.webServer/proxy
节点,调整下面的 preserveHostHeader 为 True 后点击右边的 应用 保存更改即可。(微软爬嗷,只把一部分设置放到了 ARR 图形化界面里面算是什么操作??)
这个设置似乎对 Cloudreve 没什么影响,但是使用 IIS 反代 RSSHub 的时候是必须开启的。
配置反代规则
这是 web.config 文件的内容,包括了两个规则:强制 HTTPS 和 反代。请根据你的需求使用,同时记得更改反代地址的端口号为你实际设置的。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:0}" redirectType="Permanent" />
</rule>
<rule name="Rerwite" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny" trackAllCaptures="false">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="http://localhost:1300/{R:0}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
其它问题
捐赠版 支付宝初始化实列失败
SQLite 转 MySQL
可以使用 PHPMyAdmin 进行操作,导入时可能会报错,请自行根据错误解决。同时还需要注意时区设置。