Nginx uWSGI and Ubuntu
Apparence
Install
ai nginx uwsgi uwsgi-plugin-php
# check nginx and uwsgi are running
sc-status uwsgi
sc-status nginx
|
Site configuration
# enable the uwsgi configuration
sudo ln -s /etc/uwsgi/apps-available/phpinfo.conf /etc/uwsgi/apps-enabled/phpinfo.conf
sc-restart uwsgi
# it creates sockets /var/run/uwsgi/app/<appname>/socket
# enable the nginx configuration
sudo ln -s /etc/nginx/sites-available/phpinfo.conf /etc/nginx/sites-enabled/phpinfo.conf
sc-restart nginx
|
phpinfo
/etc/nginx/sites-available/phpinfo.conf |
server {
server_name phpinfo.net;
listen 80;
root /var/www/php;
index info.php;
location ~ \.php$ {
include uwsgi_params;
uwsgi_modifier1 14;
uwsgi_pass unix:/var/run/uwsgi/app/phpinfo/socket;
}
}
|
/etc/uwsgi/apps-available/phpinfo.ini |
[uwsgi]
master = true
cheap = true
idle = 600
die-on-idle = true # If app is not used often, it will exit and be launched again by systemd requested by users.
manage-script-name = true
plugins = php
php-docroot = /var/www/php
php-index = info.php
php-allowed-ext = .php
|
Log
- /var/log/uwsgi/app
Systemd
One service per app in systemd
/etc/systemd/system/uwsgi-app@.socket |
[Unit]
Description=Socket for uWSGI app %i
[Socket]
ListenStream=/var/run/uwsgi/%i.socket
SocketUser=www-%i
SocketGroup=www-data
SocketMode=0660
[Install]
WantedBy=sockets.target
|
/etc/systemd/system/uwsgi-app@.service |
[Unit]
Description=%i uWSGI app
After=syslog.target
[Service]
ExecStart=/usr/bin/uwsgi \
--ini /etc/uwsgi/apps-available/%i.ini \
--socket /var/run/uwsgi/%i.socket
User=www-%i
Group=www-data
Restart=on-failure
KillSignal=SIGQUIT
Type=notify
StandardError=syslog
NotifyAccess=all
|