Node.js и PHP на порту 80 на одном сервере

sed 's/\(\"[^" ]*\) \([^"]*\"\)/\1_\2/g' file

Advertencia :solo funciona con un espacio simple entre un par de comillas dobles.

0
05.06.2019, 10:19
2 ответа

Прежде всего, отключите обе службы на своем компьютере. затем измените их порты на что-то необычное и перезапустите их, например:

  • Приложение 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! Вы получите то, что хотите.

2
28.01.2020, 02:30

Приложение 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.

1
28.01.2020, 02:30

Теги

Похожие вопросы