我正在使用此图像https://github.com/sverhoeven/docker-cartodb来启动我自己的容器,然后通过nginx创建一个反向代理来启用ssl。
ssl网站启动但问题是carto没有检测到协议的变化,并且由于cbd.js在HTTP协议上的api请求,我收到混合内容警告。
我应该更改api调用协议的文件,这是我的安装https://carto.gq。
答案 0 :(得分:0)
启用SSL
安装Nginx
sudo apt-get update
sudo apt-get install nginx
安装certbot-nginx
sudo add-apt-repository ppa:certbot/certbot
sudo apt-get update
sudo apt-get install python-certbot-nginx
现在按照屏幕上显示的说明进行操作
编辑Nginx文件
sudo nano /etc/nginx/sites-available/default
现在找到现有的server_name行并将下划线_替换为 您的域名:
server_name example.com www.example.com;
现在替换下面的块:
location / {
…………………………
}
以下给出以及docs文件夹中的nginx-change.txt
client_max_body_size 150M;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
#try_files $uri $uri/ =404;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8088;
}
然后,验证语法并重新加载Nginx以加载新配置。
sudo nginx -t
sudo systemctl reload nginx
现在跳过防火墙会稍后添加。
获取SSL证书
sudo certbot --nginx -d carto.ml -d www.carto.ml
完成此操作后,按照屏幕上的说明进行操作
启动容器
docker run -d -p 127.0.0.1:8088:80 -h carto.ml sandeepgadhwal/cartodb
获取容器ID
docker ps -a
示例:99718a6233b9
连接到容器bash
docker exec -it {containerid} /bin/bash
示例:docker exec -it ac2ce1a67df3 / bin / bash
安装缺少的组件
apt-get install nano
在rails文件中编辑baseurl。
nano cartodb/app/models/user/user_decorator.rb
你需要编辑第100行, 将base_url:public_url替换为base_url:public_url.sub(' http',' https') 这将更新cdb.js用于构建的user_data.base_urlglobal 许多api电话
编辑Api协议并在app_config.yml中移植,您可以在其中找到相同的内容 docker-cartodb文件夹。
nano /cartodb/config/app_config.yml
您需要编辑第35,37,40,42,46,49,51,54,258,第259,261,262行。 将端口替换为服务器的443或https端口,将http替换为https 这将更新sql的api_urls并映射Api。
退出编辑和bash
Press ctrl + c to exit
按Y并按enter
确认写入文件然后退出bash
press ctrl + q + p
重启容器
docker restart {containerid}