gunicorn
(env) atul@atul-Lenovo-G570:~/softbook$ pip install gunicorn
gunicorn
(env) atul@atul-Lenovo-G570:~/softbook$ gunicorn --version
(env) atul@atul-Lenovo-G570:~/softbook$ gunicorn -w 4 -k uvicorn.workers.UvicornH11Worker main:app
(env) atul@atul-Lenovo-G570:~/softbook$ pip install supervisor
atul@atul-Lenovo-G570:~$ sudo nano /etc/supervisor/conf.d/fastapi.conf
[program:fastapi]
command=/home/atul/softbook/env/bin/gunicorn -w 4 -k uvicorn.workers.UvicornWorker -b 0.0.0.0:8000 main:app
directory=/home/atul/softbook
user=atul
autostart=true
autorestart=true
stdout_logfile=/var/log/fastapi/fastapi.stdout.log
stderr_logfile=/var/log/fastapi/fastapi.stderr.log
environment=PYTHONUNBUFFERED=1
File Name to Write
then simply press the Enter buttonatul@atul-Lenovo-G570:~$ supervisord --version
atul@atul-Lenovo-G570:~$ sudo supervisorctl reread
atul@atul-Lenovo-G570:~$ sudo supervisorctl update
atul@atul-Lenovo-G570:~$ sudo supervisorctl restart fastapi
atul@atul-Lenovo-G570:~$ sudo supervisorctl status
Now you can use the http://localhost:8000/softbook-docs
in browser
install the nginx server
atul@atul-Lenovo-G570:~$ sudo apt install nginx
sudo nano /etc/nginx/sites-available/fastapi
server {
listen 80;
server_name localhost;
# Static files
location /static/ {
alias /home/atul/softbook/static/;
}
# Media files
location /uploads/ {
alias /home/atul/softbook/uploads/;
}
# FastAPI application
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
sudo ln -s /etc/nginx/sites-available/fastapi /etc/nginx/sites-enabled
atul@atul-Lenovo-G570:~$ sudo nano /etc/nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
atul@atul-Lenovo-G570:~$ sudo wget https://raw.githubusercontent.com/nginx/nginx/master/conf/mime.types -O /etc/nginx/mime.types
atul@atul-Lenovo-G570:~$ sudo nginx -t
atul@atul-Lenovo-G570:~$ sudo chown -R www-data:www-data /etc/nginx
atul@atul-Lenovo-G570:~$ sudo chown -R www-data:www-data /var/log/nginx
atul@atul-Lenovo-G570:~$ sudo chown -R www-data:www-data /var/www/html
atul@atul-Lenovo-G570:~$ sudo chmod -R 755 /etc/nginx
atul@atul-Lenovo-G570:~$ sudo chmod -R 755 /var/log/nginx
atul@atul-Lenovo-G570:~$ sudo chmod -R 755 /var/www/html
atul@atul-Lenovo-G570:~$ sudo chown -R www-data:www-data /var/log/nginx
atul@atul-Lenovo-G570:~$ sudo chmod -R 755 /var/log/nginx
atul@atul-Lenovo-G570:~$ sudo mkdir -p /run/nginx
atul@atul-Lenovo-G570:~$ sudo chown -R www-data:www-data /run/nginx
atul@atul-Lenovo-G570:~$ sudo chmod -R 755 /run/nginx
atul@atul-Lenovo-G570:~$ sudo chown -R www-data:www-data /var/log/nginx
atul@atul-Lenovo-G570:~$ sudo chmod -R 755 /var/log/nginx
atul@atul-Lenovo-G570:~$ sudo chown -R www-data:www-data /run/nginx
atul@atul-Lenovo-G570:~$ sudo chmod -R 755 /run/nginx
atul@atul-Lenovo-G570:~$ sudo systemctl stop apache2
atul@atul-Lenovo-G570:~$ sudo systemctl disable apache2
atul@atul-Lenovo-G570:~$ sudo systemctl status apache2
atul@atul-Lenovo-G570:~$ sudo systemctl start nginx
atul@atul-Lenovo-G570:~$ sudo systemctl enable nginx
atul@atul-Lenovo-G570:~$ sudo systemctl status nginx
atul@atul-Lenovo-G570:~$ sudo systemctl reload nginx
Now you can use http://localhost/softbook-docs in your browser
Some notes
atul@atul-Lenovo-G570:~$ sudo supervisorctl restart fastapi
atul@atul-Lenovo-G570:~$ sudo supervisorctl stop fastapi
atul@atul-Lenovo-G570:~$ sudo supervisorctl start fastapi
uvicorn
for debug or development then first stop supervisor after that run uvicorn
(env) atul@atul-Lenovo-G570:~/softbook$ uvicorn main:app --reload
Comsysapp.com is an educational website. Students and software developers can learn programming language tutorials. Comsysapp is very useful for beginners and professional developers. Comsysapp provides tutorial in easy language. Comsysapp.com has focus on simplicity.
Comsysapp.com provides free tutorials like c, html, css, etc. All tutorials are free for beginner and professionals.
comsysapp.com is not responsible for any mistake. We are not responsible if information made available on our website is incomplete or invalid. But comsysapp.com always try for zero-zero mistake.
comsysapp.com does not collect any data from users. We use Google AdSense advertising on our website. We never ask personal or private information.
copyright © 2023