我有一个网站,但我很困惑在哪里托管其数据库。
Google Cloud SQL D1 层有 0.5 GB RAM,每天的费用为 1.46 美元。
GCE n1-standard-2 具有 7.5 GB RAM,其成本为每天 1.68。
我在 Cloud SQL 上托管我当前的数据库,当并发活动连接增加时性能会下降。这一定是因为云 sql 的 RAM 低。
我可以在 VM 实例上设置 mysql 服务器,并且可以远程访问外部服务器。此外,Cloud SQL 对最大连接数有限制。
那么,我为什么要在 Cloud SQL 上托管它?
我主要关心的是性能。
我已经设置了一个负载均衡器,可以接受来自用户的https连接.然后使用http连接将计算引擎连接到负载均衡器.
我在根文件夹中写了以下.htaccess文件:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Run Code Online (Sandbox Code Playgroud)
现在,问题是,计算引擎总是通过http链接(到负载均衡器)而不是https连接.
因此,即使URL以https开头,.htaccess文件也始终认为连接是http而不是https.因此,即使网址为https,它也会进入无限循环,尝试将用户发送到https.
在这种情况下,应该如何将http重定向到https.
谢谢.
我们正在构建一款 iOS 应用程序,用户可以在订阅模式下观看视频。
我们不希望用户将视频播放到任何其他设备。
视频正在 UIWebView 内播放。
我查了各种网上资源:
上述选项均无效。
另外,我尝试了这段代码,但它总是返回 1。
if ([[UIScreen screens] count] < 2)) {
//streaming
}
else {
//mirroring
}
Run Code Online (Sandbox Code Playgroud)
我也尝试过这段代码:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveAirPlayNotification:) name: UIScreenDidConnectNotification object:nil];
Run Code Online (Sandbox Code Playgroud)
此通知系统仅在我启动应用程序然后打开 Airplay 时才起作用。如果我打开 Airplay 然后启动应用程序,则不会检测到任何内容。
我需要在应用程序启动时检测镜像是否打开。我见过其他应用程序这样做,所以我确信这是可能的。
请帮忙。
我正在使用托管在 Google Compute Engine 上的 MySQL 数据库,并通过 PHP 从另一个计算引擎访问。
每当我跑
SHOW PROCESSLIST
Run Code Online (Sandbox Code Playgroud)
结果中大约有 5-6 个睡眠连接,这对我来说没问题,因为它不会降低系统的性能。但是每当网站上的流量很大时,睡眠连接就会增加到 100+,从而导致整个系统变慢。
我在网上查了一下,发现这些sleep连接都是open mysql connection waiting for command。
但是我在每次查询后关闭我的 SQL 连接。这是我如何使用 PHP 访问 MySQL DB 的示例。
function db_connect()
{
$host = "100.100.100.100"; // dummy
$username = "abc";
$pass = "1234";
$db = "database";
$connection = new mysqli($host, $username, $pass, $db);
$connection->set_charset("utf8");
return $connection;
}
function closeConnection($db)
{
$db->close();
}
function runQuery($query)
{
$db = db_connect();
$sql = $db->query($query);
closeConnection($db);
return $sql;
}
Run Code Online (Sandbox Code Playgroud)
我将 SQL 语句传递给 runQuery …