我有一个大而繁忙的网站;它目前完全在我每个月租用约 700 美元的专用服务器上运行。
它包含三个部分,我认为我可以将其划分为云解决方案:
媒体(图像/视频)文件托管。目前我有类似 236 GB 的静态图像,目前都只是停在我的服务器上。如果我将这些移动到云中,我可能会与 CDN 结合使用(以最小化每个图像请求从云服务传输数据的成本)。
数据库。目前在我的服务器上运行 MySQL,大约有 3 GB 的数据。
网络服务器。同一台服务器运行 nginx 服务静态文件和 PHP。
我现在没有任何生产问题,但我希望我的网站明年的流量/服务器负载翻一番。所以我现在想考虑可扩展性。
我的问题是:我如何确定将任何/所有这些移动到云平台上是否具有成本效益,而不是将它们保留在我当前的服务器上?
(我已经知道其他一些因素:使用云进行备份会更容易,我不会像现在使用单台服务器那样出现单点故障等。但我不知道有多少拆分其中一项服务的成本更多/更少。我该如何计算?)
编辑 - 谢谢大家这些惊人的答案和评论。一些人要求提供更多信息,因此我总结了以下所有内容并添加了更多数据:
已使用数据传输(“带宽”) - 该站点每月发送约 17 TB 的出站数据(!),我计划明年将这个数字增加一倍(!!)。几乎所有这些出站都是静态媒体(图片和视频剪辑),所以也许 CDN 是个好主意,不仅可以提高可发现性,而且可以将所有数据传输到 CDN 网络的负担转移到 CDN 网络,因此媒体存储服务器没有那么多的数据直接传输。--编辑:对于这么多数据传输来说,CDN 似乎非常昂贵。所以也许静态媒体留在一个简单的服务器上,这给了我一个非常高的带宽上限(你好 OVH!),如果我能找到一种经济有效的方法将 CDN 放在它前面,那就太棒了。
流量不尖- 我的流量相当稳定;我转向更基于云的解决方案的目标是能够轻松扩展。即我当前的设置在一个硬盘驱动器上包含所有内容,并且驱动器已满 60%;这个基础设施实际上无法处理双倍的数据量(而且我不确定它是否有足够的计算能力以双倍的流量运行 Web 服务器和数据库服务器)。
静态媒体- 正如我上面提到的,我有大约 236 GB 的静态媒体,主要是所有图像和视频剪辑。这似乎是最明显的(也许是最简单的?)首先切割并放入云中的部分。
数据库- 虽然数据库现在运行良好,但我很快就会有一些更复杂的查询,并且喜欢那里更强大的东西的想法。因此,虽然我不认为我当前的需求(功率和数据量)决定我应该将数据库服务器移到云中,但这一切都是为了能够扩展。
繁忙时间- 我的网站上总是有至少1,000 名用户 24/7,贪婪地消费媒体。服务器从不空闲。
目前专用服务器- 我之前说错了,说它是 colo(暗示我拥有硬件)。那是错误的。我有一个我每个月租用的专用服务器(由我的托管公司所有)。区别不大,只是想提一下。
我正在尝试在无头 CentOS 服务器上运行 Firefox GUI 浏览器以执行一些 Web 测试。
我不需要查看图形输出,因为我使用Selenium服务器API来控制浏览器的输入并检查输出。
该设置已在台式 Mac 计算机上成功测试。但是,它无法在我的无头 VPS CentOS 服务器上运行,并显示以下消息“错误:未指定显示”。(这是有道理的,因为它只是一个位于某个机架上的服务器。)
如何让 Firefox 在没有显示器的情况下运行,以便 Selenium 能够与之交互?或者——更广泛地说——当没有显示器时,人们如何在 Linux 服务器上运行纯 GUI 应用程序?
我注意到 Firefox 有这个命令行选项:
X11 options
--display=DISPLAY X display to use
Run Code Online (Sandbox Code Playgroud)
不幸的是,我对 X11 或 CentOS 下的显示一无所知,所以我不知道在命令行上指定什么,或者这是否有帮助。
我有一个在基于 Amazon EC2 Linux 的实例上运行的网站,并映射到常规域名 (x.com)。该站点与第二个 EC2 实例上的数据库通信。
我需要关闭这个实例并增加它背后的计算能力......如果我这样做,需要多长时间,然后当我再次启动机器时,我的网站会重新上线吗?是否会保留 IP 地址、DNS 信息等,以便域名继续工作,并且仍然能够与数据库通信?
仅供参考,这是我目前在 AWS EC2 信息面板中看到的 Web 服务器(确切的 IP 地址略有变化,但您明白了):
Public DNS: ec2-54-1-1-1.us-west-1.compute.amazonaws.com
Private DNS: ip-10-1-1-1.us-west-1.compute.internal
Private IPs: 10.1.1.1
Run Code Online (Sandbox Code Playgroud) 我正在使用一些已启动并正在运行的 Amazon EC2 服务器,我需要通过 SSH 连接到这些服务器。我没有第一次设置服务器时生成的任何密钥(在我到达这里之前很久就有人做了)。没有密钥文件我还能进入服务器吗?
FWIW 到目前为止,我已经尝试了很多方法来将 SSH 连接到盒子中,包括在 EC2 仪表板中生成新的密钥对,但似乎没有任何效果。这个亚马逊 AWS 支持帖子和这个答案似乎表明我运气不好,除非我想为我当前的服务器制作一个 AMI 然后用它来实例化一个全新的 EC2 服务器实例(只是为了生成 .pem 文件那时候)。这真的是我现在进入盒子的唯一方法吗?!
nano 编辑器的最新版本是 4.5 ( https://www.nano-editor.org/ )...我在我的 CentOS 7 服务器上运行 2.3.1 并且想要升级。但是没有存储库(EPEL、Remi 等)似乎有比 2.3 更新的东西。
我怎样才能获得最新的nano?我需要在服务器上从头开始构建它吗?yum如果可能的话,我宁愿能够用来管理安装/升级。
我在 nano 页面上看到了很多下载选项(包、Open SUSE[?]、发行版、等等),但似乎没有一个适合 yum。我认为。
我有一个 Amazon S3 存储桶,其中包含数千个 JPG 和类似的媒体资产。(这是我论坛的存储空间。)我没有在这个存储桶中托管静态站点(没有任何类型的 HTML)并且它完全开放供公众阅读(因此论坛软件可以只链接到图像)。
但是,我在 S3 上为带宽付费。有人说我应该把 CloudFlare 放在 S3 存储桶前面,这样会节省很多美元。凉爽的!但我不明白这个过程。CloudFlare 似乎想接管我主站点的所有 DNS,这不是我想要的。
我只需要https://my-bucket.s3.us-east-1.amazonaws.com被 CloudFlare 缓存/CDN。显然我无法更改亚马逊的 DNS ;-)
我不认为这会很困难,但我似乎无法找到一个相对简单的正确设置方法的解释。(换句话说:我缺乏“大局”/主要步骤。)
(这在 CloudFlare 站点上有所涉及,但我对他们的说明感到困惑,我的用例也与他们谈论的不同。)
我有一台来自 LiquidWeb 的 VPS 服务器……感觉有时在白天它很慢。由于它是 100% 虚拟的,我不能只检查“顶部”来衡量性能,因为它是在 VPS 内测量的。(换句话说:如果我从不在 VPS 上运行任何东西,top 将始终显示相同的内存使用和服务器负载为零,但由于 VPS 位于共享的物理机器上,它的速度可能仍会波动。)
有没有办法测量 VPS 性能的“真实”速度?我正在考虑编写一个运行循环的小脚本(做一些事情——文件操作,或者??)并记录时间,这样我就可以开始建立历史了……但我更喜欢更可靠/基本的状态。
我一定遗漏了一些明显的东西。
这有效:
[root@host2 /]# cd /home/mysite/public_html/../logs
[root@host2 /home/mysite/logs]# touch x
Run Code Online (Sandbox Code Playgroud)
这为什么不呢?
[root@host2 /]# touch /home/mysite/public_html/../logs/x
touch: cannot touch `/home/mysite/public_html/../logs/x': No such file or directory
Run Code Online (Sandbox Code Playgroud) 我正在使用 MySQL 调优脚本,该脚本又使用本地驱动器上的套接字 (.sock) 文件连接到 MySQL。尽管我在这台服务器上有一个 MySQL 的副本,但是,我想要使用的 MySQL 实际上在不同的机器上——在我的普通应用程序中,DB_HOST 是一个不同的 IP 地址,等等。
那么......有没有办法创建一个指向远程MySQL服务器的套接字文件,该服务器位于不同的IP上?