테스트 사이트 - 개발 중인 베타 버전입니다

그누보드6 설치 완전정복. Ubuntu 서버에 Python, fastapi, Nginx, https 보안인증서 까지 설치, 설정하는 방법을 모두 다룹니다.

· 1년 전 · 1629 · 2

https://www.youtube.com/watch?v=YBCmmyGKqgQ

 

그누보드6 파이썬 버전을 실제 운영할 수 있는 방법에 대해
아래와 같은 순서대로 설명합니다.

1. Ubuntu 22.04 버전을 준비합니다.

2. git 으로 그누보드6 복제

3. 가상환경 설치 및 실행

4. uvicorn 실행

5. iptables 에 8000번 포트 허용

6. 브라우저에서 http 접속 확인

7. uvicorn.service 생성 및 실행

8. Nginx에 도메인 연결

9. certbot 으로 보안인증서 발급

10. https 연결 확인

=끝=


명령어 순서
cd /home/ubuntu
git clone https://github.com/gnuboard/g6.git
cd g6

sudo apt update
sudo apt install python3.10-venv

python -m venv venv
source venv/bin/activate
uvicorn main:app --reload --host 0.0.0.0 --port 8000

sudo iptables -I INPUT -p tcp --dport 8000 -j ACCEPT
sudo netfilter-persistent save

(브라우저에서 http://서버아이피:8000 으로 접속 확인)

cd /home/ubuntu/g6
mkdir log
vi log_config.ini (맨아래 코드 참고)

sudo vi /etc/systemd/system/uvicorn.service (맨아래 코드 참고)
sudo systemctl restart uvicorn.service
sudo systemctl status uvicorn.service
sudo systemctl enable uvicorn.service

sudo cd /etc/nginx/sites-enabled
sudo cp default mydomain
(default 파일은 삭제해도 되며 삭제 안할시 listen 80 default_server; 반드시 주석 처리)
vi mydomain (맨아래 코드 참고)
systemctl restart nginx
systemctl enable nginx


sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d 내도메인1 -d 내도메인2

sudo crontab -e (certbot renew 명령 등록)


=====================================================
log_config.ini 파일 내용
=====================================================
[loggers]
keys=root

[handlers]
keys=console,timedFile

[formatters]
keys=generic

[logger_root]
level=INFO
handlers=console,timedFile

[handler_console]
class=StreamHandler
level=INFO
formatter=generic
args=(sys.stderr,)

[handler_timedFile]
class=logging.handlers.TimedRotatingFileHandler
level=INFO
formatter=generic
args=('log/uvicorn.log', 'midnight', 1, 365, 'utf-8')

[formatter_generic]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
=====================================================

=====================================================
uvicorn.service 파일 내용
=====================================================
[Unit]
Description=Uvicorn server with virtual environment
After=network.target

[Service]
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu/g6
Environment="PATH=/home/ubuntu/g6/venv/bin"
ExecStart=/home/ubuntu/g6/venv/bin/uvicorn main:app --host 0.0.0.0 --port 8000 --log-config log_config.ini

[Install]
WantedBy=multi-user.target
=====================================================

=====================================================
mydomain 파일 내용 (Nginx 설정 파일)
=====================================================
server {
        listen 80;
        server_name mydomain.com www.mydomain.com;

        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;
        }
}
=====================================================

 

 

=====================================================
crontab 파일 내용 아래 코드를 추가하세요.
=====================================================
# 매주 일요일 자정에 실행
0 0 * * 0 certbot renew
=====================================================


https://sir.kr

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 2개

유튜버 리자님 잘 보고 갑니다. ^^

설치하는 건 저도 성공했는데, 개별파일은 어떻게 수정하고 만들어야 하나요?

게시글 목록

번호 제목
49
36
33
31
22
21
17
16
15
14
11
10
9
8
7
3
2
1