2017-11-03 151 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'