如何使用不同的端口测试 Apache 2.4?

如何使用不同的端口测试 Apache 2.4?

我已经设置好了服务器,现在我想使用 Apache2 作为我的 Perl 脚本的后端(nginx 太慢了,而且也不能使用 mod_perl)

因此,我已经安装了 Apache:

服务器版本:Apache/2.4.18

/etc/apache2/ports.conf, 我有:

Listen 8181

<IfModule ssl_module>
    Listen 8181
</IfModule>

<IfModule mod_gnutls.c>
    Listen 8181
</IfModule>

我的虚拟主机非常简单:

<VirtualHost 127.0.0.1:8181>

    LoadModule perl_module /usr/lib/apache2/modules/mod_perl.so

    LogLevel debug

    ServerName ultranerds.co.uk
    ServerAdmin [email protected]
    DocumentRoot /home/rachel/web/ultranerds.co.uk/public_html
    Alias /vstats/ /home/rachel/web/ultranerds.co.uk/stats/
    Alias /error/ /home/rachel/web/ultranerds.co.uk/document_errors/
    CustomLog /home/rachel/web/ultranerds.co.uk/logs/ultranerds.co.uk.bytes bytes
    CustomLog /home/rachel/web/ultranerds.co.uk/logs/ultranerds.co.uk.log combined
    ErrorLog /home/rachel/web/ultranerds.co.uk/logs/ultranerds.co.uk.error.log

    <Directory /home/rachel/web/ultranerds.co.uk/public_html>
        Options MultiViews FollowSymLinks
        AllowOverride all
        Require all granted
        AddHandler cgi-script .cgi .pl
        Options +ExecCGI
        Options FollowSymLinks
    </Directory>
    <Directory /home/rachel/web/ultranerds.co.uk/stats>
        AllowOverride All
    </Directory>

    <IfModule mod_ruid2.c>
        RMode config
        RUidGid rachel rachel
        RGroups www-data
    </IfModule>
    <IfModule itk.c>
        AssignUserID rachel rachel
    </IfModule>

</VirtualHost>

我已使用以下命令启用它:

a2ensite ultranerds.co.uk

netstat 显示它正在监听 8181:

netstat -nltp|grep 8181 tcp6 0 0 :::8181 :::* 监听 5747/apache2

重新启动 Apache 后,我希望能够在浏览器中访问 ultranerds.co.uk:8181(以检查其是否正常工作)

我错过了什么?我在 nginx 中收到此错误,因此我尝试调试 Apache 或我的 nginx 配置是否有问题:

读取上游响应头时上游过早关闭连接

更新:好的,我肯定做错了什么。如果我尝试:

山猫http://本地主机:8181

我刚刚得到:

警报!:意外的网络读取错误;连接中止。

我不明白为什么,因为我可以在这里看到:

 netstat -an | grep 8181 | grep -i listen
tcp6       0      0 :::8181                 :::*                    LISTEN

wget 也给我失败了:

获得http://127.0.0.1:8181 --2017-04-14 14:17:10-- http://127.0.0.1:8181/ 连接到 127.0.0.1:8181...失败:连接被拒绝。

我只是不明白发生了什么。防火墙似乎打开了,所以我一定错过了什么。我甚至在 apache2 的 ports.conf 文件中尝试过这个:

Listen 8181
Listen 0.0.0.0:8181
Listen 192.0.2.1:8181

netstat 显示它正在监听:

netstat -tulpn | grep :8181
tcp6       0      0 :::8181                 :::*                    LISTEN      16207/apache2

呃 :S

答案1

好吧,我最终找了一位服务器技术朋友来看一下。他主要说的是,我需要将 Apache 改为使用“prefork”而不是“event”运行:

a2dismod mpm_event
a2enmod mpm_prefork
a2enmod actions

我不太确定他是否还更改了其他内容,但似乎已经解决了问题。我不太确定为什么这会导致问题,但当我进行下一次服务器构建时,我会检查它是否有效,或者我是否遇到更多问题 :)

相关内容