AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-397931

UncleBob's questions

Martin Hope
UncleBob
Asked: 2025-02-11 00:30:44 +0800 CST

SEO、顶级域名交付和云端

  • 6

我们有一个 Web 服务,其前端被拆分为多个应用程序,由云端端点提供。这些应用程序目前都有自己的子域,例如 service-a.mydomain.com、service-b.mydomain.com 等。

然而,如今子域名几乎对谷歌如何建立域名权威没有影响,域名权威已经成为 SEO 的圣杯。因此,为了搜索引擎优化的目的,我们希望将所有内容移至顶级域名中的路径。因此,之后应该是 mydomain.com/service-a、mydomain.com/service-b 等。

显然,这似乎需要一个代理,如 API 网关或类似的东西,来路由所有内容。问题是……如果所有内容都通过同一个代理,那么 cloudfront(或任何其他 CDN)的主要优势就几乎消失了。当然,你可以在代理后面运行它,但你只有一个缓存。再见边缘位置。那时,将缓存放在代理本身中确实更有意义。

所以我的问题是,如果我不能为每个端点提供自己的子域,是否还有某种方法可以利用 Cloudfront 边缘位置?或者这种域设计方式是否只需要放弃 CDN 的优势?

amazon-web-services
  • 1 个回答
  • 35 Views
Martin Hope
UncleBob
Asked: 2021-08-05 01:42:04 +0800 CST

无法使用 TLSv1.2 连接到 Amazon RDS

  • 4

我用 Ubuntu 20 设置了一台新机器,发现我无法再连接到我的 RDS 数据库。

应该连接到开发环境的 spring-boot 应用程序抛出以下异常:
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

所以我挖出了 mySql 工作台并尝试了它。这导致了这个错误:
ssl_choose_client_version:unsupported protocol

寻找那个告诉我 Ubuntu 20 将 TLSv1.2 设置为最低 TLS 版本,如果您的 MySQL 服务器不支持它,则会发生此错误(来自这里:https ://askubuntu.com/questions/1193629/why -mysql-workbench-8-x-errors-out-with-an-ssl-connection-error-choose-client-v)。我尝试关闭 SSL 的工作台,果然它可以建立连接。

显而易见的问题是,这是 Amazon RDS ... TLS 1.2 是唯一无法禁用的版本,因为它是内部使用的版本,如下所示:https ://docs.aws.amazon.com /AmazonRDS/latest/UserGuide/SQLServer.Ciphers.html

所以说真的,应该没有问题。我开始怀疑 TLS 版本是否真的是问题所在。但由于我没有任何其他线索,我按照这里的答案中的食谱重新配置我的本地 openssl 以允许最低 TLS 版本 1 并降级安全级别:https ://askubuntu.com/questions/1233186/ubuntu- 20-04-how-to-set-lower-ssl-security-level

您不知道吗,Workbench 现在连接的 SSL 设置为必需。Spring-Boot 仍然没有,我想我必须在其他地方配置它才能获得备忘录。但与其浪费时间,我宁愿解决真正的问题,即我无法通过 TLSv1.2 进行连接,而据我所知,我确实应该能够连接。这比降低我的安全性要好得多。我尝试更新数据库证书以防万一出现问题,但管理控制台发现证书没有任何问题,如果我不需要,显然不会让我更换它。所以我有点不知道下一步该尝试什么。

ssl amazon-rds
  • 1 个回答
  • 2438 Views
Martin Hope
UncleBob
Asked: 2021-08-03 07:34:25 +0800 CST

AWS Cloudfront CORS 字体文件问题

  • 1

我有一个从 CloudFront 端点传送到浏览器的 Javascript 应用程序。应用程序的所有静态文件都托管在 S3 存储桶中。这涉及一大堆 javascript 和 css 文件,以及一些字体文件。

加载整个应用程序的 html 是由服务器生成和交付的,我们称该服务器为“https://my.domain.com”。

如前所述,这只是 html 文件。然后从指向存储桶作为其来源的云端端点下载所有静态内容。我们将这些称为 xxxx.cloudfront.net 和存储桶 my-bucket。

据我了解,几乎所有从生成的 html 到云端端点的请求都是 CORS 请求,因为 html 的来源是 my.domain.com,并且所有请求的文件显然都没有托管在该域上。

所以很自然,我去设置所有 CORS 的东西。首先,bucket 是完全公开的,它具有以下 CORS 策略:

[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "GET"
        ],
        "AllowedOrigins": [
            "*",
        ],
        "ExposeHeaders": [],
        "MaxAgeSeconds": 3000
    }
]

