想要在服务器安装 solo,并且使用 nginx 反向代理的,可以参考这篇文章:从零开始安装 solo 博客
下边记录自己的配置过程,避免遗忘
1.安装 docker
#安装 Docker
yum -y install docker
#启动 Docker 后台服务
service docker start
#测试运行 hello-world
docker run hello-world
2.安装 solo
#获取最新版solo
docker pull b3log/solo
#docker安装solo并配置参数
docker run --detach --name solo --network=host \
--env RUNTIME_DB="MYSQL" \
--env JDBC_USERNAME="root" \
--env JDBC_PASSWORD="******" \
--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver" \
--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true" \
b3log/solo --listen_port=8081 --server_scheme=https --server_host=www.ttlvip.top --server_port=
以下是对上面代码参数的备注
b3log/solo
--listen_port=8081 #监听端口,nginx要转发到的端口
--server_scheme=https #如果nginx设置了ssl,此处应为https,否则使用http即可
--server_host=www.ttlvip.top #网站域名信息,要与浏览器访问地址一致,否则访问报错
--server_port= #留空即可,填写后solo内的跳转链接将不经过nginx反代.如需要填写,请与监听端口保持一致
3.nginx 配置反向代理
3.1 配置 ssl 证书
3.2 配置 nginx
打开 Nginx 配置文件 nginx/conf/nginx.conf
定位到以下位置:
server {
listen 80;
#将localhost修改为您证书绑定的域名,例如:www.example.com。
server_name www.ttlvip.top;
#将所有http请求通过rewrite重定向到https。
rewrite ^(.*)$ https://$host$1 permanent;
}
listen 80
监听 80 端口
server_name www.ttlvip.top
此项应填写对应的域名,没有域名填写 ip 地址
rewrite ^(.*)$ https://$host$1 permanent;
将 http 请求重定向到 https, 没有配置 ssl 证书可删除此项
此外: 如果没有配置 ssl 证书,需要在此 server 内配置 反向代理的服务器, 添加如下配置
location / {
#proxy_pass http://backend$request_uri;
proxy_pass http://localhost:8081/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 50m;
}
proxy_pass http://localhost:8081/;
被代理的服务器地址:端口号
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
client_max_body_size 50m;
这三项是防止 solo 静态资源和访问统计失效.不过访问统计是否失效暂时未知.因为第一项 proxy_pass
我直接写的服务器地址,没有按照教程中设置负载均衡 和 $http_host
字段. 影响未知.
配置完以后可以使用命令 nginx -s reload
重新加载 Nginx 配置文件,无需重启 Nginx 命令.
至此,配置完成......
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于