自从用了WHMCS搭配Vestacp后,发现Cpanel确实也可以不需要再用了。其实我们建站用的功能并不多,虚拟主机管理面板只需要一个绑定域名、FTP文件管理、MysqL数据库管理等几个基本的功能就行了,Cpanel虽然很强大,但是好多的功能用不着。
比Vestacp这样的免费面板还有好多,但是Vestacp与WHMCS却是整合最好的免费主机面板,官方自己开发了WHMCS接口,有域名DNS解析、邮局、网站管理、文件管理等,当然还有SSL证书安装,支持一键添加Lets Encrypt SSL证书,可以满足大部分建站需求。
今天要说的是在使用Vestacp面板过程中的SSL证书添加与绑定的问题,另外默认的Vestacp面板采用的是HTTP/1.0,如果启用了Https自然开启HTTP/2是最好的了。本文还将分享一个免费开启Vestacp在线文件管理器的办法。
更多的关于VPS主机面板安装与使用方法,你可以试试这些:
- ISPConfig 3.1 优秀的VPS主机控制面板安装与使用-DNS域名解析SSL自动部署
- ISPConfig与WHMCS整合方法-自动激活开通虚拟主机和管理空间用户
- WHMCS添加支付宝微信付款、主题模板修改方法和PDF发票乱码问题解决
一、Vestacp添加SSL证书
自动开启Lets Encrypt SSL证书。首先是进入到Vestacp的WEB服务,添加新的网站域名。
输入新的域名,注意如果你像我这样使用的是二级域名,请删除“别名”中的自动生成的www三级域名。
然后在下方勾选“SSL支持”,如果你有自己的SSL证书直接在下方填入CRT和KEY,没有的话直接勾选“Lets Encrypt SSL”支持(注意:你需要提前将域名解析到服务器IP上,否则无法申请到SSL)。
确定点击保存。注意:从我的体验来看,对于管理员点击保存后稍等五分钟就可以看到已经申请到了SSL证书,但是对于多用户来说,可能需要点击保存两次。大家在使用过程中根据实情来决定。
没有申请到SSL证书,你也可以通过查看网站目录下的WEB配置文件是否自动生成了Snginx.conf还有CRT、Key等文件。没有生成那就表示申请失败。
最后打开网页,你就可以看到SSL证书已经添加成功了。
Vestacp后台开启SSL。默认的Vestacp的SSL是自签名的,虽然不影响不使用,但是有强迫症的朋友可能想改成浏览器信任的SSL。这个其实也简单,进入到Vestacp后台,在服务器设置中添加SSL证书。
二、Vestacp启用HTTP/2
首先,确认一下你绑定的域名开通了SSL服务,然后进入到:/home/(vesta_user)/conf/web/snginx.conf,打开将里面的:
server {
listen xx.xx.xx.xx:443;
…
}
改成以下代码:
server {
listen xx.xx.xx.xx:443 http2 ssl;
...
}
然后,将以下代码:
location / {
proxy_pass https://%ip%:%web_ssl_port%;
location ~* ^.+.(%proxy_extentions%)$ {
root %sdocroot%;
access_log /var/log/%web_system%/domains/%domain%.log combined;
access_log /var/log/%web_system%/domains/%domain%.bytes bytes;
expires max;
try_files $uri @fallback;
}
}
改成这样:
location / {
proxy_pass https://%ip%:%web_ssl_port%;
location ~* ^.+.(%proxy_extentions%)$ {
root %sdocroot%;
access_log /var/log/%web_system%/domains/%domain%.log combined;
access_log /var/log/%web_system%/domains/%domain%.bytes bytes;
expires max;
try_files $uri @fallback;
add_header Access-Control-Allow-Origin *;
}
}
最后保存重启:nginx -s reload。如果你想在创建时就自动开启HTTP/2,你需要修改模板文件:
/usr/local/vesta/data/templates/web/nginx/default.stpl
/usr/local/vesta/data/templates/web/nginx/hosting.stpl
/usr/local/vesta/data/templates/web/nginx/caching.stpl
将以下代码:
server {
listen %ip%:%proxy_ssl_port%;
server_name %domain_idn% %alias_idn%;
ssl on;
改成这样:
server {
listen %ip%:%proxy_ssl_port% http2 ssl;
server_name %domain_idn% %alias_idn%;
ssl on;
最后打开浏览器看看是不是已经成功开启了HTTP/2。
三、Vestacp启用Awstats统计
PS:2018年3月3日更新,更多专业的独立统计系统可以试试免费开源的PHP统计系统Piwik(Matomo):Piwik(Matomo)免费开源的PHP统计系统-安装简单功能强大可媲美谷歌统计。
Vestacp已经自带了Awstats网站统计,很多朋友可能没有在意,其实它就在创建网站时的高级选项中,你可以勾选确认开启Awstats统计。
开启后,再返回到网站列表,你就可以看到网站统计了。
点击它就可以打开Awstats在线统计情况,这里就是网站访问数据统计。(点击放大)
四、免费文件管理器和SFTP Chroot
用WinSCP连接SFTP,进入/usr/local/vesta/conf,编辑vesta.conf,在文件最后加上两行:
FILEMANAGER_KEY='KuwangNetwork'
SFTPJAIL_KEY='KuwangNetwork'
保存后,你就可以在VestaCP看到文件管理器了,上传、复制、删除等都没有问题。(点击放大)
有两个地方需要注意:
1、vesta.conf会被系统自动修改,建议将vesta.conf改成只读(440)。
2、文件管理器使用的是谷歌的JS库,但谷歌的JS库在国内部分地区可能无法使用(虽然搬回了国内),请修改/usr/local/vesta/web/templates/file_manager的main.php文件的第119行,改为“code.jquery.com/jquery-1.11.1.min.js”(不需要输入引号)
五、Vestacp 301重定向方法
HTTP 重定向到 HTTPS。打开:/home/USER/conf/web/nginx.vestacp.com.conf ,然后添加以下代码(注意替换你的USER路径和你的域名):
if ($scheme = http) { return 301 https://vestacp.com$request_uri; }
HTTPS 重定向 HTTP。打开:/home/USER/conf/web/nginx.vestacp.com.conf ,然后添加以下代码(注意替换你的USER路径和你的域名):
if ($scheme = https) { return 301 http://vestacp.com$request_uri; }
WWW 重定向到 非WWW。打开:/home/USER/conf/web/nginx.vestacp.com.conf,然后添加以下代码(注意替换你的USER路径和你的域名):
if ($host = "www.vestacp.com") { return 301 https://vestacp.com$request_uri; }
#未使用Https的,可用以下代码:
if ($host = "www.vestacp.com") { return 301 http://vestacp.com$request_uri; }
非WWW 重定向到 WWW。打开:/home/USER/conf/web/nginx.vestacp.com.conf,然后添加以下代码(注意替换你的USER路径和你的域名):
if ($host = "vestacp.com") { return 301 https://www.vestacp.com$request_uri; } #未使用Https的,可用以下代码: if ($host = "vestacp.com") { return 301 http://www.vestacp.com$request_uri; }
强制域名使用Https。使用以下命令:
cd /usr/local/vesta/data/templates/web wget http://c.vestacp.com/0.9.8/rhel/force-https/nginx.tar.gz tar -xzvf nginx.tar.gz rm -f nginx.tar.gz
下载的文件主要有两个文件:force-https.tpl和force-https.stpl,你也可以将这两个文件放在你原有的套餐配置中。或者你新建一个套餐,模板就用这个Nginx,最在当新用户创建网站时就可以应用上这个新的配置了。
六、总结
Vestacp在创建Lets Encrypt SSL证书时,如果是多用户的话可能出现不同的域名访问到的却是同一个域名的SSL证书的情况,这种情况可以重启一个服务器。另外,多用户在创建SSL证书可能会失败,需要重复保存几次。
Vestacp 301重定向需要有修改nginx.vestacp.com.conf 权利。FTP用户没有这个文件的查看和修改权限,需要管理使用Winscp登录服务器访问不同的用户下的conf进行修改。当然如果你的Vestacp用的是Apache,则可以自己修改.htaccess。