Intereting Posts
Необходимо проанализировать файл ini для извлечения значений. PHPDoc: документирование функции с переменным числом аргументов искать все файлы и каталоги для создания эскизов в php PHP $ _SERVER неверен при загрузке PHP через mod_fcgid Я получаю сообщение «неопределенная переменная» PHP PHP Неустранимая ошибка: не удается переопределить функцию Как получить изображение DPI в PHP Какой метод сжатия использовать в PHP? PDO позиционные и именованные параметры как часть одного и того же подготовленного запроса? PHP SQL выбирает, где в массиве идентификаторов и имеет одинаковое значение столбца переменной Список всех файлов и папок в каталоге с рекурсивной функцией PHP Подключение базы данных MySQL MySQL Какая самая лучшая / самая быстрая таблица таблиц MySQL для временного / вращающегося хранилища, например, для управления сеансом? Не изменена переменная сеанса Показать запрос в строке таблицы (th)

как использовать node.js и php на одном и том же порту

Я установил node.js, socket.io и express.js на порт 12234, и это работает очень хорошо. Но теперь я хочу использовать php на странице на этом порту (12234), но я не знаю, как это сделать. У кого-нибудь есть решение?

извините за мой плохой английский, я Нидерланды и не очень хорошо по-английски.

Вы не можете запускать два приложения на одном и том же порту. Самый простой способ – прокси-HTTP-запросы к PHP, работающие на другом порту и прокси-серверные запросы к Socket.IO, работающие на другом порту.

Вот пример использования http-proxy . Обратите внимание, что это не будет работать на такие вещи, как flashsockets и длительный опрос XHR.

 var httpProxy = require('http-proxy') var server = httpProxy.createServer(function (req, res, proxy) { proxy.proxyRequest(req, res, { host: 'localhost', port: // whatever port PHP is running on }); }) server.on('upgrade', function (req, socket, head) { server.proxy.proxyWebSocketRequest(req, socket, head, { host: 'localhost', port: // whatever port Socket.IO is running on }); }); server.listen(80); 

Кроме того, вы можете перенаправить маршруты Express на PHP. Если PHP был запущен на порту 8080, например:

 app.get('/', function(req, res) { // send a HTTP get request http.get({hostname: 'localhost', port: 8080, path:'/', function(res2) { // pipe the response stream res2.pipe(res); }).on('error', function(err) { console.log("Got error: " + err.message); }); }); 

У вас может быть node.js, работающий как восходящий поток через nginx. Если вы используете nginx и php5-fpm.

 upstream node { server 127.0.0.1:8080; } location / { proxy_pass http://node; proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504; proxy_redirect off; proxy_buffering off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; } location ~ \.php$ { index index.php; root /var/www; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name; }