Я знаю, что этот предмет задает много раз, но я не нашел ответа, соответствующего моей потребности. Во-первых, я извиняюсь за свой английский.NodeJS у Apache
Я хочу запустить приложение-узел и (или много) другой обычный веб-сайт на VPS. Так что у вас несколько веб-сайтов на тех же VPS, я должен использовать virtualhost от apache? Так вот что я сделал: в /var/www У меня есть 2 справочника: test1 и test2. Я хочу, чтобы test1 был моим узловым приложением, доступным с test1.my_domain, а test2 будет случайным другим сайтом, доступным с test2.my_domain. Чтобы сделать это, я имею конфигурационный апача, как это:
/и т.д./apache2/sites_available/по умолчанию:
<VirtualHost *:80>
ServerAdmin [email protected]_domain
ServerName my_domain
ServerAlias www.my_domain
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
/etc/apache2/sites_available/test1.conf:
<VirtualHost *:80>
ServerAdmin [email protected]_domain
ServerName my_domain
ServerAlias test1.my_domain
DocumentRoot /var/www/test1
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/test1>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
/etc/apache2/sites_available/test2.conf:
<VirtualHost *:80>
ServerAdmin [email protected]_domain
ServerName my_domain
ServerAlias test2.my_domain
DocumentRoot /var/www/test2
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/test2>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/log/apache2/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
Эта работа конфигурация идеально, если test1 не узел приме катион. Я имею в виду, что, когда я иду в test1.my_domain, я получаю содержание /вар/WWW/test1 и если я иду в test2.my_domain, я получаю содержание /вар/WWW/test2 ,
Но если я поставлю заявку на узел в test1, узел ввод в конфликте с апачом, потому что они оба используют порт 80.
Я видел много учебника, чтобы решить, что с помощью Proxys Apache, но я не могу понять как использовать его хорошо. Я точно знаю, что я могу заставить узел прослушивать другой порт, чем 80, но я не хочу этого делать, потому что если я сделаю, то будет test1.my_domain: 7777 (например), и это уродливо?
Кроме того, я являюсь новичком в области конфигурации vps, поэтому, пожалуйста, опишите свой ответ как можно больше;).
Спасибо, ребята!
Ok спасибо за помощь, я постараюсь его позже. Но с этой конфигурацией, как сервер знает, что http: //test1.my_domain находится в/var/www/test1? – toto1911
apache не заботится о том, где находится узел _files_ (или это узловое приложение, сервер tomcat или что-то еще), он просто перенаправляет любой запрос для test1.my_domain в приложение, которое выполняется на порту 7777 –
, это ** очень ** общая настройка, вы не первый с этим требованием :) –