Traefik是一款开源边缘路由器,它使发布服务成为一种有趣且轻松的体验。它代表您的系统接收请求,并找出负责处理这些请求的组件。

使用Docker搭建TraeFik也可以参考官方文档:Traefik Getting Started Quickly - TraefikLooking to get started with Traefik Proxy quickly? Read the technical documentation to learn a simple use case that leverages Docker.
https://doc.traefik.io/traefik/getting-started/quick-start/
如何从零搭建自己的TreaFik呢?
1、创建一个桥接
docker network create proxy
创建了一个桥接,名为proxy,这个桥接专门给TraeFik做代理使用
可以使用 docker network ls 查看你的docker有哪些桥接

2、创建docker-compose.yml
首先呢为了方便管理我们的服务器上的服务,可以创建目录专门放服务的docker-compose文件,和数据卷。

可以看到我的traefik服务放到/root/sifan/traefik目录下
创建docker-compose.yml
vim docker-compose.yml
如果docker-compose版本过低,需要升级
查看docker-compose版本号
docker-compose --version

可以看到我的docker-compose有些老了,查看安装目录,后面有用到
whereis docker-compose

docker-copose本质是Python脚本,只需要下载最新的替换旧的就ok

好家伙最新版都2.11.2了我还在用1.25.1

官方说可以使用compose-switch升级docker-compose大家可以试试
下载最新的docker-compose
使用crul方式安装很慢所以我采取在github下载,上传方式安装
复制docker-compose安装包链接,我复制的是linux-x86_64

打开GitHub 加速下载 - 在线工具粘贴链接

下载好之后上传服务器

把文件复制到/usr/bin/docker-compose
cp docker-compose-linux-x86_64 /usr/local/bin/docker-compose
给docker-compose赋权
chmod +x /usr/bin/docker-compose
看一下版本对不对

可以看到docke-compose更新到最新版本
docker-compose.yml内容,注意:里面的内容需要配置自己的域名
version: "3.8"
networks:
proxy:
external: true
volumes:
acme:
services:
traefik:
image: traefik:v2.5.4
networks:
- proxy
ports:
- "80:80"
- "443:443"
volumes:
# 时区
- /etc/timezone:/etc/timezone
- /etc/localtime:/etc/localtime
# 使traefik能够监听到docker事件
- /var/run/docker.sock:/var/run/docker.sock
# 持久化acme生成的证书
- acme:/etc/acme
env_file:
- ./.alidns.env
# 开启web ui 监听docker 申请证书 使用的是阿里云买的域名
command:
- --api.insecure=true
- --providers.docker
- --providers.docker.network=proxy
# web http 80 请求进来 重定向到 下面的websecure
- --entryPoints.web.address=:80
- --entryPoints.web.http.redirections.entrypoint.permanene=true
- --entryPoints.web.http.redirections.entrypoint.scheme=https
- --entryPoints.web.http.redirections.entrypoint.to=websecure
# web secure https端口443
- --entryPoints.websecure.address=:443
# 自动ssl认证
- --entryPoints.websecure.http.tls=true
# ssh机构 阿里
- --entryPoints.websecure.http.tls.certresolver=ali
# 主域名 ,这里根据自己的域名填写
- --entryPoints.websecure.http.tls.domains[0].main=dengzhilin.com
- --entryPoints.websecure.http.tls.domains[0].sans=*.dengzhilin.com
- --certificatesresolvers.ali.acme.dnschallenge.provider=alidns
- --certificatesresolvers.ali.acme.email=1767394@163.com
- --certificatesresolvers.ali.acme.storage=/etc/acme/acme.json
labels:
- "traefik.enable=true"
# 路由 上面的web和websecure
- "traefik.http.routers.traefik.entrypoints=web, websecure"
# 路由规则 自己的域名dengzhilin.fun
- "traefik.http.routers.traefik.rule=Host('proxy.dengzhilin.com')"
# 负载均衡的端口
- "traefik.http.services.traefik.loadbalancer.server.port=8080"
需要用到的阿里云配置文件 .alidns.env

内容:注意这里是自己阿里云的访问key和秘钥
ALICLOUD_ACCESS_KEY=LTAI5tGFc7hoBswSaxxxxxxxxxxx
ALICOULD_SECRET_KEY=jZWRG3EgQBF7U9yxxxxxxxxxxx

这个东西在阿里云哪个位置呢

accessKey管理点进去就是
现在就可以启动啦
docker-compose up -d

注意开发阿里云的80和443端口。
我想安装一个带有一些身份验证的私有(private)Rubygem服务器。我希望能够使用公共(public)Ubuntu服务器托管内部gem。我读到了http://docs.rubygems.org/read/chapter/18.但是那个没有身份验证-如我所见。然后我读到了https://github.com/cwninja/geminabox.但是当我使用基本身份验证(他们在他们的Wiki中有)时,它会提示从我的服务器获取源。所以。如何制作带有身份验证的私有(private)Rubygem服务器?这是不可能的吗?谢谢。编辑:Geminabox问题。我尝试“捆绑”以安装新的gem..
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
最近,当我启动我的Rails服务器时,我收到了一长串警告。虽然它不影响我的应用程序,但我想知道如何解决这些警告。我的估计是imagemagick以某种方式被调用了两次?当我在警告前后检查我的git日志时。我想知道如何解决这个问题。-bcrypt-ruby(3.1.2)-better_errors(1.0.1)+bcrypt(3.1.7)+bcrypt-ruby(3.1.5)-bcrypt(>=3.1.3)+better_errors(1.1.0)bcrypt和imagemagick有关系吗?/Users/rbchris/.rbenv/versions/2.0.0-p247/lib/ru
我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这
在Rails4.0.2中,我使用s3_direct_upload和aws-sdkgems直接为s3存储桶上传文件。在开发环境中它工作正常,但在生产环境中它会抛出如下错误,ActionView::Template::Error(noimplicitconversionofnilintoString)在View中,create_cv_url,:id=>"s3_uploader",:key=>"cv_uploads/{unique_id}/${filename}",:key_starts_with=>"cv_uploads/",:callback_param=>"cv[direct_uplo
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
您如何在Rails中的实时服务器上进行有效调试,无论是在测试版/生产服务器上?我试过直接在服务器上修改文件,然后重启应用,但是修改好像没有生效,或者需要很长时间(缓存?)我也试过在本地做“脚本/服务器生产”,但是那很慢另一种选择是编码和部署,但效率很低。有人对他们如何有效地做到这一点有任何见解吗? 最佳答案 我会回答你的问题,即使我不同意这种热修补服务器代码的方式:)首先,你真的确定你已经重启了服务器吗?您可以通过跟踪日志文件来检查它。您更改的代码显示的View可能会被缓存。缓存页面位于tmp/cache文件夹下。您可以尝试手动删除
导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri
有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题: