seu pedido é um tanto falso. veja seu código de status: 400.
verifique seu $ request - variable (Tudo por trás de "/test.php?FileName=")
você pode querer usar $ uri em vez
Eu fiz tudo igual, mas eu estou tentando proxy_pass no mesmo servidor, não para o diferente (como neste exemplo é proxying do nginx para o apache), é mesmo possível?
Olhando para o log de acesso, ele age como se não estivesse me dando nenhuma resposta, estou tentando baixar um arquivo de 100MB em /file.bin, obrigado por todas as sugestões!
Configuração Nginx
server {
listen 80;
server_name www.somepage.com;
access_log /var/log/nginx/www.somepage.com.access_log;
error_log /var/log/nginx/www.somepage.com.error_log;
root /var/www/www.somepage.com;
index index.php index.htm index.html;
location / {
post_action @afterdownload;
}
location @afterdownload {
proxy_pass http://www.somepage.com/test/test.php?FileName=$request&ClientIP=$remote_addr&body_bytes_sent=$body_bytes_sent&status=$request_completion;
internal;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/www.somepage.com$fastcgi_script_name;
include fastcgi_params;
}
}
e /test/test.php para inserir valores no mysql:
<?php
require_once('../database.php');
mysqli_query($con, "INSERT INTO downloading (info) VALUES ('".mysqli_real_escape_string($con, serialize($_GET))."')");
?>
EDIT: parece que usar o endereço IP em vez do DNS me ajudou a vê-lo no access_log
[01/Sep/2013:12:47:01 +0200] "GET /test/test.php?FileName=GET /file.bin HTTP/1.1&ClientIP=89.176.81.33&body_bytes_sent=14161738&status= HTTP/1.0" 400 166 "-" "-"
mas ainda nada está sendo armazenado no banco de dados, enquanto navega manualmente no navegador para /test/test.php?some=value lojas no banco de dados ...
EDIT: isto é o que eu estou recebendo no log de erro agora:
2013/09/02 11:27:23 [error] 9963#0: *658 upstream sent no valid HTTP/1.0 header while reading response header from upstream, client: 89.176.81.33, server: www.server.com, request: "GET /file.bin HTTP/1.1", upstream: "http://94.142.233.120:80/test/test.php?FileName=GET /file.bin HTTP/1.1&ClientIP=89.176.81.33&body_bytes_sent=89244088&status=OK", host: "www.server.com"
seu pedido é um tanto falso. veja seu código de status: 400.
verifique seu $ request - variable (Tudo por trás de "/test.php?FileName=")
você pode querer usar $ uri em vez
Tags nginx