saber酱的抱枕

努力变强

01/11
02:42
软件

备份和恢复IIS的配置

一个网站服务器上可能有许多站点,有的站点还绑定了多个域名。迁移服务器的时候,我想没人愿意手动再把这些网站重新添加一遍。不过,这方面微软早就考虑到了,我们只需要拷贝IIS的配置文件就可以轻松地备份网站列表和IIS设置。

配置文件路径:

C:\Windows\System32\inetsrv\config\applicationHost.config

可以看到里面包含有每个站点的信息:
Read More →

备份和恢复IIS的配置

01/10
11:03
软件

Zend OPcache异常导致的FastCGI 进程意外退出

今天把一些网站迁移到了一个新服务器上,后台是php的,打开报错:

php-cgi.exe - FastCGI 进程意外退出

FastCGI iis OPcache php Windows Server 2012

多方搜索后,看到有说法是Zend OPcache的问题。Zend OPcache我只知道是加速PHP的,了解不多。之后去事件管理器里确实看到了是Zend OPcache的错误:
Read More →

Zend OPcache异常导致的FastCGI 进程意外退出

10/24
10:17
学习

解决WordPress中文tag分页时的乱码问题

其实,本站自从六月份换到了windows 服务器上,中文tag的分页就一直是乱码。

比如点击底部的“福利”tag,打开第一页是正常的,但是底下的页码已经是乱码了,导致点击页码的时候都是404页面。

404 iis IIS Chinese Tag Permalink windows wordpress 中文tag 乱码 插件

页码里的“福利”已经变成了乱码。(但是在搜索框搜索中文tag可以正常出结果,奇怪。只有页码里的中文乱码了)

这个问题百度一下有一堆结果,无非是说WordPress是utf-8编码,iis是gbk编码,所以要转码。

道理我都懂,但是我照着网上的教程尝试了各种办法,改web.config,改php.ini,改class-wp.php,改rewrite.php,折腾的欲仙欲死。教程上说这么这么改就可以了,但我这里始终就是没变化,我也很无奈。

最后我用了权宜之计,使用JavaScript在前端解决了,办法是把乱码的地方再替换成正确的中文。但是这样有弊端,虽然访客感觉不到异常,但是对于搜索引擎爬虫来说是无效的,它们抓取到的链接仍然是后台输出的错误链接。

就这样过了几个月,今天我又从function.php开始折腾,最后又失败了。不甘心的我又去网上搜索,找到了一个以前没见到过的办法:

安装IIS Chinese Tag Permalink 插件,这是一个神奇的插件,五年没有更新,但是仍然可以正常工作,并且解决了这个困扰我很久的问题。感谢作者~

ps:我发现这个插件有时候会导致tag后面多出一个斜杠"/",这样tag后面是双斜杠。不知道这是副作用还是功能设计。还好这个多出的斜杠不会影响页面的打开,可以无视。

解决WordPress中文tag分页时的乱码问题

08/19
07:59
软件

修改IIS的应用程序池回收策略

默认情况下,IIS会为每个网站分配一个应用程序池,也有默认的回收策略。为什么我们要去修改IIS的应用程序池回收策略呢?因为如果某网站的应用程序池被回收后,下次有人要访问这个网站,IIS要新开一个进程来为该网站建立应用程序池,那么很不幸的,这个人需要等待较长的时间才能打开网站(只有第一个人会被影响)。这对访客来说自然是不友好的,所以必要时我们可以修改IIS的回收策略。


IIS的默认设置是根据时间来进行回收。此外我们也可以通过限制内存使用量来回收,不过不常用。本文要修改的也是时间策略。

打开IIS的应用程序池的默认设置:

iis windows server 应用程序池回收

修改默认设置可以将更改批量应用到所有站点中,这样比较方便。
Read More →

修改IIS的应用程序池回收策略

07/22
13:49
软件

解决了使用https加www访问本站的错误

https://www.saber.love/ (原始输入)
https:/ (期望的最终结果)

最近不止一个人跟我说访问本站页面出现了404,后来我深♂入了一下,发现出现这些404的情况是上面原始输入里面的情况,url是https协议带www的。

但本站以前设置过把www的转换成不带www的规则,我以为这样的输入应该会被转换为下面的正确形式,但是试了一下果然不行。我一开始以为是重定向规则或者url重写规则出了问题,最后才想起来域名解析这一块。我去IIS里看了看,之前没绑定https协议下的www.saber.love,绑定上就好了。

话说访问本站没必要加www,少敲点字符可以节约生命(+1s)。

解决了使用https加www访问本站的错误

07/9
16:06
软件

IIS的文件防盗链处理

首先安装官方的URL Rewrite Module(URL 重写模块),之后配置检测referer 的规则即可。

配置有两种办法,一个是在IIS 里找到这个URL 重写模块,通过可视化操作设置规则。

另一个办法是直接在网站根目录的web.config 里添加规则。我用的是后一种办法。

在web.config 里添加一条规则:

<rule name="Prevent hotlinking">
	<match url="^.*\.(jpg|png|gif)$" ignoreCase="true" />
	<conditions>
		<add input="{HTTP_REFERER}" pattern="https://simple.com/.*" negate="true" />
	</conditions>
	<action type="CustomResponse" statusCode="403" />
