gpt4 book ai didi

apache - 使用 Apache+SSL 执行 CGI 脚本

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:28 25 4
gpt4 key购买 nike

我在尝试通过 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 加载正确,因为我已经尝试过其他 web 应用程序并且它们在 https 中顺利运行,问题是这个使用 proxy.cgi 的应用程序

奇怪的是,当我启动 apache 时,一开始它会正常工作,没有任何问题,但一段时间后(我不确定它是否取决于时间或请求数量,尽管在测试后我会说它是前者)当 javascript 代码调用此 proxy.cgi 脚本时,请求将卡在那里,最后由于“超时”而中止。

我是否需要启用任何其他选项才能通过 https 执行 cgi 脚本?有什么我想念的吗?我可以放置 proxy.cgi 代码,但我认为它没有任何关系,因为它已被证明可以正常工作,这里的问题是启用 SSL 后,它不会被执行。

感谢阅读!

最佳答案

首先,感谢 Joseph Myers 的建议,即使他们没有提供解决方案,他们也帮助我找到了解决方案。他所说的关于僵尸进程的内容是有道理的,在深入了解之后我意识到它没有在 apache 启动时加载 mod_cgid,而是加载了 mod_cgi。区别非常明显,知道(在查看 httpd 文档之后)mod_cgid

creates an external daemon that is responsible for forking child processes to run CGI scripts

它似乎也是默认的,而不是 cgi。我不记得我自己改变了它,但天知道,它现在起作用了!

tl;博士,不要使用 mod_cgi!请改用 mod_cgid!

关于apache - 使用 Apache+SSL 执行 CGI 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15379502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com