我在Debian Jessie上安装了Docker引擎,我在那里运行带有nginx的容器.我的"运行"命令如下所示:
docker run -p 1234:80 -d -v /var/www/:/usr/share/nginx/html nginx:1.9
Run Code Online (Sandbox Code Playgroud)
它工作正常,问题是现在可以访问此容器的内容http://{server_ip}:1234.我想在这台服务器上运行多个容器(域),所以我想为它们设置反向代理.
如何确保容器只能通过反向代理访问,而不是直接从IP:port?例如.:
http://{server_ip}:1234 # not found, connection refused, etc...
http://localhost:1234 # works fine
Run Code Online (Sandbox Code Playgroud)
//编辑:只是要清楚 - 我不是在问如何设置反向代理,而是如何运行Docker容器只能从localhost访问.
我在array()和之间做了一些基准测试SplFixedArray(),我遇到了奇怪的行为.首先,看看我的简单测试(它实际上只是来自互联网的编辑版本,抱歉,我现在找不到原始资源):
function formatMemoryUsage($usage) {
$unit = array(' B', 'kB', 'MB', 'GB', 'TB');
$factor = floor((strlen($usage) - 1) / 3);
return sprintf('%.2f %s (%d bytes) ', $usage / pow(1024, $factor), $unit[$factor], $usage);
}
for($size = 1000; $size < 100000; $size *= 2) {
echo PHP_EOL . '> Testing size: ' . number_format($size) . PHP_EOL;
echo ' Array()' . PHP_EOL;
for($s = microtime(true), $m = memory_get_usage(true), $container = Array(), $i = 0; $i < $size; $i++) $container[$i] = …Run Code Online (Sandbox Code Playgroud) 有没有办法如何在PHP中确定父类中的子实例?假设我们有这个代码:
class Parent {
public function InstanceOfChild() {
//What to put here to display "Child class is instance of ChildClass123"?
}
}
class ChildClass123 extends Parent {
//Some code here
}
Run Code Online (Sandbox Code Playgroud)
我需要做的是(如果可能的话)是create方法InstanceOfChild(),它会告诉我子类的实例,因为很多类可以是我父类的子类,但我想(让我们说)log,哪个子调用哪个方法.感谢帮助!
我有以下结构的nginx.conf:
http {
[ ... ]
server {
[ ... ]
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $host;
fastcgi_read_timeout 3000;
include fastcgi_params;
}
}
}
Run Code Online (Sandbox Code Playgroud)
该nginx在Docker内部运行,因此不知道链接到哪个域(托管系统上有nginx反向代理)。但是我有一个问题,当我尝试$_SERVER['SERVER_NAME']从PHP访问时,它是空的...如何将其设置为恒定值?当我尝试:
fastcgi_param SERVER_NAME example.com
Run Code Online (Sandbox Code Playgroud)
它仍然是空的。
请注意,我必须使用SERVER_NAME,因为它在第3部分代码中。
PHP如何使用for循环创建数组值?
$my_array=array(
for ($i=0;$i<10;$i++)
{
$i,
}
);
echo '<pre>'; print_r($my_array); echo '<pre/>';
Run Code Online (Sandbox Code Playgroud)