簡體   English   中英

Socket.io聊天應用程序,路徑上的Apache反向代理

[英]Socket.io chat app, apache reverse proxy on path

我使用socket.io作為使用localhost:3000的聊天應用程序,在大多數情況下都可以正常工作,但是對於某些用戶,端口3000被阻塞,因此聊天應用程序無法正常工作。

相反,我想使用反向代理來獲取它來加載帶有路徑的URL,但是我無法使其正常工作。 我查看了很多示例,但是它們都沒有起作用,因此我真的希望有人可以引導我朝正確的方向發展。

我想從這里開始:

https://mydomain.co.uk:3000

對此

https://mydomain.co.uk/chatapp

這就是我放在default-ssl.conf中的內容

<Location /chatapp>
    Order allow,deny
    Allow from all
    ProxyPass http://localhost:3000/
    ProxyPassReverse http://localhost:3000/
</Location>

但是,當我導航到https://mydomain.co.uk/chatapp時,出現以下錯誤消息。

在此處輸入圖片說明

我需要在服務器或客戶端代碼上進行更改嗎?

目前,我的服務器代碼以以下內容開頭...

// Setup basic express server
var fs = require('fs');
var express = require('express');
var app = express();
var path = require('path');
var server = require('https').createServer({
    key: fs.readFileSync('/etc/apache2/ssl/**********************************.key'),
    cert: fs.readFileSync('/etc/apache2/ssl/**********************************.crt'),
    ca: fs.readFileSync('/etc/apache2/ssl/**********************************.crt'),
    requestCert: false,
    rejectUnauthorized: false
}, app);
var io = require('../..')(server);
var port = process.env.PORT || 3000;

server.listen(port, function () {
    console.log('Server listening at port %d', port);
});

// Routing
app.use(express.static(path.join(__dirname, 'public')));

// Chatroom

var numUsers = 0;

io.on('connection', function (socket) {
    var addedUser = false;

我的客戶代碼只是像這樣創建套接字...

var socket = io();

對於任何有興趣的人,我都找到了解決方案。

問題是我的socket.io配置為僅通過https工作,因此,當反向代理嘗試連接時,它試圖轉到http:// localhost:3000 ,並且失敗。

解決方法是更改​​此...

var server = require('https').createServer({
key: fs.readFileSync('/etc/apache2/ssl/**********************************.key'),
cert: fs.readFileSync('/etc/apache2/ssl/**********************************.crt'),
ca: fs.readFileSync('/etc/apache2/ssl/**********************************.crt'),
requestCert: false,
rejectUnauthorized: false
}, app);

為此...

var server = require('http').createServer(app);

然后,代理人開始活躍起來並開始工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM