X-Sendfile 헤더가 작동하는지 테스트합니다.
X-Sendfile이 스크립트(PHP)에 의해 웹 서버에 반환된 요청을 적절하게 처리하고 있는지 여부를 확인하는 방법을 찾고 있습니다.이미지는 정상적으로 처리되고 있습니다만, 헤더는 컬로 표시됩니다.
$ curl -I http://blog2.stageserver.net/wp-includes/ms-files.php?file=/2011/05/amos-lee-feature.jpg
HTTP/1.1 200 OK
Date: Wed, 04 Jan 2012 17:19:45 GMT
Server: Cherokee/1.2.100 (Arch Linux)
ETag: "4dd2e306=9da0"
Last-Modified: Tue, 17 May 2011 21:05:10 GMT
Content-Type: image/jpeg
Content-Length: 40352
X-Powered-By: PHP/5.3.8
Content-Disposition: inline; filename="amos-lee-feature.jpg"
배열
Fast CGI에서 PHP-FPM 5.3.8을 사용하는 Cherokee 1.2.100:
cherokee.conf: vserver!20!rule!500!handler!xsendfile = 1
> > > Handler (vServer > Behavior > Extensions php > Handler)로 설정합니다).[ X - Send file ][ check ]) X - file ][ ]
Wordpress 네트워크 / WPMU 3.3.1:
define('WPMU_SENDFILE',true);
설정에는 이 있습니다.wp-config.php
의 wp-settings.php
포함되어 있습니다.이것은 WP의 wp-includes/ms-files에서 다음 코드를 실행하도록 트리거합니다.php:50은 특정 블로그의 파일을 제공합니다.
header( 'X-Sendfile: ' . $file );
exit;
은, ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★이 스니펫은 폐기용 헤더를 추가해 주세요.exit();
가 위의 컬call에는 . Ms" 입니다.php 드 the. 과 같습니다추가된 코드는 다음과 같습니다.
header('Content-Disposition: inline; filename="'.basename($file).'"');
조사.
다음과 같은 것이 있습니다.
- 설정 변경 후 php-fpm / cherokee daemons 재부팅.
- php.net/readfile에서 코멘트의 트릭을 몇 가지 시도하고,의 심플한 헤더를 대체.
ms-files.php
예를 들어 보다 완전한 코드를 제공합니다.- php.net/manual/en/function.readfile.php
- www.jasny.net/articles/how-i-php-x-sendfile/
- * codeutopia.net/blog/2009/03/06/sending-files-better-apache-mod_xsendfile-and-php/*
- 이미지가 정상적으로 동작하고 있기 때문에 적용되지 않을 것 같은데 [체로키 지원][5]를 확인하고 [6] 압축을 테스트했습니다.저도 lighttpd 게시물에서 의심스러울 정도로 비슷한 문제를 발견했습니다.
- * cherokee-project.com/doc/other_goodies.html*
- code.google.com/p/cherokee/issues/detail?id=1228
- webdevrefinery.com/forums/topic/4761-x-sendfile/
- 여기 SO에서 헤더가 벗겨진 것을 나타내는 블러브를 발견했습니다.
- stackoverflow.com/questions/7296642/django-understanding-x-sendfile
- 위의 헤더가 curl, wget, Firefox, Chrome 및 web-sniffer.net에서 일치하는지 테스트.
- 평판이 좋지 않아 아직 2개 이상의 링크를 올릴 수 없다는 것을 알게 되었습니다.
문의사항
X-Sendfile
올바르게 동작하고 있는 경우, 헤더에 포함되어 있는지, 또는 삭제되어 있는지를 확인합니다.- 액세스 로그를 사용하여 다음 중 어느 쪽을 선택할 수 있는지 여부를 판단할 수 있습니까?
X-Sendfile
작동합니까?
여기서 일반적인 트러블 슈팅 힌트나 정보를 찾고 있습니다만, 반드시 PHP/Cheroke에만 해당되는 것은 아닙니다.
갱신하다
테스트 환경 또는 샌드박스 환경에서 X-Sendfile 또는 X-Accel-Redirect를 확인하는 적절한 방법을 찾았습니다.X-Sendfile을 비활성화하고 헤더를 확인합니다.
Cherokey에서 Allow X-Sendfile을 비활성화하는 경우:
$ curl -I http://blog2.stageserver.net/wp-includes/ms-files.php?file=/2011/05/amos-lee-feature.jpg
HTTP/1.1 200 OK
Date: Fri, 06 Jan 2012 15:34:49 GMT
Server: Cherokee/1.2.101 (Ubuntu)
X-Powered-By: PHP/5.3.6-13ubuntu3.3
Content-Type: image/jpeg
X-Sendfile: /srv/http/wordpress/wp-content/blogs.dir/2/files/2011/05/amos-lee-feature.jpg
Content-Length: 40352
브라우저에는 이미지가 로드되지 않지만 헤더가 있음을 알 수 있습니다.Allow X-Sendfile(X 전송 파일 허용)을 다시 활성화하면 X-Sendfile이 작동 중임을 확인할 수 있습니다.
github의 소스에 따르면 X-Sendfile 헤더는 삭제됩니다.
파일을 올바르게 스킴하고 있는 경우는, 디버깅 모드로 컴파일 되어 있는 경우에만 로그의 성공이 됩니다.
xsend file을 사용하거나 사용하지 않고 대용량 파일을 보낼 때 메모리 사용량을 확인할 수 있습니다.
단순히 파일을 사용하는 이유 중 하나, 즉 수신자가 파일의 위치를 알지 못하는 사이에 파일을 제공하는 것을 방해한다는 이유만으로 이러한 파일이 제거되고 있습니다.
언급URL : https://stackoverflow.com/questions/8733580/test-if-x-sendfile-header-is-working
'programing' 카테고리의 다른 글
각도 테스트JS는 Jasmine 2.0에서 약속 (0) | 2023.03.12 |
---|---|
http post 요청의 요청 페이로드에 json 데이터를 전달하는 방법 (0) | 2023.03.12 |
AngularJS - 커스텀 디렉티브에서 ngModel 값을 변경하는 방법 (0) | 2023.03.12 |
@TestPropertySource는 봄 1.2.6의 AnnotationConfigContextLoader를 사용한 JUnit 테스트에서 작동하지 않습니다. (0) | 2023.03.12 |
각도 JS: js 파일을 부분적으로 로드하는 방법 (0) | 2023.03.12 |