docker 启动 solo 并用 nginx 反向代理

想要在服务器安装 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 证书

在 Nginx/Tengine 服务器上安装证书

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 命令。

至此,配置完成。

  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。

    Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!
    具体细节请浏览 B3log 构思

    1099 引用 • 8467 回帖 • 628 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    248 引用 • 474 回帖 • 553 关注
回帖
请输入回帖内容...