2017-11-03 194 views
0

承载多个应用程序瓶我有两个独特的领域(如domain1.comdomain2.com)。我想主办以瓶一个的Linode服务器(如:12.34.567.890)上的两个独特的网页(通过两个独立的烧瓶中的应用程序)。的唯一域

目前,domain1.com作品,但domain2.com给我Apache2的默认页。

这是我到目前为止有:

等\的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 


等\ Apache2的\网站可用\ 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> 


etc \ 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 WSGI文件AppTwo没有指向正确的目录。

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'