猫窝私语 — Makumo's Blog

玛酷猫的温馨小窝,记录生活点点滴滴。

@玛酷猫4 年前

06/10
11:46
其他

阿里云设置泛域名SSL证书

泛域名SSL证书首选还是Let’s Encrypt,之前小窝加装泛域名证书用的也是它,具体可以查看之前的文章小窝加装泛域名SSL证书,今天帮朋友的站点设置SSL证书,步骤不太一样,顺便记录一下。

首先还是要下载acme.sh,安装成功后断开重新连接下终端,要不会后续的命令提示找不到

curl https://get.acme.sh | sh

由于朋友的域名是在阿里云上面,操作和DNSPOD上有些区别,先登录阿里云,在产品与服务里面,找到监控与管理分类,再在里面点选访问控制,或者在产品与服务下面直接搜索RAM访问控制,进入后先在左边菜单人员管理——用户里面新建一个用户,新建用户成功后会显示该用户的AccessKey ID和AccessKey Secret,这时候一定要记录下这两个值,因为这个只显示一次,如果丢失的话只能重新新建用户。随后在用户列表新建的用户后面操作里面点选添加权限,在弹出的权限列表里面搜索解析
,然后选择AliyunDNSFullAccess,后面备注是管理云解析(DNS)的权限。添加后点最下面的确定就好。

随后回到服务器命令行,依次键入下面命令(修改成对应的参数)

export Ali_Key='之前记录下的AccessKey ID'
export Ali_Secret='之前记录下的AccessKey Secret'
acme.sh --issue -d xxxx.com -d *.xxxxx.com --dns dns_ali

等待执行完毕就好。后续的服务器端的配置就和之前文章所写类似。

顺便一提的是Let’s Encrypt有申请错误的限制,同一域名同一账号连续失败5次后会被暂停申请1个小时,之前忘了给RAM用户附加权限,提示添加txt校验域名失败,添加权限后,然后就出现如下提示

 Create new order error. Le_OrderFinalize not found. {
  "type": "urn:ietf:params:acme:error:rateLimited",
  "detail": "Error creating new order :: too many failed authorizations recently: see https://letsencrypt.org/docs/rate-limits/",
  "status": 429
}

这个就是频繁提交失败后被服务器暂停申请了,等1个小时再试就好了。

阿里云设置泛域名SSL证书

@玛酷猫5 年前

01/3
22:08
建站日志

小窝迁移升级

今天忽然收到阿里云的提示,个人的云服务器要到期了,连忙登录上去准备续费,一看价格,我勒个擦,8XX,当初买的时候才3XX,去年续费的时候5XX,这涨的也太快了,看了下新购,同样配置同一地区也才5XX,算了算了,还是重新购买台好了,虽然要重新配环境迁移网站麻烦点,谁让咱穷呢。

下单付款,等会就开通,ssh连上去,先配置下环境,之前那台服务器用的lnmp一键包,当初菜鸟一只啥都不会。现在基本了解了后,一键包方便是方便,但是问题也不少,首先就是文件的安装位置都变了,配置文件也和默认的不太一样,详细配置的时候各种别扭,其次就是带着一些不用的软件,还有就是版本升级的问题。所以还是自己配好了,好在CentOS配置起来比较简单,几行命令就好了。服务结构还是像往常那样,Nginx跑静态文件和代理,Apache跑PHP7,预配NodeJS和Ruby,平时做简单的调试用,通过Nginx转发访问

# 安装nginx
yum install nginx
# 由于yum源没有php7,所以要更换
yum install epel-release
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# 安装php7.2以及相关扩展
yum install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml
# 安装mariadb
yum install mariadb mariadb-server
# 设置mariadb密码,需要先运行mariadb服务
mysql_secure_installation

新建站点和相关配置就不多说了,有几点要注意下,
1、httpd的默认配置文件里面,所有请求会全部拒绝,要删掉或者注释掉

<Directory />
    Options FollowSymLinks
    AllowOverride none
    Require all denied
</Directory>

2、站点的目录用户组要调整成为apache:apache

httpd服务的端口调整为88,在Nginx站点配置的时候,添加相关的配置说明,如下例子

