d8d2ff21f9
- nginx Permissions-Policy: 운영에서 camera/microphone 을 self 에 허용 (기존 microphone=()/camera=() 가 LiveKit 장치 접근을 차단하던 문제 수정) - 회의 로비 빈 상태/검색결과 없음을 공용 EmptyState 로 통일(내 업무·프로젝트 화면과 동일) - 미구현인 공유 링크 안내 문구 제거(lede) - 프리조인 "카메라·마이크 권한이 없습니다" 문구 제거 - 회의실 상단 노란색 권한 안내 배너(room-err) 제거 + 관련 prop/이벤트 정리 - 회의방 이름에 한글 허용(백엔드 DTO 2종 + 프론트 검증 정규식/문구, 공백·특수문자는 계속 차단) - 멤버 초대 등급 셀렉트(DropdownSelect block) 라벨 좌측 정렬(버튼 기본 가운데정렬 상속 수정) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
50 lines
1.6 KiB
Nginx Configuration File
50 lines
1.6 KiB
Nginx Configuration File
server {
|
|
listen 80;
|
|
server_name localhost;
|
|
|
|
# ----------------------------------------
|
|
# 보안 헤더
|
|
# ----------------------------------------
|
|
add_header X-Frame-Options "SAMEORIGIN" always;
|
|
add_header X-Content-Type-Options "nosniff" always;
|
|
add_header X-XSS-Protection "1; mode=block" always;
|
|
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
|
|
# 화상회의(LiveKit)용 카메라/마이크는 자기 출처(self)에 허용. 위치정보는 차단 유지.
|
|
add_header Permissions-Policy "geolocation=(), microphone=(self), camera=(self)" always;
|
|
|
|
# ----------------------------------------
|
|
# 압축 (Gzip)
|
|
# ----------------------------------------
|
|
gzip on;
|
|
gzip_vary on;
|
|
gzip_min_length 1024;
|
|
gzip_types text/plain text/css text/javascript application/javascript application/json application/xml image/svg+xml;
|
|
|
|
# ----------------------------------------
|
|
# SPA 라우팅
|
|
# ----------------------------------------
|
|
location / {
|
|
root /usr/share/nginx/html;
|
|
index index.html index.htm;
|
|
try_files $uri $uri/ /index.html;
|
|
|
|
# 정적 자원 캐싱 (SPA 빌드 산출물은 해시 파일명이라 장기 캐싱 가능)
|
|
location ~* \.(?:js|css|woff2?|ttf|svg|png|jpg|jpeg|gif|ico)$ {
|
|
expires 30d;
|
|
add_header Cache-Control "public, immutable";
|
|
}
|
|
}
|
|
|
|
error_page 500 502 503 504 /50x.html;
|
|
location = /50x.html {
|
|
root /usr/share/nginx/html;
|
|
}
|
|
|
|
# 숨김 파일 접근 차단
|
|
location ~ /\. {
|
|
deny all;
|
|
access_log off;
|
|
log_not_found off;
|
|
}
|
|
}
|