IIS 反代 Cloudreve 踩坑记录

什么是 Cloudreve

是一个网盘程序。具体介绍和帮助,请看 文档
为什么会有这个文章?虽然用户里有用 Windows 服务器的,但好像没看到用 IIS 的,所以我把踩到的坑说一下,也给自己留个档。

前提

你已经按文档说明跑起来了 Cloudreve,即用你的浏览器访问 localhost:设置的端口 可以看到网盘界面。此处提前建议数据库用 MySQL,不要图省事用 SQLite,问题有点多。

你已经安装完了 IIS 并添加了一个网站,且是可以通过外网访问的;同时已经安装了 IIS 的 URL RewriteARR 模块。

启用 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 节点,调整下面的 preserveHostHeaderTrue 后点击右边的 应用 保存更改即可。(微软爬嗷,只把一部分设置放到了 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
请参考:https://forum.cloudreve.org/d/1460
可以使用 PHPMyAdmin 进行操作,导入时可能会报错,请自行根据错误解决。同时还需要注意时区设置。
点赞
  1. 阿瑟东说道:

    辣鸡

    1. 小白-白说道:

      大佬有何高见?

    2. 初雪说道:

      深夜逛狗狗的blog,看到这条评论饿了quq。。。。。

      1. 千山说道:

        看看

  2. 写的真的不错,厉害

  3. 站元素主机说道:

    感谢分享 赞一个

  4. 狗狗加油! OωO

  5. wdxxg说道:

    写的真好,狗狗冲啊!!!

发表评论

电子邮件地址不会被公开。必填项已用 * 标注