Ubuntu 22.04 서버에 OpenLiteSpeed 웹서버 세팅
뭔가 지루했던 것일까? 새로운 것을 하고 싶다는 생각이 들 때쯤 HTTP/3 을 적용해보는 건 어떨까 하는 생각이 들었다. 그리고 지금 이 블로그 속도도 약간 느린 듯 했고.. 가장 큰 원인은 cache 플러그인을 다시 Litespeed Cache 로 바꾼 것이 도화선이 되긴 했다.
플러그인 참고 : 워드프레스 속도를 더 빠르게 LiteSpeed Cache
OpenLiteSpeed 웹서버에 대한 자료를 찾아보니 전용 PHP 를 설치해야 하고.. 현재 최신 버전인 8.3 버전에 대해서는 redis 확장이 지원되지 않는.. 정확히는 arm64 버전에 제공되지 않아서 8.2 버전을 설치해야 한다는 것과 세팅 관련 자료를 많이 찾을 수가 없는 점이 선뜻 실행할 수 없게 만드는 점이었다. 테스트용으로 사용하는 인스턴스가 있으니 시도를 해보긴 했는데.. 예상대로 쉽지가 않았다.
현재 제공되는 LSPHP 버전과 확장은 https://rpms.litespeedtech.com/debian/pool/main/jammy/ 에서 확인할 수 있다.
80, 443, 7080, 8088 포트 오픈
iptables -I INPUT 6 -m state --state NEW -p tcp --dport 80 -j ACCEPT
iptables -I INPUT 6 -m state --state NEW -p tcp --dport 443 -j ACCEPT
iptables -I INPUT 6 -m state --state NEW -p tcp --dport 7080 -j ACCEPT
iptables -I INPUT 6 -m state --state NEW -p tcp --dport 8088 -j ACCEPT
HTTP/3 사용을 위해서는 443 포트의 udp 도 오픈이 되어야 한다.
iptables -I INPUT -p udp --dport 443 -j ACCEPT
iptable 설정 저장을 위해 아래의 명령을 실행한다.
netfilter-persistent save
OpenLiteSpeed 설치
sudo wget -O - https://repo.litespeed.sh | sudo bash
sudo apt install openlitespeed
설치 후 http://<server_ip>:8088
으로 접속하면 아래와 같은 화면을 볼 수 있다.
LSPHP8.2 설치
sudo apt install lsphp82 lsphp82-common lsphp82-{curl,igbinary,imagick,intl,mysql,opcache,redis}
PHP 설정 파일 php.ini
파일은 /usr/local/lsws/lsphp82/etc/php/8.2/litespeed/php.ini
에 있다. 설정 변경 후 적용은 아래 명령을 실행해 준다.
sudo systemctl restart lsws && sudo killall lsphp
OpenLiteSpeed 웹관리자 페이지에 접속하기 위해서는 아이디와 패스워드 설정이 필요하다. /usr/local/lsws/admin/misc/admpass.sh
을 터미널 상에서 실행하여 관리자 아이디와 패스워드를 설정해 준다.
LSPHP8.2 사용을 위해 Server Configuration > External App
에서 8.2 버전을 등록해 준다.
LSPHP8.2 설정 때 Command 부분은 lsphp82/bin/lsphp
라고 설정하면 된다. 이제 가상호스트를 등록해준다.
가상 호스트는 위와 같이 정보 입력 후 등록하면 된다. 등록 후 편집화면에서 Document Root
등의 정보를 추가로 설정한다.
80, 443 포트에 대한 Listener 를 등록해 준다.
Listener 등록이 끝나면 해당 Listener 에 가상 호스트를 매핑해 준다.
HTTPS 접속에 대한 설정이므로 가상 호스트 설정에서 인증서 정보를 등록해 준다.
인증서는 무료 인증서인 Let’s Encrypt 를 사용했고 인증서 발급은 certbot 을 이용했다.
certbot certonly --webroot -w /home/dev/www/ -d dev.chicpro.dev -d dev2.chicpro.dev
인증서가 정상적으로 생성되었다면 아래의 명령으로 정상 갱신 여부를 확인해 본다.
certbot renew --dry-run
OpenLiteSpeed 설정 완료 후 재시작하고 HTTP/3 설정이 올바른지 https://http3check.net/ 에서 확인해 본다.
만약 설정에 문제가 있어서 사이트 접속이 불가능하다면 아래와 같이 Server Error Log
부분에 오류를 확인할 수 있다.