- 이미지 압축: 삼성/네이버 브라우저 호환, URL.createObjectURL 방식으로 메모리 절감, 대용량 PNG/HEIC 처리, blob 유효성 검증, 순차 압축으로 모바일 OOM 방지 - HEIC/HEIF 지원: pillow-heif 서버사이드 변환, Pillow 12.2.0 업그레이드 - 조치 페이지: '조치 완료 저장' 단일 버튼으로 단순화 - 재조치 흐름: 관리자 재조치 요청 시 이전 조치 이력을 번호 카드로 순차 표시 - 신고 순번: 전체 기준 ROW_NUMBER(oldest=1) 순번 표시, 삭제 gap 제거 - 모바일 탭바: position:fixed 적용으로 nav 하단 흰 여백 제거 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
59 lines
1.7 KiB
Nginx Configuration File
59 lines
1.7 KiB
Nginx Configuration File
# -------------------------------------------------------
|
|
# Orange Pi 5 전용 Nginx 설정 (HTTP only)
|
|
# SSL/도메인 처리는 상위 서버(5825u)에서 담당
|
|
# 외부 접근: 192.168.0.114:5700
|
|
# -------------------------------------------------------
|
|
|
|
events { worker_connections 1024; }
|
|
|
|
http {
|
|
include /etc/nginx/mime.types;
|
|
default_type application/octet-stream;
|
|
client_max_body_size 20M;
|
|
sendfile on;
|
|
access_log off;
|
|
error_log /var/log/nginx/error.log warn;
|
|
|
|
server {
|
|
listen 80;
|
|
server_name _;
|
|
|
|
root /var/www/html;
|
|
index index.html;
|
|
|
|
# QR 접속: /report/{charger_id} → report.html
|
|
location ~ ^/report/(.+)$ {
|
|
try_files /pages/report.html =404;
|
|
}
|
|
|
|
# API 프록시
|
|
location /api/ {
|
|
proxy_pass http://backend: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;
|
|
proxy_read_timeout 60s;
|
|
}
|
|
|
|
# 업로드 파일 서빙
|
|
location /uploads/ {
|
|
alias /var/www/uploads/;
|
|
expires 7d;
|
|
}
|
|
|
|
# HTML·JS·CSS 파일 — 캐시 금지 (중간 프록시/CDN 포함)
|
|
location ~* \.(html|js|css)$ {
|
|
try_files $uri =404;
|
|
add_header Cache-Control "no-cache, no-store, must-revalidate";
|
|
add_header Pragma "no-cache";
|
|
expires 0;
|
|
}
|
|
|
|
# 정적 파일 (SPA 라우팅)
|
|
location / {
|
|
try_files $uri $uri/ /index.html;
|
|
}
|
|
}
|
|
}
|