Flask(Python) 사이트/API 온라인 만들기🌐
Digital Ocean에서 서버 생성
따라서 우리는 Digital Ocean의 신규 사용자에게 제공되는 100$ 무료 크레딧을 활용할 것입니다(참고: 이 단계는 다른 클라우드에 서버가 있는 경우 선택 사항입니다).
단계는 다음과 같습니다.
계정이 없으시면 Digital Ocean에 접속하여 신규가입
시간이 걸린다⏳
기본 플라스크 앱 만들기
이 코드를 실행합니다
pip install gunicorn flask
.이것은 최소한의 플라스크 앱이며 이름을 wsgi.py로 지정하겠습니다. 원하는 대로 파일 이름을 지정할 수 있습니다.
-
gunicorn --bind 0.0.0.0:8000 wsgi
를 실행하여 구성을 테스트할 수 있습니다.
- Flask를 사용하여 Rest API를 생성하려면 다음을 확인하십시오Post.
Gurnicorn 구성
서버에서 SSH를 실행sudo nano /etc/systemd/system/myproject.service
하여 프로젝트의 구성 파일을 엽니다.
그것은 터미널에 편집기를 가져오고 다음을 작성합니다(필요에 따라 편집)
[Unit]
Description=Gunicorn instance to serve myproject
After=network.target
[Service]
User=user
Group=nginx
WorkingDirectory=/home/user/myproject
Environment="PATH=/home/user/myproject/myprojectenv/bin"
ExecStart=/home/user/myproject/myprojectenv/bin/gunicorn --workers 3 --bind unix:myproject.sock -m 007 wsgi
[Install]
WantedBy=multi-user.target
- 그런 다음 crtl+c를 눌러 저장하고 crtl+x를 눌러 편집기를 종료합니다 .
- 실행
sudo systemctl start myproject
&sudo systemctl enable myproject
-
sudo systemctl status myproject
를 실행하여 응용 프로그램의 상태를 확인할 수 있습니다.
요청을 프록시하도록 Nginx 구성
<올>
sudo apt update sudo && sudo apt-get install nginx
를 실행하여 오래된 소프트웨어를 업데이트하고 Nginx를 설치합니다.
Nginx가 설치되면 sudo nano /etc/nginx/sites-available/myproject
그런 다음 다음 코드를 구성 파일에 붙여넣습니다.
server {
listen 80;
server_name your_domain www.your_domain;
location / {
include proxy_params;
proxy_pass http://unix:/home/sammy/myproject/myproject.sock;
}
}
- 위의 코드는 Nginx가 이전에 생성한 sock 파일에 요청을 프록시하도록 지시합니다 .
- 프로젝트를 Nginx 사이트에 연결하려면 실행
sudo ln -s /etc/nginx/sites-available/myproject /etc/nginx/sites-enabled
- 이 코드를 실행하여 구성을 테스트합니다
sudo nginx -t
.
- 그런 다음 이를 실행하여 Nginx를 다시 시작합니다
sudo systemctl restart nginx
.
- UFW를 활성화한 경우 실행합니다
sudo ufw allow 'Nginx Full'
.
-
http://yourip
를 방문하면 앱이 지금 활성화됩니다 .
SSL로 앱 보호
<올>
sudo add-apt-repository ppa:certbot/certbot sudo apt install python-certbot-nginx
를 실행하여 certbot 및 Nginx certbot 플러그인을 서버sudo certbot --nginx -d your_domain -d www.your_domain --agree-tos -m [email protected]
를 실행하여 certbotPlease choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
<올>
원하는 옵션을 선택하세요
다음과 같은 출력이 표시됩니다.
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your_domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/your_domain/privkey.pem
Your cert will expire on 2018-07-23. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
- (선택 사항) UFW에서 HTTP를 비활성화하려면 실행
sudo ufw delete allow 'Nginx HTTP'
-
https://your IP or Your domain
를 방문하면 귀하의 사이트는 안전합니다🔒
Reference
이 문제에 관하여(Flask(Python) 사이트/API 온라인 만들기🌐), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/raghavmri/making-your-flaskpython-siteapi-online-bol텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)