我有一个网页 ( https://smartystreets.com/contact ),它使用 jQuery 通过 CloudFront CDN 从 S3 加载一些 SVG 文件。
在 Chrome 中,我将打开一个隐身窗口以及控制台。然后我将加载页面。当页面加载时,我通常会在控制台中收到 6 到 8 条类似于以下内容的消息:
XMLHttpRequest cannot load
https://d79i1fxsrar4t.cloudfront.net/assets/img/feature-icons/documentation.08e71af6.svg.
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Origin 'https://smartystreets.com' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud)
如果我对页面进行标准重新加载,甚至多次,我仍然会遇到相同的错误。如果我这样做,Command+Shift+R
那么大多数,有时是全部图像将在没有XMLHttpRequest
错误。
有时即使在图像加载后,我也会刷新并且一个或多个图像不会加载并XMLHttpRequest
再次返回该错误。
我已经检查、更改并重新检查了 S3 和 Cloudfront 上的设置。在 S3 中,我的 CORS 配置如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedOrigin>http://*</AllowedOrigin>
<AllowedOrigin>https://*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)
(注意:最初只有<AllowedOrigin>*</AllowedOrigin>
,同样的问题。)
在 CloudFront 中,分配行为设置为允许 HTTP Methods: GET, …
问题:我需要尽快将大块数据从远程位置复制到系统内存中。
场景:我有一个数据处理系统。该系统是通过使用从远程位置拉入的多个组件即时通过 shell 脚本构建的。
其中一个组件是作为文件组存储的大块数据。
我的要求是从远程位置检索大块数据,并尽快将其安装到系统内存中。这是一项要求,以便依赖此数据的系统可以在启动后尽快开始使用它进行处理。
问题:“我的数据最有效的容器是什么?”
已经尝试/考虑的解决方案:
注意事项:
我最近用 php fpm、php apc 和 postgres 安装了 nginx 1.0.5。我只想玩弄 nginx 并学习如何配置基本的东西。对于扩展测试,我决定安装 PHPBB3(运行良好)以查看 PHP + Postgres 访问是否有效。
现在我想了解重写 URL 的工作原理,并且已经发现重写的内容应该写在 nginx 配置的位置部分中。
但不幸的是,nginx 似乎忽略了我在配置中放置的每个重写规则。所以我想知道我是否必须先以某种方式打开重写功能?
nginx -V |grep rewrite
什么也没显示,此外安装 nginx-extras 也没有帮助。我只是希望 nginx-extras 包含类似重写模块的东西,但不幸的是事实并非如此。
搜索 serverfault.com 和 google 没有帮助。那么——我该怎么办?:\ 任何帮助表示高度赞赏。
PS:所有软件包都是在 Debian 6 中使用 apt-get install 安装的。
编辑:下面是我的 nginx vhost 配置的摘录:
server {
listen 80;
server_name domain.org www.domain.org;
access_log /var/log/nginx/domain.access_log;
error_log /var/log/nginx/domain.error_log;
rewrite_log on;
events {
debug_connection <my ip>;
}
[...]
Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu Linux 上运行 Docker。我有一个Dockerfile
从其他地方带来大量数据的数据。我把它Dockerfile
放在我已经安装到本地文件系统 (ext4) 的外部驱动器上。然后我从该外部驱动器文件系统中运行构建。
docker build -t mycontainer .
Run Code Online (Sandbox Code Playgroud)
我在容器构建时观察了驱动器的使用情况。所有驱动器使用都在根文件系统上,而不是连接的驱动器上。
我已经阅读了一些关于将 Docker 根/基从/var/lib/docker
另一个位置更改的文章,但到目前为止我得到的只是docker.service: Failed with result 'exit-code'
.
我也尝试-g options
在/lib/systemd/system/docker.service
文件中添加:
ExecStart=/usr/bin/dockerd -H fd:// # original
ExecStart=/usr/bin/dockerd -g /new/path/docker -H fd:// # updated
Run Code Online (Sandbox Code Playgroud)
这也没有帮助。
如何告诉 Docker 使用外部驱动器?
我有一个 Ubuntu 服务器。它将是一个 URI 为 的 Web 服务器www.example.com
。www.example.com
我有一条指向服务器 IP 地址的DNS A 记录。
假设我选择“trinity”作为该服务器的主机名。
我想正确设置 DNS 记录。我需要反向 DNS 到www.example.com
,因此 CNAMEwww.example.com
似乎不合适。这是我的问题:
设置两条 DNS 记录(在我的情况下可能是两条 A 记录),一条用于www.example.com
,一条用于trinity.example.com
,都指向该服务器的 IP 地址,这是否被认为是最佳实践?(或者,即使它不被接受为最佳实践,它是一个好主意吗?)
如果是这样,以下是正确的 /etc/hosts 文件吗?
$ cat /etc/hosts
127.0.1.1 trinity.local trinity
99.100.101.102 trinity.example.com trinity www.example.com
Run Code Online (Sandbox Code Playgroud)
该服务器是 Linode,Linode 的文档似乎暗示上述方法是最好的(如果我正确阅读它们)。这是相关部分。我将似乎适用于此的那条线加粗了。
更新/etc/hosts
接下来,编辑 /etc/hosts 文件以类似于以下示例,将“plato”替换为您选择的主机名,将“example.com”替换为系统的域名,将“12.34.56.78”替换为系统的 IP 地址。与主机名一样,FQDN 的域名部分不一定需要与服务器上托管的网站或其他服务有任何关系(尽管如果您愿意,也可以这样做)。例如,您的服务器上可能托管“www.something.com”,但系统的 FQDN 可能是“mars.somethingelse.com”。
文件:/etc/hosts
Run Code Online (Sandbox Code Playgroud)127.0.0.1 localhost.localdomain localhost 12.34.56.78 plato.example.com plato
您指定为系统 FQDN 的值应该在 DNS 中具有指向您的 Linode IP 地址的“A”记录。有关配置 DNS …
我碰巧对 PHP 同步软件ownCloud感兴趣。除了数据库之外,我对它的设置非常正确,因为一些模糊的原因,我必须在安装 ownCloud 后创建它。
结果,数据库是空的。我相信这对同步和版本控制没有帮助。
问题: 我找不到手动重新生成数据库表的方法,也就是说,要运行一个脚本来获取我的新数据库并将准备使用的全新表放入其中。有没有人知道如何做到这一点?
非常感谢。
干杯