3. Unity Build 배포를 위한 Apache Web Server 구축 법

FGPRJS·2022년 4월 21일
0

Unity Portfolio Project

목록 보기
3/4

Unity의 Webgl 빌드 결과물을 Apache 웹 서버를 사용하여 배포하는 방법은 다음과 같다.


1. 빌드 옵션

Publishing Settings만을 기재한다.

  • Compression Format은 Gzip이나 Brotli 중에 하나로 한다. 이 중 어떤 설정을 선택했느냐에 따라 httpd(apache2) 설정이 바뀐다.

  • Decompression Fallback은 서버가 Gzip이나 Brotli의 압축을 해제할 줄 모를 때 설정하는 것인데, 브라우저에서의 로딩 시간이 많이 길어지는 관계로 가급적 설정하지 않는게 좋다.
    (이 옵션을 켜놓으면 로딩하기 전에 그 어떤 리소스도 제공하지 않고 시간은 오래 걸리는 이상한 과정이 추가된다.)

  • DataCaching은 unityweb 데이터를 다시 받을 일 없게 캐싱해주는 브라우저 설정이다(관련 Unity 문서). 이 옵션을 켜놓으면 캐싱 후의 로딩 속도가 비약적으로 빨라지고, 서버의 부담이 매우 크게 줄어드니 설정하는 것이 좋다.

2. Apache 서버구축

사용한 서버 버전 참고

  • AWS Lightsail
  • CentOS 7
  • Apache 2.4.6

AWS로부터 인스턴스를 할당받은 이후로 다음과 같은 과정을 거쳤다.

Apache의 default 설정 폴더 그대로 사용하였다. 변경하려면 httpd.conf 파일의 수정이 필요하다.

1. /var/www/html 폴더의 소유자 변경

chown -R [centos(소유권 변경하고자 하는 이름)] html

이 작업이 없으면 빌드한 파일을 SFTP등을 통해 html폴더로 옮기는 과정이 불가능하다. 이 과정은 httpd.conf 파일 중 DocumentRoot 항목을 수정하여 생략 가능

2. 빌드된 파일 가져오기

FileZilla등을 통하여 /var/www/html폴더에 파일을 넣는다.
html폴더에

  • Build폴더
  • TemplateData폴더
  • index.html 파일이 있으면 된다

3. httpd.conf 파일 (아파치 서버 설정 파일) 수정

LoadModule dir_module modules/mod_dir.so

dir_module은 기본적으로 생성되는 설정파일에 없으므로, 추가한다. (모듈에 관한 정보)
이 모듈이 없으면 제대로 구동되지 않는다.

mime_module부문의 Encoding 부문을 다음과 같이 수정한다.

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    AddEncoding x-compress .Z
    AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    #AddType application/x-compress .Z
    #AddType application/x-gzip .gz .tgz

MIME타입 설정 중 AddType을 사용하지 않고 AddEncoding으로 설정하는 작업이다.

4. Build 폴더에 .htaccess 파일 추가

htaccess는 분산 설정 파일이다. 이 파일이 존재하는 디렉토리, 그리고 그 하위 모든 디렉토리는 모두 이 설정파일의 영향을 받는다.

공식 샘플 코드를 참조하여 작성하면 되는데, gzip설정과 br설정이 있다. 주석을 잘 읽고 해당하는 부분을 적용하면 된다.

profile
FGPRJS

0개의 댓글