终于克服懒癌去申请域名备案了,今天折腾着把hexo和其他两个服务部署了上来,记录下操作
Hexo部署到Ubuntu服务器
假设本地端已有hexo环境,仅对服务器和本地推送设置进行配置
服务器Git安装配置
首先安装:sudo apt-get install git
(安全起见可以开个git账户并禁用ssh登录)。
建立博客文件夹:mkdir /home/你的用户名/hexoBlog
。
建立git文件夹:cd /home
后mkdir git
,进入git目录。
初始化一个空仓库:git init --bare hexoBlog.git
。
进入仓库目录下的hooks
文件夹后sudo vim post-receive
。
键入:
#!/bin/bash
git --work-tree=/home/用户名/hexoBlog --git-dir=/home/git/hexoBlog.git checkout -f
#work-tree的值取决于你最终的博客文件夹的路径,git-dir的值即为刚才建立的仓库路径
保存退出后修改权限:sudo chmod +x /home/git/hexoBlog.git/hooks/post-receive
(之前建立的目录可以都改一遍读写权限,以免出现奇怪的问题)
Nginx安装配置
首先安装:sudo apt-get install nginx
,然后启动:service nginx start
。
打开浏览器访问下你的IP,出现Nginx页面即可。
修改Nginx的配置(此处的配置文件位置和文件名,不同机器上可能有所不同,请多找下)
配置域名和https
先下载你的ssl证书文件,解压后将Nginx文件夹下的,后缀crt和key的两个文件放到nginx目录下的cert
文件夹下。
修改配置文件:sudo vim /etc/nginx/conf.d/default.conf
,键入以下内容(仅为部分必要配置):
server {
listen 443 ssl;
#设置监听的端口
server_name 你的域名;
#添加监听的主机名
ssl_certificate 你的crt文件路径;
#添加SSL证书
ssl_certificate_key 你的key文件路径;
#添加SSL证书Key
ssl_session_timeout 5m;
#设置session超时时间
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
#设置SSL加密配置
location / {
root 你的博客文件夹路径;#设置虚拟主机加载目录
index index.html;#设置虚拟主机默认加载的首页
}
}
#设置强制https
server {
listen 80;
#设置监听的端口
server_name 你的域名;
#添加监听的主机名
return 301 https://$host$request_uri;
#重定向到443端口
}
推送配置
默认公钥已部署到服务器
打开_config.yml
,修改deploy
项:
type: git
repo: 服务器用户名@服务器IP:博客文件夹路径
branch: master
尝试本地hexo clean
后hexo g -d
,然后访问你的域名,此时应该是https下的主页,hexo部署完成。
rssant部署
蚁阅——一个可自行部署的rss应用,这里不赘述具体部署,只讲部署后如何用二级域名访问。
关于蚁阅的部署。部署时请另设一个端口,以免冲突。
假设已经部署在1234
端口。
先在域名配置中添加二级域名的解析记录,为方便起见,直接添加所有二级域名:
主机记录 | 记录类型 | 记录值 |
---|---|---|
* | A | 服务器IP |
打开nginx配置文件:sudo vim /etc/nginx/conf.d/default.conf
.
添加如下记录:
server {
listen 80;
server_name 完整域名(包括二级);
location / {
proxy_pass http://服务器IP:1234/;
}
}
此时打开访问完整域名,可打开部署的蚁阅。若要https,按照[配置域名和https](### 配置域名和https)设置即可。
qbittorrent部署
同蚁阅,也只讲二级域名访问
也是在nginx配置文件中添加对应域名和端口号进行反向代理,但我做完这一步,WebUI访问有问题,提示Unauthentic,后来发现是需要添加额外配置,完整如下:
server {
listen 80;
server_name 完整域名;
location / {
proxy_pass http://服务器IP:端口号/;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-Host
$http_host;
http2_push_preload on;
}
}
Nextcloud部署
利用snap可以非常方便地安装、配置网盘服务——nextcloud。
- 安装snap:
sudo apt-get install snap
- 安装snapd:
sudo apt-get insatll snapd
- 安装nextcloud:
sudo snap install nextcloud
- 设置运行端口:
snap set nextcloud ports.http=目标端口
- nginx配置反代理
- 安装缩略图生成应用后,以
sudo nextcloud.occ preview:generate-all
执行,亦可利用定时任务生成
上传文件报“未知错误”
在nginx配置文件中添加:client_max_body_size 10240M;
也可以修改php配置vim /etc/php.ini
:
max_execution_time = 0 # 默认是30秒,改为0,表示没有上传时间限制
post_max_size = 10800M # 设定POST数据所允许的最大大小
upload_max_filesize = 10240M # 表示所上传的文件的最大大小
crontab配置
配置CDN提升访问体验,同时降低服务器压力
利用腾讯CDN服务,具体配置已有文档,不再赘述。
至此,今天折腾完了。
Comments NOTHING