sed 's/\(\"[^" ]*\) \([^"]*\"\)/\1_\2/g' file
Advertencia :solo funciona con un espacio simple entre un par de comillas dobles.
Прежде всего, отключите обе службы на своем компьютере. затем измените их порты на что-то необычное и перезапустите их, например:
Приложение PHP на6821
Приложение NodeJS на6822
Пожалуйста, не забудьте открыть их на 127.0.0.1
! вы не должны открывать их на своем сетевом интерфейсе.
Установите nginx
как наиболее часто используемый Reverse Proxy
. В зависимости от вашего дистрибутива вы можете установить его с помощью одной из этих команд:
Для дистрибутивов на основе Debian:
$ sudo apt install nginx
Для дистрибутивов на базе Arch:
$ sudo pacman -S nginx
Опять же, полностью зависит от вашего дистрибутива, этот пакет может иметь свои собственные иерархические файлы. поэтому я дам вам только nginx.conf
в качестве основного файла конфигурации. Просто не забудьте скопировать исходный файл конфигурации с любым именем, которое вы предпочитаете, напримерnginx.conf.origin
$ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.origin
Теперь откройте /etc/nginx/nginx.conf
, удалите существующие конфиги и скопируйте в него эти конфиги:
user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
keepalive_timeout 15;
server {
listen 80 default_server;
server_name example.com;
location /mynodejs {
proxy_pass http://127.0.0.1:6822;
}
location /bugzilla {
proxy_pass http://127.0.0.1:6821;
}
}
}
Обратите внимание :Учтите, что я написал этот файл конфигурации с умом, и из-за этого вы, вероятно, столкнетесь с ошибкой, когда захотите запустить nginx. Если это так, пожалуйста, напишите комментарий здесь, поэтому я протестирую его.
Теперь просто перезапустите nginx! Вы получите то, что хотите.
Приложение php может оставаться там, где оно не было изменено.
При использовании Apache в качестве веб-сервера необходимо включить прокси-модули. Например, в Ubuntu
a2enmod proxy
a2enmod proxy_http
И измените свой виртуальный хост с помощью строк ProxyPass
и ProxyPassReverse
.
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot "/var/www/www.example.com/htdocs"
#nodejs app
ProxyPass /mynodejs http://127.0.0.1:8080/
ProxyPassReverse /mynodejs http://127.0.0.1:8080/
<Directory "/var/www/www.example.com/htdocs">
Options -Indexes +FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog "|/usr/bin/cronolog /var/www/www.example.com/logs/%Y-%m-%d/error_log"
CustomLog "|/usr/bin/cronolog /var/www/www.example.com/logs/%Y-%m-%d/access_log" combined
</VirtualHost>
Перезапустите апач /etc/init.d/apache2 restart
.