반응형
1. Flask 앱의 host 수정
현재 Flask 앱은 localhost에서만 접근 가능하도록 설정되어 있습니다. 외부에서 접속하려면 host를 0.0.0.0으로 변경해야 합니다.
app.run(
host='0.0.0.0', # 모든 네트워크 인터페이스에서 접근 가능
port=5000,
debug=False,
use_reloader=False
)
2. 방화벽 및 네트워크 설정
외부에서 접속하려면 서버의 네트워크와 방화벽이 해당 포트를 허용해야 합니다.
- 서버 방화벽:
- 서버의 운영 체제에서 5000번 포트를 열어야 합니다.
- 예: 리눅스 서버에서 ufw 사용 시
sudo ufw allow 5000
- 클라우드 서버 설정:
- AWS, GCP, Azure 같은 클라우드 환경을 사용 중인 경우, 보안 그룹 또는 방화벽 설정에서 5000번 포트를 열어야 합니다.
3. 외부 IP 확인 및 접근
서버의 외부 IP 주소를 확인한 후 브라우저에서 접근할 수 있습니다.
- 서버의 외부 IP 확인
curl ifconfig.me
또는 클라우드 콘솔에서 확인합니다.
- 접근 URL 예
http://<외부 IP>:5000
4. 보안 고려
외부 접근을 허용하면 앱이 잠재적인 보안 위협에 노출될 수 있습니다. 이를 방지하려면:
- HTTPS 사용:
Flask 앱을 프로덕션 환경에서 실행할 때는 HTTPS를 사용해야 합니다. 이를 위해 Nginx나 Apache와 같은 리버스 프록시를 설정하거나 Flask 자체에서 SSL 인증서를 설정하세요. - IP 제한:
특정 IP만 Flask에 접근할 수 있도록 제한하는 방식도 고려하세요. 예를 들어, Flask에서 요청을 필터링하는 방법
@app.before_request
def limit_remote_addr():
allowed_ips = ['123.45.67.89'] # 허용할 IP 목록
if request.remote_addr not in allowed_ips:
return "Access Denied", 403
- 인증 추가
Flask 앱에 인증을 추가하여 외부에서 무단으로 접근하지 못하도록 설정합니다. 예: API Key를 사용한 인증.
5. 실제 배포 (권장 사항)
Flask는 개발용 서버로 설계되었으므로, 실제 배포 환경에서는 Gunicorn과 같은 WSGI 서버를 사용하고 Nginx로 리버스 프록시를 설정하는 것이 좋습니다.
pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app
이 설정 후 외부에서 안전하게 Flask 앱을 접근할 수 있습니다.
반응형
'Python > Study' 카테고리의 다른 글
파이썬 파일 다루기 고급 활용법: 추가 학습으로 파일 관리 마스터하기 (2) | 2024.10.26 |
---|---|
파이썬으로 파일 다루기 쉽게 배우기: 초보자를 위한 파일 읽기, 쓰기, 삭제 가이드 (3) | 2024.10.26 |
맥북(Mac OS)에서 아나콘다(Anaconda) 및 파이썬 설치하는 방법 (4) | 2024.10.13 |
Python 웹 자동화: Selenium 사용방법 및 옵션 완벽 가이드 (4) | 2024.10.05 |
Lama 3.2 API 만들기: 초보자를 위한 쉽게 따라할 수 있는 가이드 (4) | 2024.10.03 |