-1
A
답변
2
컴파일 된 바이너리 파일을 nginx로 제공하려면 FCGI라는 다른 서버를 실행하고 서비스 할 각 바이너리의 경로를 말한 다음 해당 서버에 대한 프록시 연결로 nginx를 구성해야합니다.
예 구성 :
http
{
server
{
listen 80;
server_name localhost;
location/
{
fastcgi_pass 127.0.0.1:8000;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
}
}
}
당신은 말할 FCGI 당신과 같이 제공하고자하는 바이너리 : 요청이 성공적으로 바이너리로 리디렉션되면
이spawnfcgi -a 127.0.0.1 -p 8000 -f /path/to/binary
, 간단한 인사 세계가 같이 기록 될 수 있습니다 그래서 :
#include <stdio.h>
int main (int argc, char **argv)
{
printf ("Content-type: text/html\r\n\r\n");
printf ("<h1>Hello, world!</h1>");
return 0;
}
각각 GET과 POST 데이터를 처리하기 위해, 당신은 파를해야합니다 환경 변수 QUERY_STRING
및 표준 입력에서 각각 찾습니다. POST 데이터의 길이는 환경 변수로 지정됩니다. 예 :
printf ("My GET data is: %s<br>", getenv ("QUERY_STRING"));
int len = atoi (getenv (CONTENT_LENGTH));
char *buf = malloc (len + 1);
read (0, buf, len);
buf[len] = 0;
printf ("My POST data is: %s<br>", buf);
제 생각에는 nginx가 CGI를 처리하기위한 최적의 선택이 아닙니다. lighttpd을 살펴보십시오.
관련 문제
- 1. HTTP 요청 처리 방법
- 2. http 게시 요청 처리
- 3. HTTP 요청 처리
- 4. Nginx에서 nodejs 요청 헤더를받습니다.
- 5. HTTP 요청 개체 및 로컬 요청 처리
- 6. HTTP 요청 및 응답 처리
- 7. HTTP 중개자의 요청 처리 모델
- 8. Java에서 HTTP 요청 리디렉션 처리
- 9. nginx에서 부두로 요청 배송을하는 방법
- 10. Gtk + C로 파일 처리
- 11. 기본 HTTP 서버에서 CGI 요청 처리
- 12. Node.js : 노드에서 보내는 HTTP 요청 처리
- 13. C# 콘솔 응용 프로그램에서 HTTP 요청 처리
- 14. 처리 비동기 3 자 HTTP 요청
- 15. asp.net에서 HTTP 404 잘못된 요청 오류 처리
- 16. C : HTTP 요청 및 응답 처리
- 17. Silverlight에서 순차적으로 여러 비동기 HTTP 요청 처리
- 18. Android에서 장기 실행 HTTP 요청 취소 처리
- 19. 파이썬에서 다중 처리 HTTP get 요청
- 20. Node.js 아웃 바운드 http 요청 동시 처리
- 21. nginx에서 요청 수락 헤더를 어떻게 설정합니까?
- 22. HTML http 요청과 XML http 요청 사이의 보안 처리 차이점
- 23. HTTP 응답의 크기를 C로 얻으십시오
- 24. Nginx에서 HTTP 로의 TCP 연결을 전진
- 25. Cocoa/objective-C로 HTTPS 요청
- 26. Nginx에서 로컬 씬 서버로 패스 요청
- 27. Node.js를가 HTTP 요청
- 28. Apache에서의 잘못된 HTTP 요청
- 29. Nginx에서 SSH를 통한 HTTP 서비스 제공 하시겠습니까?
- 30. nginx에서 헤더 (HTTP) 추가 및 사용
고맙습니다. 귀하의 의견은 매우 유용합니다 !! – Hernan