Articles of 头

PHP内容长度与自定义内容交付脚本不匹配

今天是个好日子, 当开发一个爱好网站时,我遇到了以下问题。 为防止未经授权的用户访问服务器上的图像文件,我将包含图像的文件夹设置为拒绝 – 全部在nginx中。 这工作正常,但是当我使用下面的PHP脚本来访问该文件夹中的图像文件,Chrome随机拒绝加载它们给出以下错误:'net :: ERR_CONTENT_LENGTH_MISMATCH'。 随机我的意思是有时图像将加载罚款。 我已经尝试在readfile()调用之前和之后刷新输出缓冲区,但没有任何东西似乎解决了这个问题。 提前谢谢帮助我! PS:如果你想看到更多的源代码/configuration文件只是让我知道。 PHP脚本: <?php if(!empty($_GET['tconst'])) { //Included login script contains this method if(login_check($mysqlisecure)) { $tconst = preg_replace( '#[^.\w]#', '', $_GET['tconst'] ); $file = "{$_SERVER['DOCUMENT_ROOT']}/content/posters/{$tconst}.jpg"; if (file_exists($file)) { $filesize = filesize($file); header('Expires: '.gmdate('D, d MYH:i:s \G\M\T', time() + (60 * 60 * 24))); header("Content-Type: image/jpeg"); header("Content-Length: […]

在webpack中使用CommonsChunkPlugin时,我们是否需要Etag和Last-Modified标题?

我正在使用webpack捆绑所有我的资产文件,所以我得到了这样的东西。 bundle.7fb44c37b0db67437e35.js vendor.495e9142a1f8334dcc8c.js styles.bc5b7548c97362b683f5582818914909.css 我在名称中使用chunkhash,所以当浏览器caching一些东西时,它不会再次caching直到哈希已经改变。 例如,如果我改变样式的东西,捆绑文件和部署,只有样式的散列会改变,其他人不会这样浏览器将再次从服务器请求样式文件,其余的将从内存caching中使用。 在响应标题我也有Etag和最后修改 ,他们改变每次我为每个文件部署应用程序。 我应该从响应中删除它们吗? 这可以混淆浏览器联系服务器,看看文件是否已经改变,即使哈希仍然是相同的?

自相矛盾的CORS错误:没有“Access-Control-Allow-Origin”出现或者“Access-Control-Allow-Origin”头包含多个值

我目前正在与NGINX和Node合作。 在我的NGINXconfiguration中,我将如下所示添加allow-origin标头,然后将其传递给包含Node应用程序的授权端口: location /auth { add_header Access-Control-Allow-Origin *; proxy_pass http://watchdog:3000; } 在我的Node中间件中,我也设置了头部来接受任何来源: app.use((req, res, next) => { res.setHeader('Access-Control-Allow-Origin', '*'); next(); } 当我这样做,我的Chrome正确地抱怨,我设置标题两次: The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed. 很明显,在NGINX和Node中设置头是多余的。 然而,令人着迷(令人沮丧的是)当我在NGINX头文件中删除Node中间件时 ,出现以下Chrome控制台错误: No 'Access-Control-Allow-Origin' header is present on the requested resource. 所以基本上这个错误声称:1)头部设置过多,2)头部根本没有设置。

nginx大标题响应

“从上游读取响应报头时,上游发送的报头过大” 当我尝试从Facebook进行身份validation时,我总是收到这个消息。 我增加了我的缓冲区: proxy_buffer_size 256k; proxy_buffers 8 256k; proxy_busy_buffers_size 512k; fastcgi_buffers 8 256k; fastcgi_buffer_size 128k; 但似乎没有帮助。 任何想法为什么这可能发生? nginx.conf文件: user www-data; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; # multi_accept on; } http { include /etc/nginx/mime.types; proxy_buffer_size 256k; proxy_buffers 8 256k; proxy_busy_buffers_size 512k; fastcgi_buffers 8 256k; fastcgi_buffer_size 128k; access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush […]

什么是sys / user.h用于?

我正在检查一个linux应用程序的代码,并且在其中一个代码文件中看到#include。 我试着在opengroup.org上查找它,但是我找不到它,这是sys目录的样子: http : //www.opengroup.org/onlinepubs/000095399/basedefs/sys/ 。 我想这不是标准的头文件,但我检查了我的/ usr / include / sys,它在那里。 它做什么和它用于什么? 如果你能为我提供一些手册,我将不胜感激。 谢谢。

通过查找命令在AWK上应用Unix头

我想在find给出的文件列表中输出前10行的AWK命令,使用下面的代码片段: $ find . -name "*.txt" -print -exec awk '$9 != ""' \| head -n10 {} \; 还要注意,我想打印出正在处理的文件名。 但为什么我得到这样的错误: awk: cmd. line:2: fatal: cannot open file `|' for reading (No such file or directory) ./myfile.txt 什么是正确的方法来做到这一点? 我在pipe道前试了一下没有反斜杠。 它仍然给了一个错误: find: missing argument to `-exec' head: cannot open `{}' for reading: No such file or directory head: […]

找不到头<linux / kfifo.h>

在我的linux( 3.16.0-38-generic#52〜14.04.1-Ubuntu )上,我通过以下方式包含了kfifo头文件: #include <linux/kfifo.h> 根据linux-module-h-no-such-file-or-directory ,我还通过以下方式安装了内核头文件: sudo apt-get install linux-headers-$(uname -r) 该文件位于: /usr/src/linux-headers-3.16.0-38/include/linux/kfifo.h 但是,编译时仍然找不到头文件: kfifo_test.c:5:25:致命错误:linux / kfifo.h:没有这样的文件或目录 任何帮助? 谢谢。 @Update 看来gcc没有find头文件。 当通过编译时: gcc -I "/usr/src/linux-headers-3.16.0-38/include/" kfifo_test.c 它发现linux/kfifo.h ,但无法findasm/linkage.h linux/kfifo.h我猜是linux/kfifo.h使用的。 在从/usr/src/linux-headers-3.16.0-38/include/linux/kernel.h:6:0包含的文件中,从/usr/src/linux-headers-3.16.0-38/include/linux /kfifo.h:53,from kfifo_test.c:7:/usr/src/linux-headers-3.16.0-38/include/linux/linkage.h:7:25:致命错误:asm / linkage.h:无此文件或目录 然后,当通过编译时添加另一个-I选项: gcc -I"/usr/src/linux-headers-3.16.0-38/include/" -I"/usr/src/linux-headers-3.16.0-38/arch/x86/include/" kfifo_test.c find了asm/linkage.h ,但是recursion地发生了更多的错误。 (例如fatal error: asm/early_ioremap.h: No such file or directory )。

我们可以修改limits.h吗? 会产生什么影响?

假设我们想要改变每个uid可以同时执行的最大进程数的值,如果我们在limits.h中修改CHILD_MAX值,该怎么办? limits.h中的值是为了让我们知道“限制”而设置的,还是我们实际上可以用它来操纵我们的系统? 我认为,由于内核没有重新编译,所以我们不应该以这种方式改变系统行为。

将Perl脚本输出pipe道打印为10行后,将会杀死脚本

我的Perl脚本输出并logging了很多行文本,并且在END块中做了一些清理和压缩一些日志。 问题是当你在命令行上做这样的事情时: perl myscript.pl | head -n 10 这会导致脚本在输出10行时立即死掉,所以END块不会被执行,日志也不会被压缩。 有没有办法解决这个问题,并确保我的END块中的代码仍然执行?

如何练习编写真正的Linux设备驱动程序?

我是一名在Linux内核编程方面具有丰富经验的中级程序员。 在实习期间,我主要参与debugging内核和驱动程序代码。 我最近完成了罗伯特·洛夫的“内核开发”一书的研究。 我是通过Jonathan Corbet的“Linux设备驱动程序手册”的一半。 但是我现在面临一个令人不安的问题。 这些书都没有教会我如何真正写出真正的 (硬件)设备驱动程序。 LDD3e书告诉我如何编写基于内存的软件驱动程序和sysfs接口,我很擅长。 那么我从哪里开始? 有什么要求,我如何去做呢? PS:我已经开始阅读“Sreekrishnan Venkateswaran的基本Linux设备驱动程序”