这似乎对一切都有效……除了字体文件!我可能应该提到存储桶的文件夹结构。它有三个文件夹,生产、开发和通用。这些内容应该是不言自明的。Common 包含字体,以及一些 3rd 方 javascript 库。生产和开发包含各自环境的 js 和 css。

无论如何,除了字体文件之外,所有内容都会加载,我收到以下错误:

Access to font at 'https://xxxx.cloudfront.net/common/fonts/outline/budicon-classic.ttf?jdete2' from origin 'https://my.domain.com' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

让我感到非常奇怪的是,只有字体文件会有这个问题。公共文件夹中的其他文件似乎加载得很好,如果我只是将https://xxxx.cloudfront.net/common/fonts/outline/budicon-classic.ttf?jdete2粘贴到我的浏览器中,它可以工作。

唯一的区别似乎是这些文件不是从 html 加载的,而是通过 @font-face thingy 从 css 加载的。查看加载应用程序时浏览器生成的请求,我可以清楚地看到例如设置了 origin 标头,而不是用于请求 js 或 css 文件。Set-Fetch-Mode 设置为“cors”,而对于其他文件,它设置为“no-cors”。

无论如何,我试图在云端解决这个问题。首先,我在原始配置中添加了标题“Access-Control-Allow-Origin: *”。然后我为源添加了一个行为配置,以允许路径模式 *.

现在......好吧,现在我仍然有同样的问题,并且完全没有想法,虽然想知道为什么@font-face创建的请求与对javascript和css资源的请求相比形成如此不同,但是最重要的是,我到底能做些什么来加载他们血腥的字体?

amazon-s3 amazon-cloudfront css cors
  • 1 个回答
  • 909 Views
Martin Hope
UncleBob
Asked: 2019-02-26 07:54:45 +0800 CST

puppet 不再能够在 ubuntu 18 上管理服务

  • 1

我试图通过我们的 puppet-master 设置一个新服务器。这应该是一件快速的事情,那里的所有东西都运行得相当可靠,并且仍然在旧服务器上。

只是新服务器是第一台运行 Ubuntu 18 的服务器,而 puppet 似乎无法启动这些服务。这是我在尝试确保服务正在运行时遇到的错误示例:

Error: /Stage[main]/Influxdb/Service[influxdb]/ensure: change from stopped to running failed: Could not find init script for 'influxdb'

在调试输出中,我可以看到以下内容:

Executing: '/usr/sbin/service influxdb status'
Service[influxdb](provider=debian): Could not find influxdb in /etc/init.d
Service[influxdb](provider=debian): Could not find influxdb.sh in /etc/init.d

实际上 /etc/init.d 中没有与服务相关的文件,但以前从未需要过。如果我sudo /usr/sbin/service influxdb status从控制台运行,则该命令有效。那么为什么 puppet agent 无法准确管理服务呢?

请注意,我不是 100% 确定问题出在 ubuntu 18 上。这只是我能想到的唯一重要的变化,显然 Ubuntu 18 中的 systemd 发生了一些变化,尽管我还不太清楚他们到底是什么。我想要的是一种不需要我重写所有服务文件的解决方案,并且有一个可以在仍然运行旧操作系统的服务器以及运行新操作系统的服务器上运行的 puppet 设置。任何人都可以帮助我实现这一目标吗?

puppet
  • 2 个回答
  • 696 Views
Martin Hope
UncleBob
Asked: 2018-10-20 02:07:08 +0800 CST

从 LAN 路由到 OpenVPN

  • 1

我需要设置从本地网络到 VPN 的路由。也就是说,局域网内的任何人都应该能够与 VPN 中的机器进行通信,而无需自己成为 VPN 客户端。问题是,说到网络,我有点傻……

