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
|