我使用这个镜像https://github.com/sverhoeven/docker-cartodb来启动我自己的容器,然后由nginx创建一个反向代理来启用ssl。
ssl网站弹出,但问题是carto没有检测到协议的变化,并且由于cbd.js在HTTP协议上的api请求,我收到了混合内容警告。
例如:http://carto.gq/user/dev/api/v1/viz/?tag_name=&q=&page=1&type=&exclude_shared=false&per_page=20&locked=&tags=&shared=no&only_liked=false&order=updated_at&types=table&exclude_raster=true。
我应该修改api调用的协议的文件,这里是我的安装https://carto.gq。
发布于 2018-03-31 05:57:49
启用SSL
在服务器上启用Nginx,并将所有流量重定向到ssl (ubuntu):
sudo apt-get update sudo apt-get install nginx
sudo add-apt-repository ppa:certbot/certbot sudo apt-get update sudo apt-get install python-certbot-nginx
现在按照屏幕上出现的说明进行操作,
sudo nano /etc/nginx/sites可用/默认
现在找到现有的server_name行,并将下划线_替换为您的域名:
server_name example.com www.example.com;
现在替换下面的代码块:
位置/{…………………………}
如下所示,在docs文件夹中使用nginx-change.txt
client_max_body_size 150M;location /{#首先尝试将请求作为文件,然后是#作为目录,然后回退到显示404。#try_files $uri $uri/ =404;proxy_set_header主机$host;proxy_pass http://127.0.0.1:8088;}
sudo nginx SSL sudo systemctl reload nginx
sudo certbot --nginx -d carto.ml -d www.carto.ml
通过完成此操作后,请按照屏幕上的说明进行操作
carto容器在8088内部端口上运行后,启用SSL:
sandeepgadhwal/cartodb
docker ps -aexample: docker to container bash
docker exec -it {containerid} /bin/bash
示例: /bin/bash
apt-get安装nano rails
nano cartodb/app/models/user/user_decorator.rb
您需要编辑第100行,将base_url: public_url替换为base_url: public_url.sub('http','https')这将更新user_data.base_urlglobal,cdb.js用它来构建许多调用
nano /cartodb/config/app_config.yml
您需要编辑第35,37,40,42,46,49,51,54,258,,259,261,262行。将端口替换为443或服务器的https端口,将http替换为https这将更新sql和映射Api的api_urls。
按ctrl +c退出
通过按Y键和enter键确认写入文件
然后退出bash
按ctrl +q+p
docker重启{containerid}
https://stackoverflow.com/questions/49575580
复制相似问题