本地网络有一个 8 位范围,192.168.2.X VPN 服务器本身在另一个网络中,在 192.168.3.20(8 位) VPN 网络有一个 16 位范围,10.8.XX

运行openvpn服务器的机器的eth0接口有一个静态IP在192.168.3.20。vpn服务器本身的tun0接口监听10.8.0.1

我们已经在做的是将本地网络中到 10.8.xx 的数据包重新路由到服务器:

traceroute to 10.8.0.1 (10.8.0.1), 30 hops max, 60 byte packets
 1  gateway (192.168.2.1)  2.508 ms  2.364 ms  2.325 ms
 2  10.8.0.1 (10.8.0.1)  1.898 ms  1.895 ms  1.911 ms

所以我已经可以通过 10.8.0.1 ssh 进入它,这很好。

但是,当我尝试访问 VPN 中的客户端时,结果却大不相同:

traceroute to 10.8.0.178 (10.8.0.178), 30 hops max, 60 byte packets
 1  gateway (192.168.2.1)  2.315 ms  2.152 ms  2.036 ms
 2  192.168.3.20 (192.168.3.20)  1.764 ms  1.760 ms  1.776 ms
 3  * * *
etc...

让我有点恼火的是,对服务器的直接请求在 10.8.0.1 终止,而我原本预计它要么不起作用,要么在 192.168.3.20 终止。所以很明显我不太了解这里发生了什么......

从那里开始,我想我可以通过将 eth0 上的流量转发到 tun0 来解决这个问题:

sudo iptables -A FORWARD -i eth0 -o tun0 -d 10.8.0.0/16 -j ACCEPT

但这没有任何效果。这几乎就是我卡住的地方。我尝试了上述的一些变体,并在 OpenVPN 配置中使用了路由,所有这些都没有任何明显的变化。

有趣的是,跟踪活动实际上显示在

