그누보드6 설치 완전정복. Ubuntu 서버에 Python, fastapi, Nginx, https 보안인증서 까지 설치, 설정하는 방법을 모두 다룹니다. 정보
그누보드6 설치 완전정복. Ubuntu 서버에 Python, fastapi, Nginx, https 보안인증서 까지 설치, 설정하는 방법을 모두 다룹니다.본문
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
=====================================================
5
댓글 2개
유튜버 리자님 잘 보고 갑니다. ^^
설치하는 건 저도 성공했는데, 개별파일은 어떻게 수정하고 만들어야 하나요?