uWSGI Emperor について
リンク先内容で、uWSGIを複数起動して、異なる結果を表示させたいのですが
・実行すると、画面には同じ結果が表示されます…
ファイル構成
/var/www/中略/emperor/
┗emperor.ini
/var/www/中略/hoge/
┣hoge.ini
┣hoge.py
┣hoge2.ini
┗hoge2.py
/etc/systemd/system/uwsgi.service
[Unit]
Description=uWSGI Emperor
After=syslog.target
[Service]
ExecStart=/usr/bin/uwsgi --emperor /var/www/中略/emperor/emperor --uid nginx --gid nginx
RuntimeDirectory=/var/run/uwsgi/app
Restart=always
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
[Install]
WantedBy=multi-user.target
/var/www/中略/emperor/emperor.ini
[uwsgi]
emperor = /var/www/中略/hoge
uid = nginx
gid = nginx
/var/www/中略/hoge/hoge2.ini
[uwsgi]
uid = nginx
gid = nginx
socket = /var/run/uwsgi/app/app.sock
chmod-socket = 777
chdir = /var/www/中略/hoge/
callable = application2
wsgi-file = /var/www/中略/hoge/hoge2.py
/var/www/中略/hoge/hoge2.py
def application2(environ, start_response):
start_response('200 OK', [('Content-type', 'text/html')])
return b'<html><body>Hello, world2</body></html>'
実行すると
# systemctl restart uwsgi
# systemctl restart nginx.service
・「hoge.py」「hoge2.py」へアクセスしても同じ結果「Hello, world」がWeb画面表示されます
・再起動した場合、両方共「Hello, world2」と表示されることもあります
# systemctl status uwsgi.service
● uwsgi.service - uWSGI Emperor
Loaded: loaded (/etc/systemd/system/uwsgi.service; disabled; vendor preset: disabled)
Active: active (running) since 日付
Main PID: 4706 (uwsgi)
Status: "The Emperor is governing 1 vassals"
CGroup: /system.slice/uwsgi.service
├─4706 /usr/bin/uwsgi --emperor /var/www/中略/emperor --uid nginx --gid nginx
├─4707 /usr/bin/uwsgi --ini emperor.ini
├─4708 /usr/bin/uwsgi --ini emperor.ini
├─4709 /usr/bin/uwsgi --ini hoge.ini
├─4710 /usr/bin/uwsgi --ini hoge2.ini
├─4711 /usr/bin/uwsgi --ini hoge.ini
├─4712 /usr/bin/uwsgi --ini hoge.ini
├─4713 /usr/bin/uwsgi --ini hoge.ini
├─4714 /usr/bin/uwsgi --ini hoge.ini
└─4716 /usr/bin/uwsgi --ini hoge2.ini
日付 uwsgi[4706]: *** Python threads support is disabled. You can enable it with --enable-threads ***
日付 uwsgi[4706]: Python main interpreter initialized at 0xcec370
日付 uwsgi[4706]: your mercy for graceful operations on workers is 60 seconds
日付 uwsgi[4706]: *** Operational MODE: no-workers ***
日付 uwsgi[4706]: spawned uWSGI master process (pid: 4707)
日付 uwsgi[4706]: 日付 - [emperor] vassal emperor.ini has been spawned
日付 uwsgi[4706]: 日付 - [emperor] vassal hoge.ini has been spawned
日付 uwsgi[4706]: 日付 - [emperor] vassal hoge2.ini has been spawned
日付 uwsgi[4706]: 日付 - [emperor] vassal hoge.ini is ready to accept requests
日付 uwsgi[4706]: 日付 - [emperor] vassal hoge2.ini is ready to accept requests
疑問点を追記しました
・下記で、◯◯.sockのファイル名が複数ある場合(例えば、hoge.sock,hoge2.sock,)、location内で複数指定することは可能でしょうか?
現在のNginxconfファイル
server {
listen 80;
//中略
location ~ \.py$ { {
include uwsgi_params;
uwsgi_pass unix:/var/run/uwsgi/app/app.sock;
}
希望するNginxconfファイル
・hoge.sockでも、hoge2.sockでも動的対応するようにしたい
・location段階で切り分けなければいけない??
・それとも、下記の(.+)部分が間違っているでしょうか?
location ~ \.py$ { {
include uwsgi_params;
uwsgi_pass unix:/var/run/uwsgi/app/(.+).sock;
}