我在尝试通过 apache 执行 CGI 脚本时遇到了一些问题。此脚本与 OpenLayers proxy.cgi 相同,它允许在自己的域之外发出 AJAX 请求。该脚本使用正常的 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 正确加载,因为我尝试过其他 webapps 并且它们在 https 中运行顺利,问题是这个使用 proxy.cgi 的应用程序
奇怪的是,当我启动 apache 时,一开始它会正常工作,没有任何问题,但过了一段时间(我不确定它是否取决于时间或请求数量,尽管经过测试我会说它是前者) 当 javascript 代码调用这个 proxy.cgi 脚本时,请求将挂在那里,最后,由于“超时”而中止。
我是否需要启用任何其他选项才能通过 https 执行 cgi 脚本?有什么我想念的吗?我可以放置 proxy.cgi 代码,但我认为它没有任何关系,因为它已被证明可以正常工作,这里的问题是启用 SSL 后,它不会被执行。
谢谢阅读!