극한의 캐시를 구현해보았습니다. 정보
극한의 캐시를 구현해보았습니다.본문
제 메인컴은 Nginx로 돌아가고 있습니다.
그런데 최근에 오픈라이트웹서버에 흥미가 생겨서, 추가로 설치했습니다.
오픈라이트웹서버의 HTTP/3 QUIC 연결을 해보려고 했는데, 생각해보니 Nginx에서는 아직 지원하지 않기 때문에 설정할 이유가 없어져버렸습니다.
그럼에도 불구하고, 오픈라이트웹서버의 극강의 LSCACHE 플러그인을 활용해보고 싶었습니다.
Nginx에서 기본 80, 443을 먹고 있기 때문에, 설치할 때 81 442로 셋팅했습니다.
그리고 Nginx에서 프록시로 연결해서 써봤는데요.
뭔가 단독으로 오픈라이트웹서버를 사용할 때보다 약간 느린 것 같은 느낌이 들었습니다.
사양이 낮은(7년 된 i3-4130T, 8GB RAM, 256GB SSD) 홈서버라서
2개의 웹서버를 구동하는 것은 매우 비효율적이기 때문에 느린 것으로 판단했습니다.
그래서 Nginx의 프록시 캐시를 활용해보기로 했습니다.
오픈라이트웹서버는 첫 화면만 캐시하기 때문에, css, js, 이미지 파일을 전부 RAM으로 넘겨서
Nginx에서 오픈라이트웹서버로 가지 않아도, RAM에 있는 캐시파일만 읽을 수 있게 셋팅 해보았습니다.
그런데 캐시 퍼지가 안되어서 원인을 못찾았는데,
Nginx의 경우 www-data 유저와 www-data 그룹으로 돌아가는데,
오픈라이트 웹서버은 nobody nogroup으로 돌아가서, 캐시된 데이터를 삭제하지 못해서 생기는 일이었습니다.
Nginx의 유저와 그룹을 바꾸고, php7.4-fpm의 유저와 그룹도 같이 바꿔주니 이상없이 퍼지도 잘 되네요.
속도를 한번 느껴보세요! 팁도 조금 넣어보았습니다.!
다음에는 오픈라이트웹서버를 앞에 두고, Nginx를 뒤로 돌린 후 HTTP/3, QUIC 전송을 쓰거나
오픈라이트 웹서버를 단독으로 써볼까 생각하고 있습니다.
9
관련링크
베스트댓글
혹시 php-fpm 환경 설정값을 어떻게 설정하셨나요? (/etc/php-fpm.d/www.conf)
@우성짱 님이 설정한 값을 참고해서 현재 진행중인 프로젝트에 접목해볼려구요. ^.^
현재 서버 사양이 ntel® Xeon 8core, 32G 사용중인데 최대한 Full로 돌려볼려합니다. ^.^
(Apache 2.4+ PHP7.4 + MariaDB 10)
1. Nginx
Edit /etc/nginx/nginx.conf and set the user to
user webuser webgroup;
2. PHP-FPM
Edit /etc/php/7.4/fpm/pool.d/www.conf.
user = webuser
group = webgroup
...
listen.owner = webuser
listen.group = webgroup
위와 같이 총 5군데만 수정하면 끝입니다.
물론 웹파일의 권한도 webuser webgroup 으로 줘야겠지요 ㅎㅎ
서버 사양이 초특급인데요? ㅎㅎ 한번 보고 싶네요 ㅎㅎ
암튼 워드프레스를 쓰신다면 제가 한 선택이 거의 최강의 속도가 나올 것 같습니다. ㅎㅎ
https://www.wsgvet.com/web/174
찾아보니 4년 전에 시도했었네요 ㅎㅎ
프로젝트가 중요하죠! 화이팅입니다!
댓글 20개
혹시 php-fpm 환경 설정값을 어떻게 설정하셨나요? (/etc/php-fpm.d/www.conf)
@우성짱 님이 설정한 값을 참고해서 현재 진행중인 프로젝트에 접목해볼려구요. ^.^
현재 서버 사양이 ntel® Xeon 8core, 32G 사용중인데 최대한 Full로 돌려볼려합니다. ^.^
(Apache 2.4+ PHP7.4 + MariaDB 10)
1. Nginx
Edit /etc/nginx/nginx.conf and set the user to
user webuser webgroup;
2. PHP-FPM
Edit /etc/php/7.4/fpm/pool.d/www.conf.
user = webuser
group = webgroup
...
listen.owner = webuser
listen.group = webgroup
위와 같이 총 5군데만 수정하면 끝입니다.
물론 웹파일의 권한도 webuser webgroup 으로 줘야겠지요 ㅎㅎ
서버 사양이 초특급인데요? ㅎㅎ 한번 보고 싶네요 ㅎㅎ
암튼 워드프레스를 쓰신다면 제가 한 선택이 거의 최강의 속도가 나올 것 같습니다. ㅎㅎ
우성짱님은 정말 짱!!!입니다. ㅎㅎ 바로바로 실천에 바로바로 응대에...
이미 팬 됬습니다. ^.^
php-fpm의 환경설정을 전 이렇게 했는데... 더 높일려구요. ^.^
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.process_idle_timeout = 120s
pm.max_requests = 10000
그누보드에도 fastcgi cache 적용되면 정말 좋을거 같은데 워프랑 구조가 너무 달라서 적용이 어려운게 아쉬워요..
로그인 안한 익명 유저에게만 캐시된 내용 보여주면 CPU 거의 안먹을텐데 말이죠.
제가 요즘 진행하는 프로젝트가 산으로 갔다 이제 조금 정상화되고 있는데...
완전 정상화가 되면 제가 꼭 도전해보고 싶네요.
하지만 언제쯤일런지.... T.T
이번 프로젝트로 밀린 일이 한두가지가 아니라서...
https://www.wsgvet.com/web/174
찾아보니 4년 전에 시도했었네요 ㅎㅎ
프로젝트가 중요하죠! 화이팅입니다!
미국인데.. 구글 보다 빨라요.
그냥 번쩍하네요 ㄷㄷㄷㄷㄷㄷ