(En général, si vous regardez comment écrire httpd.conf en bas, cela devrait être un déclencheur ...)
En supposant que vous utilisez le module python django, il peut y avoir plusieurs façons de réaliser le Web en temps réel, mais il y en a peu quand il s'agit de profiter de ces prérequis (= peut être utilisé comme une extension du module python ou Django). Ce qui ressort après un examen léger
Autour.
A cette époque, il a été mis à jour plus que les chaînes, et j'ai choisi swampdragon car il contient plus de documents japonais (exemples) (bien que les deux soient peu nombreux).
Actuellement (16/12/29), il semble que la mise à jour du site officiel soit déjà arrêtée, mais à ce moment-là (16/07 / xx) j'ai choisi cela (bien que le site officiel était fermé à ce moment-là) .. En conséquence, je vais résumer le processus de déploiement dur.
De plus, la procédure d'installation du module est omise et la discussion porte uniquement sur ce qui a été installé et comment il a été défini.
L'environnement de développement de l'application que vous souhaitez déployer est
De plus, ce qui suit a été introduit en tant que module.
La destination du déploiement est CentOS 7, qui est configuré sur AWS et n'a pas de paramètres initiaux. Comme il était propre, je devais le saisir depuis apache pour le moment.
Créez une base pour exécuter des applications Web sur CentOS7. Cette fois, nous présenterons ce qui suit.
Si les deux sont les plus récents, il n'y a pas de problème (devrait). À propos, mod_wsgi est également introduit pour préparer l'environnement wsgi.
De plus, comme la version de Python qui était incluse dans CentOS 7 était 2.7, j'ai installé Python 3.5.1 afin qu'il puisse être utilisé avec des commandes de la forme `` python3.5 ''.
De plus, si redis est installé sans réfléchir, seules les versions 2.8 et antérieures seront incluses, donc je me suis référé à ici et je l'ai installé directement.
C'est le sujet principal du déploiement.
L'application que je voulais déployer a été placée sur github, je l'ai donc clonée dans le répertoire suivant et l'ai placée.
/var/www/cgi-bin/
L'emplacement est comme le paramètre par défaut d'apache.
Après cela, sans penser à rien de particulier, modifiez httpd.conf selon Document officiel de version différente.
Cependant, cela seul ne fonctionne pas.
Afin de réaliser le Web en temps réel, il était nécessaire de router swampdragon vers le serveur et de démarrer le serveur redis.
Cette fois, les quatre serveurs suivants doivent être exécutés sur CentOS.
Parmi ceux-ci, les deux premiers peuvent être démarrés à partir des commandes suivantes.
systemctl start httpd
systemctl start postgresql
Puisqu'il fonctionne en arrière-plan, la console n'est pas débordée.
Le problème, ce sont les deux derniers. django lui-même fonctionne sur apache, mais swampdragon introduit car son module doit configurer un serveur séparément de django. Et lorsque redis démarre également le serveur, aucune autre opération ne peut être effectuée.
Par conséquent, tmux a été nouvellement introduit. En introduisant simplement tmux et en divisant la console, un démarrage simultané est possible.
Mais le problème demeure. C'est le routage d'Apache vers le serveur swampdragon. J'ai eu beaucoup de mal parce que je n'ai trouvé aucune documentation à ce sujet.
Le contenu des paramètres finaux d'Apache (httpd.conf) est le suivant (le chemin de l'application est flou).
Listen 80
Listen 443
<VirtualHost *:443>
ProxyPass /data ws://127.0.0.1:9999/data
ProxyPassReverse /data ws://127.0.0.1:9999/data
ProxyPass /settings.js http://127.0.0.1:9999/settings.js
ProxyPassReverse /settings.js http://127.0.0.1:9999/settings.js
ProxyPreserveHost On
ProxyRequests Off
ProxyVia On
</VirtualHost>
LoadModule wsgi_module /usr/lib64/httpd/modules/mod_wsgi.so
WSGIPythonPath /var/www/cgi-bin/path/to/app:/usr/local/bin/python3.5/site-packages
DocumentRoot "/var/www/cgi-bin/path/to/documentroot"
Alias /static/ /var/www/cgi-bin/path/to/static/
<Directory /var/www/cgi-bin/path/to/app/>
<Files wsgi.py>
Order deny,allow
Allow from all
</Files>
</Directory>
WSGIScriptAlias / /var/www/cgi-bin/path/to/wsgi.py
De plus, ~: //127.0.0.1:9999/~ est le paramètre par défaut (devrait être) lorsque swampdragon a été introduit.
Sous le module de chargement dans la moitié inférieure se trouve presque le contenu du site officiel de django.
Le foie est le cadre de 443 ports. swampdragon a deux communications à recevoir. / Données pour la communication via le socket Web et /settings.js pour http.
Si vous le définissez en tant qu'hôte virtuel et le transférez vers un serveur swampdragon séparé, il sera renvoyé vers le serveur redis et les informations de session seront enregistrées.
Finalement, vous devriez pouvoir lancer une application Web en temps réel avec une commande comme celle-ci.
tmux
systemctl start postgresql
systemctl start httpd
sudo redis-server /etc/redis.conf
python3.5 server.py
Lors de l'utilisation de Swampdragon
Ce qui précède est l'histoire du premier déploiement manuel.
Recommended Posts