Lumen on Swoole
composer require silentred/lumoon
Because Lumen does not use Http Kernel, you have to create a subclass of \Laravel\Lumen\Application
under app
directory.
In bootstrap
directory, change Application in app.php to the new one as App\Application
vendor/bin/lumoon start | stop | reload | restart | quit
In .env , use LUMOON_* to config swoole server. For example
LUMOON_REACTOR_NUM=1
LUMOON_WORKER_NUM=4
LUMOON_BACKLOG=128
LUMOON_DISPATCH_MODE=1
LUMOON_PID_FILE=/path/to/lumoon.pid
default is at /lumen/storage/logs/swoole.pid
LUMOON_GZIP=1
level is in the range from 1 to 9, bigger is compress harder and use more CPU time.
LUMOON_GZIP_MIN_LENGTH=1024
Sets the mINImum length of a response that will be gzipped.
Use this ONLY when developing
LUMOON_DEAL_WITH_PUBLIC=true
Eexample:
LUMOON_HOST=0.0.0.0
Default host is 127.0.0.1:9050
See Swoole's document:
server {
listen 80;
server_name localhost;
root /path/to/lumoon/public;
location ~ \.(png|jpeg|jpg|gif|css|js)$ {
break;
}
location / {
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:9050;
}
}