Je me suis connecté avec flask, wsgi et apache2, mais j'ai toujours détesté Django. Cependant, j'ai décidé de présenter Django et nginx parce que je voulais présenter WebSocket.
Même maintenant, il n'est pas affiché à moins que j'entre ** "http://example.com:9000" **, mais j'ai atteint le point où uwsgi est lancé en arrière-plan.
J'écrirai la partie avec laquelle j'ai lutté ci-dessous
C'était bien jusqu'à ce que je démarre le serveur nginx
$sudo /etc/init.d/nginx restart
Peut ne pas démarrer. J'ai l'écran suivant
[....] Restarting nginx (via systemctl): nginx.serviceJob for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
failed!
Cela était dû au mauvais fichier de configuration dans ** / etc / nginx / sites-available / ** dans mon environnement Ubuntu. (Par exemple, le port a été dupliqué avec un autre serveur)
C'était le début de la souffrance. J'ai eu du mal à souffrir d'uwsgi. Surtout, c'est ne pas penser que quelque chose peut être fait avec de la colle.
Considérez uwsgi comme un middleware qui agit comme un intermédiaire avec des paramètres pour connecter les applications nginx et Django. Comment coller mon fichier ini merdique. En passant, je présenterai également les sites qui ont été très utiles dans uwsgi. (Anglais)
Voici mes fichiers ini et leurs commentaires.
# open_dashboard_uwsgi.ini file
[uwsgi]
project = open_dashboard
base = /home/user/Python #← Chemin de mon projet Python
chdir = %(base)/%(project)
#home = %(base)/Env/%(project)
home = %(base)/env #← Chemin de mon environnement virtuel Python
module = %(project).wsgi:application
#uid = root
uid = user #← Mon nom d'utilisateur
master = true
processes = 2
socket = %(base)/%(project)/%(project).sock #← N'essayez pas de fabriquer vous-même cette prise
chmod-socket = 666
vacuum = true #← Il est assez important que le socket soit automatiquement supprimé lorsque le serveur est coupé.
Sur cette base, nous définissons le mode empereur, qui est un mode qui exécute uwsgi en arrière-plan (en fait, c'est un excellent mode qui peut démarrer plusieurs applications), mais dans la plupart des cas, il trébuche avec l'erreur suivante.
unix:///home/user/Python/open_dashboard/open_dashboard.sock failed (13: Permission denied)
C'est ennuyeux, mais vous pouvez le résoudre en utilisant uid et gid en mode empereur comme nom d'utilisateur. Également le fichier journal ** sudo chown user: user /var/log/uwsgi-emperor.log ** N'oubliez pas de définir comme.
Définissez .bashrc comme suit. (/etc/rc.local semble être bon, mais pour le moment, c'est sûr)
.bashrc
/usr/local/bin/uwsgi --emperor /etc/uwsgi/vassals --uid www-data --gid www-data --daemonize /var/log/uwsgi-emperor.log
La partie *** --emperor / etc / uwsgi / vassals *** du code ci-dessus est définie comme suit.
# create a directory for the vassals
sudo mkdir /etc/uwsgi
sudo mkdir /etc/uwsgi/vassals
# symlink from the default config directory to your config file
sudo ln -s /path/to/your/mysite/mysite_uwsgi.ini /etc/uwsgi/vassals/
Vous ne le comprenez peut-être pas parce que vous êtes pressé, mais pour le moment ** Pour ne plus me perdre ** J'ai écrit cet article.
[Je passais des jours sombres avec seulement 502 erreurs comme cet article](https://www.linode.com/community/questions/222/how-do-i-fix-this-502-bad- erreur-de-passerelle-lors-de-la-configuration-django-project-on-ubuntu)
_ Ensuite, je vais défier Docker! _
--2019 / 12/16 nouvellement créé --2020 / 1/1 Ajout de la façon d'installer et de reconfigurer à nouveau uwsgi pour Python3 en le faisant avec Python3
Recommended Posts