2017-11-03 1 views
0

고유 도메인이 두 개 있습니다 (예 : domain1.comdomain2.com). Flask를 사용하여 하나의 리니어 노드 서버 (예 : 12.34.567.890)에 두 개의 고유 한 웹 페이지 (두 개의 개별 플라스크 응용 프로그램을 통해)를 호스팅하려고합니다.고유 도메인 용 Flask 앱을 ​​여러 개 호스팅

현재 domain1.com이 작동하지만 domain2.com은 나에게 Apache2 기본 페이지를 제공합니다. 여기

는 지금까지이 작업은 다음과 같습니다

등 \ 아파치 \ ports.conf :

Listen 80 
Listen 8080 

<IfModule ssl_module> 
    Listen 443 
</IfModule> 

<IfModule mod_gnutls.c> 
    Listen 443 
</IfModule> 

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet 


등 \ 아파치 \ 사이트-가능 \ 000-default.conf :

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

<VirtualHost *:8080> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 


등 \ apache2 \ sites-available \ FlaskApp.conf :

<VirtualHost *:80> 
      ServerName domain1.com 
      ServerAdmin [email protected] 
      WSGIScriptAlias//var/www/AppOne/flaskapp.wsgi 
      <Directory /var/www/AppOne/FlaskApp/> 
        Order allow,deny 
        Allow from all 
      </Directory> 
      Alias /static /var/www/AppOne/FlaskApp/static 
      <Directory /var/www/AppOne/FlaskApp/static/> 
        Order allow,deny 
        Allow from all 
      </Directory> 
      ErrorLog ${APACHE_LOG_DIR}/error.log 
      LogLevel warn 
      CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

<VirtualHost *:8080> 
      ServerName domain2.com 
      ServerAdmin [email protected] 
      WSGIScriptAlias//var/www/AppTwo/flaskapp.wsgi 
      <Directory /var/www/AppTwo/FlaskApp/> 
        Order allow,deny 
        Allow from all 
      </Directory> 
      Alias /static /var/www/AppTwo/FlaskApp/static 
      <Directory /var/www/AppTwo/FlaskApp/static/> 
        Order allow,deny 
        Allow from all 
      </Directory> 
      ErrorLog ${APACHE_LOG_DIR}/error.log 
      LogLevel warn 
      CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 
각 응용 프로그램에 대한


__init__.py은 (그러나 다른 디렉토리에서) 동일합니다

from flask import Flask, render_template, flash, request, url_for, redirect, session 
from content_management import Content 
#...etc... 
import gc 

TOPIC_DICT = Content() 

app = Flask(__name__) 

@app.route('/') 
def homepage(): 
    return render_template("home.html") 

if __name__ == "__main__": 
    app.run() 


의 \ var에 \ www가 \ 디렉토리는 다음과 같습니다 : 나는 조금 자세한 얻었다 경우

\var\www 
| 
└─── AppOne 
| | flaskapp.wsgi 
| | 
| └─── FlaskApp 
|   | __init__.py 
|   | 
|   └─── static 
|   └─── templates 
|   |  home.html 
|   | 
|   └─── venv 
| 
└─── AppTwo     #same as AppOne 
    | flaskapp.wsgi 
    | 
    └─── FlaskApp 
      | __init__.py 
      | 
      └─── static 
      └─── templates 
      |  home.html 
      | 
      └─── venv 

죄송합니다 그러나 어떤 지침이 도움이 될 것입니다!

답변

0

포트 8080에서 수신 할 필요가 없습니다. AppTwo의 WSGI 파일이 올바른 디렉토리를 가리 키지 않았습니다.

ports.conf :

Listen 80 

<IfModule ssl_module> 
    Listen 443 
</IfModule> 

<IfModule mod_gnutls.c> 
    Listen 443 
</IfModule> 


000 default.conf :

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    DocumentRoot /var/www/html 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 


FlaskApp.conf :

<VirtualHost *:80> 
     ServerName domain1.com 
     ServerAdmin [email protected] 
     WSGIScriptAlias//var/www/AppOne/flaskapp.wsgi 
     <Directory /var/www/AppOne/FlaskApp/> 
       Order allow,deny 
       Allow from all 
     </Directory> 
     Alias /static /var/www/AppOne/FlaskApp/static 
     <Directory /var/www/AppOne/FlaskApp/static/> 
       Order allow,deny 
       Allow from all 
     </Directory> 
     ErrorLog ${APACHE_LOG_DIR}/error.log 
     LogLevel warn 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 

<VirtualHost *:80> 
     ServerName domain2.com 
     ServerAdmin [email protected] 
     WSGIScriptAlias//var/www/AppTwo/flaskapp.wsgi 
     <Directory /var/www/AppTwo/FlaskApp/> 
       Order allow,deny 
       Allow from all 
     </Directory> 
     Alias /static /var/www/AppTwo/FlaskApp/static 
     <Directory /var/www/AppTwo/FlaskApp/static/> 
       Order allow,deny 
       Allow from all 
     </Directory> 
     ErrorLog ${APACHE_LOG_DIR}/error.log 
     LogLevel warn 
     CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 


AppOne/flaskapp.wsgi :

import sys 
import logging 
logging.basicConfig(stream=sys.stderr) 
sys.path.insert(0,"/var/www/AppOne/") 

from FlaskApp import app as application 
application.secret_key = 'PasswordGoesHere' 


AppTwo/flaskapp.wsgi :

import sys 
import logging 
logging.basicConfig(stream=sys.stderr) 
sys.path.insert(0,"/var/www/AppTwo/") 

from FlaskApp import app as application 
application.secret_key = 'PasswordGoesHere' 
관련 문제