文章首发于:Panda's Blog
上篇中已配置好Seafile和宝塔面板,此篇文章中将使用Nginx反向代理实现HTTPS访问
申请ssl证书
可以使用宝塔证书或其他证书
此篇中使用的是宝塔证书
注册宝塔账号
注册完成后登陆,申请ssl证书需要实名认证
认证后选择 ssl管理 → 申请证书
我选用的是TrustAsia免费证书
选择DNS验证
申请完成后需验证域名
点击详情
复制记录值
登陆你的域名控制台
我使用的是万网域名
添加解析记录
记录类型选择TXT
主机记录填你申请证书的域名前缀,我的域名是cloud.****.com.cn所以此处填cloud
记录值按照宝塔要求填写
在宝塔中点击 验证域名
若验证失败等待几分钟再尝试
验证成功
开启HTTPS
创建站点
浏览器访问宝塔面板
我的面板地址是cloud.****.com.cn:****/*****
点击 网站→添加站点
输入你的域名后提交
配置Nginx
点击 设置
点击 反向代理→添加反向代理
代理名称任意
目标URL:http:127.0.0.1:8000
发送域名:你的域名地址
点击 SSL 绑定宝塔账号后即可看见刚才申请的ssl证书,点击 部署 并开启 强制HTTPS
在配置文件中添加以下内容(注意添加位置)
location /seafhttp {
rewrite ^/seafhttp(.*)$ $1 break;
proxy_pass http://127.0.0.1:8082;
client_max_body_size 0;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_connect_timeout 36000s;
proxy_read_timeout 36000s;
proxy_send_timeout 36000s;
send_timeout 36000s;
}
修改HTTPS端口
未备案的云主机80端口和443端口可能封闭
此处我将HTTPS端口改为8888
宝塔面板默认端口也是8888,我已将宝塔设置了其他端口访问
设置其他端口需放行端口
例如:
- 设置444端口,则需在宝塔面板端口放行处放行444端口
- 设置8888端口则需先修改宝塔面板默认端口(8888端口默认放行)
通过外网对端口情况测试
注:若443端口可正常访问则可跳过此步骤
修改Seafile URL
登陆Seafile点击右上角系统管理
在设置中修改SERVICE_URL和FILE_SERVER_ROOT
SERVICE_URL:https://域名:端口
FILE_SERVER_ROOT:https://域名:端口/seafhttp
修改gunicorn.conf
上篇中我们未使用Nginx反向代理所以修改了gunicorn.conf
后直接访问,本篇中我们使用了反向代理所以把绑定地址改回来
[root@ecs-a869 ~]# vi /home/seafile/conf/gunicorn.conf
import os
daemon = True
workers = 5
# default localhost:8000
bind = "0.0.0.0:8000"
# Pid
pids_dir = '/home/seafile/pids'
pidfile = os.path.join(pids_dir, 'seahub.pid')
# for file upload, we need a longer timeout value (default is only 30s, too short)
timeout = 1200
limit_request_line = 8190
~
~
~
~
~
~
"../conf/gunicorn.conf" 17L, 300C
i 键 或 INSERT 键 修改(出现-- INSERT --
标志)
将bind = "0.0.0.0:8000"
改为bind = "127.0.0.1:8000"
修改完成后 Esc 键 退出修改(-- INSERT --
标志消失)
输入:wq
保存
重启
Xshell连接云主机重启Seafile
[root@ecs-a869 ~]# cd /home/seafile/seafile-server-*
[root@ecs-a869 seafile-server-7.0.4]# ./seafile.sh restart
Stopping seafile server ...
[07/27/19 18:15:53] ../common/session.c(132): using config file /home/seafile/conf/ccnet.conf
Starting seafile server, please wait ...
** Message: seafile-controller.c(718): No seafevents.
Seafile server started
Done.
[root@ecs-a869 seafile-server-7.0.4]# ./seahub.sh restart
Stopping seahub ...
LC_ALL is not set in ENV, set to en_US.UTF-8
Starting seahub at port 8000 ...
Seahub is started
Done.
[root@ecs-a869 seafile-server-7.0.4]# service nginx restart
Stoping nginx... done
Starting nginx... done
测试
现在你可以通过HTTPS访问Seafile了