apache httpd-vhosts.conf谁只能从端口80重定向socket.io调用

时间:2017-04-17 16:14:48

标签: apache redirect proxy socket.io

我没有深入了解apache配置 经过++小时的google和实验并且变得紧张之后,我需要帮助确认使用端口80对我的“site-name”的所有请求总是在重定向到node.js socket.io服务器脚本时结束。

从浏览器我请求index.htm,它将执行socket.io的东西。

如何配置httpd-vhosts.conf以允许使用端口80调用php / js / html / ..(index.htm除外)为“site-name”而不是重定向到node.js?

(Xampp)Apache / 2.4.25(Win32)OpenSSL / 1.0.2j PHP / 5.6.30

httpd-vhosts.conf看起来像这样

<VirtualHost *:80>
ServerName site-name

RewriteEngine On
RewriteCond %{REQUEST_URI}  ^/socket.io            [NC]
RewriteCond %{QUERY_STRING} transport=websocket    [NC]
RewriteRule /(.*)           ws://localhost:8088/$1 [P,L]

ProxyPass            http://localhost:8088/
ProxyPassReverse         http://localhost:8088/

</VirtualHost>

的index.htm:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Socket.io</title>
    </head>

    <body>
        <h1>Communication with socket.io!</h1>

        <script src="http://site-name/socket.io/socket.io.js"></script>     <script>
var socket = io();
console.log("socketId: " +  socket.id);

socket.on('news', function (data) {
console.log(data);
socket.emit('my other event', { my: 'client-data' });
});

感谢您的帮助 吉

1 个答案:

答案 0 :(得分:0)

我通过简单地添加

找到了解决方案
# no proxy for php cgi-bin

ProxyPass           /php !

ProxyPass           /cgi-bin !