*VPN log, but I don't understand much of what's going on here either:
Fri Oct 19 11:57:53 2018 us=219532 GET INST BY VIRT: 10.8.0.158 -> y18022c/185.184.117.20:1194 via 10.8.0.158
Fri Oct 19 11:57:53 2018 us=219539 y18022c/185.184.117.20:1194 TUN READ [60]
Fri Oct 19 11:57:53 2018 us=219544 y18022c/185.184.117.20:1194 TLS: tls_pre_encrypt: key_id=0
Fri Oct 19 11:57:53 2018 us=219555 y18022c/185.184.117.20:1194 ENCRYPT IV: 14c0471a 9fe7860f
Fri Oct 19 11:57:53 2018 us=219580 y18022c/185.184.117.20:1194 ENCRYPT FROM: 000000ae fa450000 3cac0400 000b1135 5ec0a803 010a0800 9e98b682 bf00282[more...]
Fri Oct 19 11:57:53 2018 us=219612 y18022c/185.184.117.20:1194 ENCRYPT TO: 14c0471a 9fe7860f 00bbfc72 b50c8915 8390d362 82f0a84c c22803b1 2a7ceca[more...]
Fri Oct 19 11:57:53 2018 us=219622 PO_CTL rwflags=0x0002 ev=4 arg=0x5654a4302150
Fri Oct 19 11:57:53 2018 us=219629 PO_CTL rwflags=0x0000 ev=5 arg=0x5654a4302068
Fri Oct 19 11:57:53 2018 us=219637 I/O WAIT Tr|Tw|Sr|SW [0/63574]
Fri Oct 19 11:57:53 2018 us=219646 PO_WAIT[0,0] fd=4 rev=0x00000004 rwflags=0x0002 arg=0x5654a4302150 
Fri Oct 19 11:57:53 2018 us=219652  event_wait returned 1
Fri Oct 19 11:57:53 2018 us=219658 I/O WAIT status=0x0002
Fri Oct 19 11:57:53 2018 us=219696 y18022c/185.184.117.20:1194 UDPv4 WRITE [101] to [AF_INET]185.184.117.20:1194: P_DATA_V1 kid=0 DATA c15dc78e ddd12705 8c3a860c 9cd9fe1e da29c4b2 14c0471a 9fe7860f 00bbfc7[more...]
Fri Oct 19 11:57:53 2018 us=219707 y18022c/185.184.117.20:1194 UDPv4 write returned 101
Fri Oct 19 11:57:53 2018 us=219715 PO_CTL rwflags=0x0001 ev=4 arg=0x5654a4302150
Fri Oct 19 11:57:53 2018 us=219722 PO_CTL rwflags=0x0001 ev=5 arg=0x5654a4302068
Fri Oct 19 11:57:53 2018 us=219730 I/O WAIT TR|Tw|SR|Sw [0/63574]
Fri Oct 19 11:57:53 2018 us=231770 PO_WAIT[0,0] fd=4 rev=0x00000001 rwflags=0x0001 arg=0x5654a4302150 
Fri Oct 19 11:57:53 2018 us=231782  event_wait returned 1
Fri Oct 19 11:57:53 2018 us=231789 I/O WAIT status=0x0001
Fri Oct 19 11:57:53 2018 us=231799 UDPv4 read returned 53
Fri Oct 19 11:57:53 2018 us=231809 GET INST BY REAL: 185.184.117.20:1194 [succeeded]
Fri Oct 19 11:57:53 2018 us=231837 y18022c/185.184.117.20:1194 UDPv4 READ [53] from [AF_INET]185.184.117.20:1194: P_DATA_V1 kid=0 DATA 1196c495 845bb7fd e61cc8d8 ed4d427a b901d6c8 e81fe5a9 3ab1acce b5687f0[more...]
Fri Oct 19 11:57:53 2018 us=231846 y18022c/185.184.117.20:1194 TLS: tls_pre_decrypt, key_id=0, IP=[AF_INET]185.184.117.20:1194
Fri Oct 19 11:57:53 2018 us=231859 y18022c/185.184.117.20:1194 DECRYPT IV: e81fe5a9 3ab1acce
Fri Oct 19 11:57:53 2018 us=231876 y18022c/185.184.117.20:1194 DECRYPT TO: 00000036 fa2a187b f3641eb4 cb07ed2d 0a981fc7 48
Fri Oct 19 11:57:53 2018 us=231897 y18022c/185.184.117.20:1194 PID_TEST [0] [SSL-0] [>EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE] 0:53 0:54 t=1539943073[0] r=[0,64,15,0,1] sl=[11,53,64,528]
Fri Oct 19 11:57:53 2018 us=231905 y18022c/185.184.117.20:1194 RECEIVED PING PACKET*

我最大的问题是我真的不知道这里到底发生了什么......为什么对 10.8.0.1 的请求没有通过 192.168.3.20 路由?我的意思是,在终止 VPN 之前必须通过实际服务器是合乎逻辑的......?当请求到达 eth0 时(从 192.168.3.20 显示在跟踪中可以看出),为什么不将它们转发到 tun0?openVPN 本身是否在这里阻止了某些东西?

routing
  • 1 个回答
  • 436 Views
Martin Hope
UncleBob
Asked: 2017-03-08 08:51:41 +0800 CST

ActiveMQ Artemis 可以用作“协议适配器”吗?

  • 1

我们有一个物联网基础设施,设备通过 MQTT 进行通信。但是,现在我们还要求这些设备必须将传感器数据发布到一个队列中,以便云处理对其进行评估和存储。

由于 MQTT 不支持拉取模型,我目前正在研究可能使用的排队服务。ActiveMQ Artemis 引起了我的注意,因为它支持各种协议,其中包括 MQTT 和 REST 接口。

不过,我在文档中无法清楚地看到,Artemis 是否只能充当多个消息队列的单个代理,或者它是否实际上可以用于在它们之间进行转换。到目前为止的计划是让一个 MQTT 客户端订阅“处理”主题,该主题将收集发布给它的所有消息并将它们推入轮询队列,工作人员会来收集它们。似乎 Artemis 有可能在不运行其他服务的情况下做到这一点,但我完全不确定我是否正确解释了文档。

所以要问一个直截了当的问题:我可以安装 Artemis,以便我可以向它发布 MQTT 消息,然后从队列中轮询它们,例如使用 REST 接口吗?

activemq
  • 1 个回答
  • 122 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve