当我在Apache下运行一个cgi脚本时,任何输出都会快速发送到客户端。 但是,当我用fcgiwrap在nginx下运行它时,似乎没有任何东西被发送到客户端,直到脚本完成或产生大量的输出。 以下脚本可以看到这种行为。 #!/bin/bash echo "Content-type: text/html" echo while : do echo this is a test. sleep 5 done 在apache下,客户端将每5秒钟获取一些数据。 在nginx和fcgiwrap下,我没有得到任何数据和网关超时。 nginx和fcgiwrap是来自Debian Jessie的软件包。 版本1.1.0-5和1.6.2-5 + deb8u4 所以问题 有谁知道这是什么负责这种行为? nginx本身? fcgiwrap? 都? 是否可以通过configuration来修复? 如果这是一个fcgiwrap问题,有没有替代cgi包装可用,不会遇到问题?
这不是一个问题,但想知道为什么会发生这种情况。 我们有一个运行WHM的专用服务器。 如果我直接通过IP地址访问服务器,我会自动redirect到 http://xx.xxx.xx.xxx/ cgi-sys / defaultwebpage.cgi 我知道如何编辑这个页面(这不是问题) 我只是好奇,为什么我redirect到这个.cgi页面,而不是简单地保持@ xx.xxx.xx.xxx/并查看我的默认“着陆页”,如果你喜欢。 我可以更改什么设置,以便如果有人访问我的服务器IP,他们不会被redirect到xx.xxx.xx.xxx / cgi-sys / defaultwebpage.cgi 例如,如果您访问173.194.37.104(谷歌),您查看谷歌的主页,但url保持不变。 希望这是有道理的。 谢谢
我正在尝试为PHP 5.1.4中的一些旧项目设置开发环境。 它需要在Apache下运行CGI(或fastcgi),我想有cli二进制文件。 我的configuration选项是: ./configure \ –prefix=/usr/local/php-dev \ –with-config-file-path=/usr/local/php-dev/etc \ –enable-bcmath \ –enable-calendar \ –enable-dbase \ –enable-exif \ –enable-fastcgi \ –enable-force-cgi-redirect \ –enable-ftp \ –enable-gd-native-ttf \ –enable-mbstring \ –enable-memory-limit \ –enable-soap \ –enable-track-vars \ –enable-trans-sid \ –enable-versioning \ –enable-xslt \ –with-curl=/usr/local/php-libs/curl-7.12.2 \ –with-freetype \ –with-freetype-dir \ –with-gd \ –with-iconv \ –with-jpeg-dir \ –with-mhash \ –with-mime-magic […]
我有一个运行在Ubuntu Server Lucid上的Nagios实例作为监视我们的Windowsnetworking的虚拟机。 我想有一些由内部Intranet上提供的trends.cgi文件制作的特定图表。 但是,当我做一个链接到这些Apache / Nagios之一需要凭据来访问这些(有道理)。 我如何做到这一点,使非authentication用户可以请求graphics,而无需login到Nagios。 我也不想让任何我不需要的东西。 谢谢
这里是我当前的Apacheconfiguration的一部分,指的是cgi-bin的东西。 这个信息被包含在debian的默认configuration中。 这应该在现场/生产机器上删除? ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
我在EC2上运行的Amazon Linux AMI上安装了stockt lighttpd安装程序。 我做的唯一configuration更改是启用CGI支持。 然后有一个自定义的CGI工具(用C语言编写)放在/ cgi-bin /中,从外部调用,并输出gzip的JSON。 这个工具定期输出数据,每10-20秒说一次,但每次只有几百字节。 问题是,在CGI标准输出和什么lighttpd返回到客户端之间,事物被缓冲,一次达到大约4KB。 不幸的是,这个系统在Amazon Elastic Load Balancer之后,它不允许空闲连接超过60秒。 由于缓冲,如果服务器在60秒内没有返回任何内容,连接就会被终止,客户端也不会得到任何东西。 那么如何追踪这个缓冲设置并将其显着降低呢? 我尝试改变一些lighttpdconfiguration参数,甚至改变内核中的“net.ipv4.tcp_wmem”,但没有任何工作。
我有一台384kbps ADSL的四核Ubuntu服务器上运行的Apache。 用户通过网页forms上传文件,并通过各种作为CGI脚本运行的Python程序进行处理。 一些脚本是CPU密集型的,几分钟内运行在100%(在一个内核上) 这些将结果通过电子邮件发送给用户,因此HTTP会话不会保持打开状态。 一些脚本需要更大的文件(总共几MB)上传。 目前,使用率非常低,每天点击次数很less,如果有的话,甚至比同时使用这些服务的用户还要less。 我需要在中期为更多的用户提供这些服务。 我怀疑我build立的基础设施不容易扩展。 例如,一个用户请求我允许将多个file upload到CPU密集型程序。 这意味着机器将在较长的时间内忙碌。 如果其他用户也将多个file upload到同一个脚本,机器可能会变得非常忙,时间更长。 我知道讨论式的问题在这里是不允许的,所以我想问一下以下的具体问题: 在提供这些服务时,我需要考虑哪些策略或方法?也就是说,我需要完全重新考虑基础设施吗? 如果我没有做任何修改,每个10人上传10个文件到CPU密集型程序中,例如,CGI脚本创build的所有10个线程是否都能够愉快地(如果缓慢地)运行10个input文件呢? 让服务器以100%的CPU使用率运行一两小时或三小时是否“安全”?
我希望能够从/ var / www / cgi-bin之外的其他位置运行cgi脚本,例如: /var/www/folder1/cgi-bin /var/www/folder2/cgi-bin /var/www/folder3/cgi-bin 我如何去configuration服务器来做到这一点? 编辑:这是从我个人托pipe的Web服务器上的网站运行CGI脚本。
我有一个名为index.cgi的CGI脚本 它正在尝试读取名为10.128.0.242.2012.sep.20.downloaded.txt的日志文件,path为/var/log/trafcount/ 看来它被selinux阻塞了。 审计日志显示类似 avc:denied {read} for pid = 11620 comm =“index.cgi”name =“10.128.0.242.2012.sep.20.downloaded.txt”dev = dm- 0 ino = 395264 scontext = unconfined_u:system_r:httpd_sys_script_t:s0 tcontext = unconfined_u:object_r:var_log_t:s0 tclass = file 我怎样才能让这个脚本完全访问/ var / log / trafcount下的所有文件?
我正在创build一个有大量小工具的网站。 一种是使用与自然语言工具包(nltk)进行交互的Python cgi脚本的工具,该工具是磁盘和CPU密集型的。 我有其他服务不那么密集。 在客户端,这些限制了JavaScript限制。 创buildbot的恶意或非智能用户可以直接build立连接。 我想阻止这个尽可能低的水平,但我需要它是每个目录(CGI脚本坐在旁边的index.html文件)。 我也将有一个防火墙阻止虐待IP地址发出请求。 我想这个返回一个简单的429响应与一个空的JSON对象作为正文。 我还想在其中包含其他规则,如30秒接收到发送时间,否则closures连接。 我如何在Debian的lighttpd服务器上实现这个function?