location /
{
    try_files $uri @apache;
}
location @apache
{
    internal;
    proxy_pass http://127.0.0.1:88;
    include proxy.conf;
}

location ~ [^/]\.php(/|$)
{
    proxy_pass http://127.0.0.1:88;
    include proxy.conf;
}

proxy.conf里面存放一些代理设置

proxy_connect_timeout 300s;
proxy_send_timeout   900;
proxy_read_timeout   900;
proxy_buffer_size    32k;
proxy_buffers     4 32k;
proxy_busy_buffers_size 64k;
proxy_redirect     off;
proxy_hide_header  Vary;
proxy_set_header   Accept-Encoding '';
proxy_set_header   Host   $http_host;
proxy_set_header   Referer $http_referer;
proxy_set_header   Cookie $http_cookie;
proxy_set_header   X-Real-IP  $remote_addr;
proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header   X-Forwarded-Proto $scheme;

最后迁移站点文件、还原数据库,启动各服务并设置随系统启动,测试没问题后将域名切换过来就ok了。

systemctl enable nginx.service
systemctl enable httpd.service
systemctl enable maridb.service
systemctl start nginx.service
systemctl start httpd.service
systemctl start maridb.service

顺便一提的是本次迁移也干掉的www,www是个很奇怪的历史遗留的问题,这是个二级域名,可能很多人认为方便呀,直接ctrl+enter就自动补全了,可是最早的IE浏览器直接ctrl+enter的话补全的是www.xxx.cn.co而并不是www.xxx.com,方便无从谈起,直到后续大量的国产带壳浏览器的出现才修正过来,况且那时候.net域名还是很流行的,还有不少.cn的域名,而且大部分人都不会直接打域名来访问网站,基本上都是打开百度搜索网站,要不就是收藏夹或者聚合网址来上网。所以www就是多余的,去掉后网址还精简一些。虽然去掉www会影响搜索引擎的搜录,好在小窝文章本来就不多,写的也是断断续续的,大部分都是方便自己以后查找用的,也不在乎那点收录了。

小窝迁移升级

@玛酷猫7 年前

12/22
00:42
计算机

猫窝搬迁至“小公寓”

阿里云买的弹性web托管要到期了,当初买的时候是蛮便宜的,买完了各种后悔呀,就是个虚拟空间么,还叫的这么高大上的名字,毫无自由度可言,充其量也就一个合租房。幸好也就放个博客,凑合着先用着了,之前海外的虚拟空间也就没退,继续续费着,放放测试站,还是可以的。

上个月双11的时候趁着做活动,买了个最低档的云空间,想着有时间就把网站转过来。谁想到懒癌晚期,一直拖到现在,眼看快24号到期,趁着没几天,赶紧弄过来。相对于坑爹的弹性web托管,云空间自由度高多了,就相当一台低配服务器,除了系统啥都没,就像小公寓,可以随便折腾了。不过各种环境包很多,坏境配置起来还是很快的。本着折腾的原则,php直接上的7.0.7,mysql由于内存太小,只能用5.5,Opcache和memcached也都加持上,web服务器用的nginx+apache模式,一方面是想尝试下这种模式的具体配置,充分发挥两者的长处,另外还想着以后在搭个node环境,用nginx做转发,这项也不会相互干扰,不过到那时候内存就要捉襟见肘了。

环境搭好,站点数据库建好,数据备份还原,站点程序上传,解析域名生效各种慢,等不及先改host调试了。都准备好后,打开网站的时候出现和上次博客迁入国内一样的问题,直接显示500服务器错误。估计还是插件的问题,在数据库中禁用所有的插件,页面顺利打开,然后进后台一个一个启用,除了2个插件报错外,一切正常,看报错信息貌似是php7的原因,正巧这两个插件也属于可有可无型,作者也是N年没更新过了,先这样吧,有时间在研究下怎么对应修改下。既然启用的Opcache,当然也要用上了,插件搜了下,选了个叫Opcache dashboard的插件,最后设置了下固定链接,大概试了下没啥大问题,搬迁过程还是蛮顺利的。

这几天测试下,一方面看看传说中的php7的性能,另一方面看看nginx+apache的组合是不是那么高效,还有就是Opcache和memcached的性能影响。有的折腾了,哈哈。

猫窝搬迁至“小公寓”