Jump to content
php.lv forumi

Proxy Error


Recommended Posts

Problēma ir šāda: ir kods, kurš veic filtrāciju. Datu apjoms var būt ļoti liels. Respektīvi, ja lietotājs ir padevis lielu datu apjomu, tad kods izpildās līdz 10 minūtēm. Tātad ir proxy-serveris, uz kura stāv kods, bet pēc apmēram 2 minūtēm FF izvada šādu paziņojumu:

 

Proxy Error

The proxy server received an invalid response from an upstream server.

 

The proxy server could not handle the request GET filter.php.

 

Reason: Document contains no data

 

Admins teica izveidot .htaccess failu, lai varētu palielināt max_execution_time, to izveidoju, bet tāpat FF izvada iepriekš minēto paziņojumu.

.htaccess saturs:

php_value max_execution_time 600

 

Kur varētu būt problēma?

---------------------------------------

Vai ir kāds saskāries ar tādu pašu vai līdzīgu problēmu?

Edited by Dooling
Link to comment
Share on other sites

Nu tad pričom vispār jaukt galvu un pieminēt kaut kādu proxy, ja tam nemaz nav nekāda sakara ? :)

 

Bet vispār tas kļūdas paziņojums ir tāds, it kā tu izmantotu to serveri kā proxy un caur to mēģini pieprasīt skriptu no cita servera. Nez, nesaprotu, kā tev tur īsti tur viss darbojas.

Link to comment
Share on other sites

Faktiski nav tāds jēdziens kā "MySQL darbojas caur proxy" (ja piesienas vārdiem tad protams ir mysql-proxy aplikācija, taču tās uzdevums ir pilnīgi cits).

 

Tātad jautājums vēlreiz lai precizētu - šis erorrs nāk no:

 

"Proxy Error

The proxy server received an invalid response from an upstream server."

 

 

a) prokša kas nolikts pirms webservera? (parasti izmanto Squid vai dažus citus proxy softus lai paatrinātu (accelerate) lēnas weblapas - t.i. iekešotu html lapas u.c. statiskas lietas)

 

vai

 

b) no prokša kas ielikts tavā pārlukā (vai arī teiksim ja ir kāds uzņēmums tad proxis var būt transparents (caurspīdīgs) uz visu uzņēmumu?

 

 

 

 

Lai vai kā problēma ir visai vienkārša - Proxim ir ielikts kaut kāds atbildes (response) timeouts.. attiecīgi viņs nevar sagaidīt nekādu atbildi no webserva un izmet erroru šajā gadijumā max_execution_time nepalīdzēs, jo tas ierobežo/palielina tikai PHP maksimālo izpildes laiku un nejau PHP ir tas kas sūdzās.

 

Risinājumi varētu būt:

a) palielināt proxy timeoutus (atkarībā no softwares kas tiek izmantota ja piemēram Squid tad jāmaina request_timeout / read_timeout (lai gan noklusēti tiem vajadzētu būt diezgan lieliem))

b) ja php skripts ir ilgi strādājoš tad parasti palīdz progresa gaitā izvadīt kaut kādus datus (kaut vai punktiņus vai ko tādu)

Link to comment
Share on other sites

Koda gabals, kurš tiek izsaukts:

 

<?php
//GARŠ KODS, KUR NOTIEK EXCEL dokumenta satura ģenerēšana
// mainīgais $content - excela dokumenta saturs.

$name = "Dokuments";

$filename = $name.'.xls';

$path = "../excel/";
$filename_c = $path.$filename;

$handle = fopen($filename_c, 'w');
if (fwrite($handle, $content) === FALSE)
{
       echo "Nevar ierakstīt failā ($filename)";
       exit;
}
fclose($handle);

header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
header ("Content-type: application/x-msexcel");
header ("Content-Disposition: attachment; filename=\"" . $filename . "\"" );
readfile($filename_c);
exit;
?>

 

Output'us (echo "<br style='display:none;'/>") kodā esmu izveidojis visās iespējamās vietās, bet tā pati problēma. Varbūt header'os kaut kas jāmaina?

Link to comment
Share on other sites

×
×
  • Create New...