nginx 로그 뷰어 중에서 goaccess가 있다. 보통 실행시에 log 파일 위치를 지정해야 한다. 환경 설정 파일을 들여다보니 기본으로 지정할 수 있었다. log-file 항목을 찾아서 주석을 삭제하고 파일 위치를 입력해준다.
log-file /var/log/nginx/access.log
nginx 로그 뷰어 중에서 goaccess가 있다. 보통 실행시에 log 파일 위치를 지정해야 한다. 환경 설정 파일을 들여다보니 기본으로 지정할 수 있었다. log-file 항목을 찾아서 주석을 삭제하고 파일 위치를 입력해준다.
log-file /var/log/nginx/access.log
QUIC을 사용할 수 있도록 nginx 를 컴파일 했으면 실제로 이용할 수 있도록 설정한다.
QUIC은 TCP와 UDP를 사용한다. 방화벽에서 UDP 부분도 추가한다.
server {
server_name www.welovedoctor.com;
listen 443 quic reuseport;
listen 443 ssl;
http2 on;
ssl_certificate ../fullchain.pem;
ssl_certificate_key ../privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
add_header Alt-Svc 'h3=":$server_port"; ma=86400';
add_header X-protocol $server_protocol always;
}
HTTP/3가 제대로 설정되어 있는지 확인하는 곳은 위와 같다.
실제로도 확인할 수 있다.

nginx에서 http/3를 지원하는 방법은 별도의 binary 로 설치하거나 컴파일 해야 한다. 그리고 BoringSSL, QuicTLS, Libressl을 이용해야 한다.
그런데 라즈레리파이용 binary는 없었다. 그래서 컴파일 하는 방법으로 시도해 보기로 했다. BoringSSL은 무엇인가 오류가 발생해서 nginx 컴파일에서 오류가 생긴다. Libressl도 마찬가지.
QuicTLS를 이용해서 설치해 보았다. QuicTLS은 git으로 설치한다. 혼란을 막기 위해서 openssl 폴더를 quictls 로 변경한다. ./Configure 로 설치해야 한다.
git clone https://github.com/quictls/openssl
mv openssl quictls
cd quictls
./Configure
make
make install
nginx 소스를 받아서 압축을 풀고 폴더로 이동한다.
기본 설정을 그대로 유지하려면 다음과 같이 컴파일 한다. 그리고 make, make install 로 설치한다.
./configure \
--with-debug \
--prefix=/usr/share/nginx \
--sbin-path=/usr/sbin/nginx \
--conf-path=/etc/nginx/nginx.conf \
--error-log-path=/var/log/nginx/error.log \
--http-log-path=/var/log/nginx/access.log \
--pid-path=/run/nginx.pid \
--lock-path=/run/lock/subsys/nginx \
--user=www-data \
--group=www-data \
--with-threads \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_v3_module \
--with-cc-opt="-I../quictls/build/include" \
--with-ld-opt="-L../quictls/build/lib"
요즘 제공되는 nginx는 –with-http_dav_module 옵션이 기본으로 들어가 있어 RaiDrive로 그냥 연결이 되는 줄 알았다. 그런데 자꾸 접속이 되지 않았다. 그래서 nginx의 access_log를 보니 PROPFIND 항목이 보였다. 이것은 dav_ext_methods 에서 설정을 해주어야 한다. 그러기 위해서는 nginx 를 설치할 때 nginx-full로 해야 한다.
apt install nginx-full
server 블록의 location 은 다음과 같이 해주면 적어도 읽기는 항상 가능하다.
location / {
autoindex on;
autoindex_localtime on;
dav_access user:rw group:rw all:r;
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/sites-available/auth;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
}