-
Notifications
You must be signed in to change notification settings - Fork 62
Nginx rewite 설정하기
sungbum hong edited this page Jun 29, 2017
·
10 revisions
이 페이지에서는 Nginx에 XE를 설치할 경우, rewrite 설정 방법에 대하여 설명합니다.
XE에서는 짧은주소의 사용을 위하여 rewrite rule을 사용하고 있습니다. 웹서버로 apache를 사용할 경우, apache의 rewrite_mod와 .htaccess 파일을 사용하여 rewrite를 구동시킵니다. 하지만 웹서버가 Nginx일 경우에는, rewrite를 위하여 별도의 설정이 필요합니다.
설정방법은 크게 두가지 과정을 거칩니다.
- xe를 위한 rewrite rule이 기록된 xe_rewrite.conf 파일을 작성
- nginx의 설정파일인 nginx.conf 파일에 새로 작성한 xe_rewrite.conf 파일을 include하기
nginx의 conf 디렉토리로 이동합니다.
(NGINX_DIR은 실제 자신의 서버에 nginx가 설치된 디렉토리 경로로 치환해야 합니다.)
# cd NGINX_DIR/conf
xe_rewrite.conf 파일을 새로 작성합니다.
# pwd
NGINX_DIR/conf
# vi xe_rewrite.conf
xe_rewrite.conf 파일의 편집기에서 아래의 내용을 붙여넣습니다.
# reserve XE Layout Template Source File (*.html)
rewrite ^/(layouts|m.layouts)/(.+)/(.+).html$ /index.php last;
# conf, query, schema
rewrite ^/(modules|addons|widgets)/(.+)/(conf|queries|schemas)/(.+).xml$ /index.php last;
# static files
rewrite ^/(.+)/files/(member_extra_info|attach|cache|faceOff)/(.*) /files/$2/$3 last;
rewrite ^/(.+)/(files|modules|widgets|widgetstyles|layouts|m.layouts|addons)/(.*) /$2/$3 last;
# rss, blogAPI
rewrite ^/(rss|atom)$ /index.php?module=rss&act=$1 last;
rewrite ^/([a-zA-Z0-9_]+)/(rss|atom|api)$ /index.php?mid=$1&act=$2 last;
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/(rss|atom|api)$ /index.php?vid=$1&mid=$2&act=$3 last;
# trackback
rewrite ^/([0-9]+)/(.+)/trackback$ /index.php?document_srl=$1&key=$2&act=trackback last;
rewrite ^/([a-zA-Z0-9_]+)/([0-9]+)/(.+)/trackback$ /index.php?vid=$1&document_srl=$2&key=$3&act=trackback last;
# administrator page
rewrite ^/admin/?$ /index.php?module=admin last;
# document permanent link
rewrite ^/([0-9]+)$ /index.php?document_srl=$1 last;
# mid link
rewrite ^/([a-zA-Z0-9_]+)/?$ /index.php?mid=$1 last;
# mid + document link
rewrite ^/([a-zA-Z0-9_]+)/([0-9]+)$ /index.php?mid=$1&document_srl=$2 last;
# vid + mid link
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/?$ /index.php?vid=$1&mid=$2 last;
# vid + mid + document link
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/([0-9]+)$ /index.php?vid=$1&mid=$2&document_srl=$3 last;
# mid + entry title
rewrite ^/([a-zA-Z0-9_]+)/entry/(.+)$ /index.php?mid=$1&entry=$2 last;
# vid + mid + entry title
rewrite ^/([a-zA-Z0-9_]+)/([a-zA-Z0-9_]+)/entry/(.+)$ /index.php?vid=$1&mid=$2&entry=$3 last;
(가상서버 기능을 사용하는 경우에는 가상서버 설정파일을 수정해야 합니다.)
nginx.conf 파일을 편집기로 엽니다.
# pwd
NGINX_DIR/conf
# vi nginx.conf
nginx.conf를 아래와 같이 수정합니다.
http {
include mime.types;
default_type application/octet-stream;
....중략....
server {
listen 80;
server_name www.mydomain.com;
root /home/public_html;
index index.php;
....중략 ....
# xe rewrite 적용하기
include xe_rewrite.conf;
}
}
위의 코드에서 봐야할 설정은 include xe-rewrite.conf
입니다. xe 사이트에 대해 설정되어 있는 server 항목 안에 include xe-rewrite.conf;
코드가 위치하면 됩니다.
nginx를 재시작합니다.
# sudo service nginx restart
다시 XE를 설치를 진행합니다. 설치 진행 과정에서 짧은 주소에 관한 안내가 나타나지 않는다면, 짧은 주소를 정상적으로 사용할 수 있습니다.