Apache を介して CGI スクリプトを実行しようとすると、いくつか問題が発生します。このスクリプトは、ドメイン外で AJAX リクエストを作成できる OpenLayers の proxy.cgi と同じです。このスクリプトは、通常の apache 構成 (SSL なし) を使用してエラーなくスムーズに実行されますが、! SSL を有効にすると、動作がおかしくなり始めます。
最初に、SSL の apache 構成を示します。
NameVirtualHost *:443
<VirtualHost *:443>
ServerName 172.22.1.37
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /etc/apache2/ca/apache-server.crt
SSLCertificateKeyFile /etc/apache2/ca/apache-server.key
SSLCertificateChainFile /etc/apache2/ca/proba.crt
SSLCACertificateFile /etc/apache2/ca/proba.crt
AddType application/x-x509-ca-cert .crt
AddType application/x-pkcs7-crl .crl
Alias /mapviewer "/var/www/mapviewer/"
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
AddHandler cgi-script .cgi
DocumentRoot /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride All
Options +ExecCGI -Multiviews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
したがって、SSL は正しくロードされます。他の Web アプリケーションを試してみたところ、それらは https でスムーズに動作するため、問題は proxy.cgi を使用するこのアプリケーションにあります。
奇妙なことに、Apacheを起動すると、最初は問題なく正しく動作しますが、しばらくすると(時間やリクエスト数に依存するかどうかはわかりませんが、テスト後は前者だと思います) JavaScript コードがこの proxy.cgi スクリプトを呼び出すと、リクエストはそこでハングアップし、最終的に「タイムアウト」のために中止されます。
https 経由で cgi スクリプトを実行するために、他のオプションを有効にする必要がありますか? 私が欠けているものはありますか?proxy.cgi コードを配置できますが、正しく動作することが証明されているため、何も関係がないと思います。ここでの問題は、SSL が有効になっていると実行されないことです。
読んでくれてありがとう!