Как я могу запустить несколько приложений или сервисов, используя один и тот же IP-адрес на apache Centos7? - PullRequest
0 голосов
/ 14 декабря 2018

У меня есть несколько приложений web2py в / opt / webapps / web2py / Applications, и мне удалось настроить их так, чтобы они обслуживались apache (httpd) и mod_wsgi, кроме того, у меня также есть приложение для телефона, которое делает httpзапросы к API-интерфейсу Flask restful, который мне также удалось настроить, используя тот же экземпляр apache и mod_wsgi.

В моем /etc/httpd/conf.d/ у меня есть OurApi.conf, который выглядит следующим образом

<VirtualHost *:80>

WSGIScriptAlias /mcr_api /var/www/OurAPi/ourapi.wsgi
<Directory /var/www/OurAPi>
AllowOverride None
Order Allow,Deny
Allow from all
<Files ourapi.wsgi>
  Allow from all
    Require all granted
</Files>
</Directory>
CustomLog /var/log/httpd/access_log common
ErrorLog /var/log/httpd/error_log
</VirtualHost>

ПРИМЕЧАНИЕ. Это позволяет моим Api Flask Rest

и одному default.conf, который выглядит как

NameVirtualHost *:80
NameVirtualHost *:443

<VirtualHost *:80>
  WSGIDaemonProcess web2py user=apache group=apache
  WSGIProcessGroup web2py
  WSGIScriptAlias / /opt/webapps/web2py/wsgihandler.py

<Directory /opt/webapps/web2py>
  AllowOverride None
  Require all denied
<Files wsgihandler.py>
  Require all granted
</Files>
</Directory>

AliasMatch ^/([^/]+)/static/(.*) 
/opt/webapps/web2py/applications/$1/static/$2

<Directory /opt/webapps/web2py/applications/*/static>
Options -Indexes
Require all granted
</Directory>

<Location /admin>
Require all denied
</Location>

<LocationMatch ^/([^/]+)/appadmin>
 Require all denied
</LocationMatch>

CustomLog /var/log/httpd/access_log common
ErrorLog /var/log/httpd/error_log
</VirtualHost>
<VirtualHost *:443>
   SSLEngine on
   SSLCertificateFile /etc/httpd/ssl/self_signed.cert
   SSLCertificateKeyFile /etc/httpd/ssl/self_signed.key

WSGIProcessGroup web2py

WSGIScriptAlias / /opt/webapps/web2py/wsgihandler.py

<Directory /opt/webapps/web2py>
  AllowOverride None
  Require all denied
<Files wsgihandler.py>
  Require all granted
</Files>
</Directory>

AliasMatch ^/([^/]+)/static/(.*)/opt/webapps/web2py/applications/$1/static/$2

<Directory /opt/webapps/web2py/applications/*/static>
  Options -Indexes
  ExpiresActive On
  ExpiresDefault "access plus 1 hour"
  Require all granted
</Directory>

CustomLog /var/log/httpd/access_log common
ErrorLog /var/log/httpd/error_log
</VirtualHost>

Моя проблема в том, что я хочу, чтобы мои приложения web2py работаливсякий раз, когда я делаю 0.0.0.0/web2pyAppName и когда я делаю 0.0.0.0/mcr_api / ... я должен иметь возможность получить доступ к моему API и использовать его, но я не могу сделать это одновременно с удалением OurApi.Conf или изменить порт в INT, я могу очень хорошо получить доступ к моим приложениям web2py, но когда я покидаю его, я могу получить доступ только к API, но не к приложениям web2py, и если я изменю порт в OurApi.conf, я не могу получить доступAPI на этомКонкретный порт, пожалуйста, мне нужно, чтобы это работало до того, как клиент уйдет, и я немного новичок в этом персонале конфигураций серверов. Я попытался изменить httpd.conf, добавив несколько виртуальных хостов, соответственно, как это делают многие сайты в сети, но все напрасно ИспользуюСервер CentOS7.

Интересно, есть ли способ, которым я могу запустить их одновременно и использовать один и тот же IP-адрес, но просто отклоняясь на ...: 80 / mcr_api или ..: 80 / или даже если он запущенна другой порт.

Заранее спасибо

...