개요[편집 / 원본 편집]
아파치는 라이믹스에 포함된 .htaccess 파일만으로 짧은주소를 쓸 수 있지만, nginx는 .htaccess를 통한 설정 변경을 지원하지 않으므로 서버 설정을 직접 손봐야 한다.[1]
rewrite 규칙 내려받기[편집 / 원본 편집]
라이믹스가 제공하는 rewrite 규칙 파일을 snippets 폴더에 넣어 두고 사이트 설정에서 인클루드하는 방식이 편하다.
curl https://raw.githubusercontent.com/rhymix/rhymix/master/common/manual/server_config/rhymix-nginx.conf > /etc/nginx/snippets/rhymix.conf
사이트 설정[편집 / 원본 편집]
Ubuntu는 /etc/nginx/sites-enabled/default, CentOS는 /etc/nginx/conf.d/default.conf에 기본 설정 파일이 생성된다. 이 파일을 고치거나 같은 폴더에 다른 이름의 파일을 만들어 아래 내용을 넣는다.[1]
server {
listen 80 default; # 다른 파일을 만들어 쓰는 경우 default 삭제
root /var/www/html; # 라이믹스를 설치할 경로 (반드시 최상단에 위치해야 한다)
server_name _; # 사용할 도메인을 여기에 적어도 된다
index index.html index.htm index.php; # index.php가 반드시 포함되어야 한다
client_max_body_size 32m; # 업로드 허용 용량
include snippets/rhymix.conf; # 라이믹스 rewrite 규칙 인클루드
# location 구문을 쓰는 다른 설정은 반드시 rewrite 규칙보다 나중에 선언해야 한다
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock; # 유닉스 소켓으로 연동하는 경우
include snippets/fastcgi-php.conf;
}
}
주의할 점이 세 가지 있다.[1]
root는 반드시server블록 최상단에 있어야 한다.index에index.php가 포함되어야 한다.location을 쓰는 다른 설정은 라이믹스 rewrite 규칙보다 뒤에 와야 한다.
라이믹스는 분할 업로드를 지원하므로 client_max_body_size가 10MB 정도만 넘으면 업로드 용량은 사실상 제한이 없어진다.[1]
라이믹스 2.0 이상에서의 주의[편집 / 원본 편집]
라이믹스 2.0부터는 rewrite 규칙 안에 location / { try_files ... } 블록이 이미 포함되어 있다. 사이트 설정에 같은 블록을 또 넣으면 오류가 발생하므로 넣지 말아야 한다.[1]
PHP-FPM 연동 경로 확인[편집 / 원본 편집]
PHP 버전에 따라 소켓 경로가 달라진다. 아래 명령으로 확인할 수 있다.[1]
# Ubuntu 계열
grep -r "listen =" /etc/php/8.2/fpm/pool.d
# CentOS 계열
grep -r "listen =" /etc/php-fpm.d
로컬 포트로 연동하는 경우에는 소켓 대신 fastcgi_pass 127.0.0.1:9000;을 사용한다.
배포판별 참고[편집 / 원본 편집]
Ubuntu[편집 / 원본 편집]
비교적 최신 버전의 nginx가 패키지로 제공되므로 그대로 설치하면 된다.
apt-get install nginx
최근 Ubuntu에서는 잡다한 설정 파일을 /etc/nginx/snippets 폴더에 넣는 것이 관례이다.[1]
CentOS[편집 / 원본 편집]
기본 제공되는 nginx 버전이 낮으므로 nginx 공식 홈페이지의 RPM 저장소를 사용해 최신 버전을 설치하는 것이 좋다.
CentOS에는 snippets 폴더 관례가 없지만, conf.d 폴더에 rewrite 규칙을 넣으면 인클루드 순서가 어긋나 오류가 날 수 있다. Ubuntu처럼 snippets 폴더를 만들어 쓰는 편이 낫다.[1]
적용과 확인[편집 / 원본 편집]
설정을 바꾼 뒤에는 nginx를 다시 시작해야 한다.
nginx -t # 문법 검사
service nginx restart
재시작에서 오류가 나면 /var/log/nginx/error.log를 확인하자.[1]