</rule>

这样就ok了。

iis URL Rewrite Module Windows Server 2012 防盗链 referer

如果最后你不想显示403状态码,而是显示一个自定义图片的话,可以把action 改成这样:

<action type="Rewrite" url="/img/bitch.png" />  

如果想要允许复数的referer ,可以把add 规则复制,按自己的需要修改pattern 参数。

Read More →

IIS的文件防盗链处理

07/2
02:58
软件

windows+IIS 申请 Let's Encrypt 证书相关记录

https iis Let's Encrypt ssl windows server 教程 证书

因为最近网站搬到了vps上,我也开始考虑申请ssl证书,把网站升级到https。

但是说到证书这一块,就又触及到我的知识盲区了。后来还是找了教程摸索出来的。

申请Let's Encrypt 证书教程:
《windows申请免费SSL证书-Let's Encrypt》
(申请Let's Encrypt 证书有很多不同的途径,使用的工具和步骤也不尽相同,我这个办法好像比较麻烦,不过能对流程有个大致的了解。另外有一些我踩过的坑,我会在文末附加说明)

证书申请完成之后,如何导入到 IIS 以及在网站里绑定,参考下面文章的 IIS 部分:
《IIS部署SSL,.crt .key 的证书》
ps:导入pfx文件的时候密码不用填。

此外还需要将http请求的页面自动跳转到https,参考教程:
《(各种版本) http怎么做自动跳转https?》

我添加了里面的iis的规则,可以正常使用。
Read More →

windows+IIS 申请 Let's Encrypt 证书相关记录

06/29
16:10
软件

网站搬家记录

现在的网站:

 Apache iis web.config wordpress 伪静态 教程 经验 网站搬家

(话说IIS 8.5 比起IIS 6真是方便了太多)

以前我的网站用的是香港的一家虚拟主机,从一开始到现在,三年的时间都是在用那个空间。(主机商是51php,总体上满意,售后服务挺好。以后不用它了,就当做是帮它宣传一下吧)

其实我的网站只占用极少的磁盘空间和数据库空间,只有流量用的多。随着流量逐渐增长,我也不断升级主机套餐,最近又面临不得不升级的情况,我觉得不能再这样继续下去了,正好最近尝试了vultr的vps,所以打算把网站搬到vultr上面去。

本月的主机使用情况:

 Apache iis web.config wordpress 伪静态 教程 经验 网站搬家

其实现在套餐的流量是30GB/月,前几天就用完了,现在的45GB是我让客服临时加了点。虽然我最近做了些优化措施,但预计以后每月流量仍会达到20GB以上,现在这个套餐的流量未来也会不够用。

相比现在的虚拟主机,vultr的vps有诸多优势:
1.价格不贵,5美元/月,一年也就400RMB,和我现在这个虚拟主机套餐差不多是相同价位,但流量上限高得多;
2.vps可直接登陆操作系统,管理网站更为便捷,可以摆脱掉ftp了,对网站的控制也更加随心所以了;
3.避免一些奇葩的事情,比如之前我发现我的主机被禁止google抓取了,后来我找客服解除了限制。
3.vps作为一个操作系统,能做的事情比只能放网站的虚拟主机强多了,最简单的应用就是充当vpn上网。其他的比如架ss什么的我还没研究过。

我原来的虚拟主机的环境是Linux + Apache,但因为我不会linux,所以vultr上我安装的是windows + IIS。这个搬家的过程也踩了不少坑,也记录一下吧。
Read More →

网站搬家记录

06/7
12:01
软件

IIS服务器访问mp4等视频文件时发生404错误

最近一个网站上要放mp4视频,我本地测试时用的是WAMP服务器,没有问题,上线到服务器的IIS6里面之后却发生了错误,视频打不开,状态码404。

奇哉怪也,我再三确认路径没有错,后来搜了一下才知道,IIS里对于不支持的文件类型,要手动添加其MIME信息。

在该网站上右键 → 属性 → HTTP头 → MIME类型,添加.mp4文件的MIME类型即可(video/mp4)。

 404 iis MIME mp4 视频

嗯,箭头就是画的这么奔放。

IIS服务器访问mp4等视频文件时发生404错误

05/5
09:31
软件

iis隐藏网址后面的“index.html”

如果iis里的网站是静态页面并且默认首页名字是index.html,那么浏览首页时,浏览器地址栏里有可能会显示这个“index.html”,形如:

http://www.exmp.com/index.html

怎么去掉呢?打开该网站属性的“文档”选项卡,先把默认首页的“index.html”删掉,然后点确定保存。(一定要先保存)

保存之后再次打开文档选项卡,再手动添加一个“index.html”并置顶。

iis隐藏网址后面的“index.html iis index.html 隐藏

这样就ok了,浏览器的地址栏里就不会出现“index.html”了。不过如果之前有缓存,可能得清一下缓存。

原理:

iis“文档”选项卡内置/预设的这个“index.html”的类型是“继承”,我们后添加的“index.html”类型是“本地”。差别就在这里。

上面的操作中,如果删除内置的“index.html”后没有点确定保存,而是直接手动添加“index.html”,有可能导致iis认为这个条目没有变化,于是新添加的“index.html”就变得和内置的“index.html”一样了。

iis隐藏网址后面的“index.html”