From df8f1f42e05a782507341565d70b2f81f9b45a4c Mon Sep 17 00:00:00 2001 From: LIKU Date: Wed, 13 Jan 2016 21:23:21 +0900 Subject: [PATCH 1/8] rhymix nginx rewrite rule --- common/manual/server_config/rhymix-nginx.conf | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 common/manual/server_config/rhymix-nginx.conf diff --git a/common/manual/server_config/rhymix-nginx.conf b/common/manual/server_config/rhymix-nginx.conf new file mode 100644 index 000000000..30927b9f8 --- /dev/null +++ b/common/manual/server_config/rhymix-nginx.conf @@ -0,0 +1,51 @@ +# reserve Rhymix Layout Template Source File (*.html) +rewrite ^/(layouts|m.layouts)/(.+)/(.+).html$ /index.php last; + +# reserve Rhymix Template Source File (*html) +rewrite ^/(skins|m.skins)/(.+)\.html$ last; /index.php last; + +# reserve setting files +rewrite ^/files/config/(.+)\.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 category +rewrite ^/([a-zA-Z0-9_]+)/category/([0-9]+)$ /index.php?mid=$1&category=$2 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; From 73c6b70ac10cca8ac2a26c7e05e4c8cda52559f3 Mon Sep 17 00:00:00 2001 From: likulogy Date: Wed, 13 Jan 2016 22:11:58 +0900 Subject: [PATCH 2/8] nginx rewrite rule configuration guide --- .../server_config/rhymix-nginx-help.html | 331 ++++++++++++++++++ 1 file changed, 331 insertions(+) create mode 100644 common/manual/server_config/rhymix-nginx-help.html diff --git a/common/manual/server_config/rhymix-nginx-help.html b/common/manual/server_config/rhymix-nginx-help.html new file mode 100644 index 000000000..2d2241e80 --- /dev/null +++ b/common/manual/server_config/rhymix-nginx-help.html @@ -0,0 +1,331 @@ + + + + + + +Nginx 리라이트 설정하기 + + + +

Nginx 리라이트 설정하기

+ +

개요

+ +

Rewrite는 주로 짧은 주소를 구현하기 위해 사용됩니다. 예를 들자면

+ +
https://example.com/index.php?mid=freeboard&document_srl=181
+
+ +

이라는 복잡한 주소를

+ +
https://example.com/freeboard/181
+
+ +

처럼 사람이 읽고 인식하기에 편한 주소로 바꾸어 주는 기능을 담당합니다.

+ +

아파치의 경우 .htaccess 파일에서 mod_rewrite 모듈을 이용하여 리라이트를 할 수 있습니다. 하지만 엔진엑스의 경우 엔진엑스의 설정 파일을 수정해야 합니다.

+ +

요약

+ +

적용하기 부터는 상세하게 설명하게 됩니다. 상세하게 설명하면 실제로는 전혀 어렵지 않은 이야기를 어렵게 설명하거나, 길이 때문에 지레 포기하는 경우가 생기기 때문에 간략하게 세줄 요약하도록 하겠습니다.

+ +
    +
  1. 엔진엑스의 설정 파일을 열고
  2. +
  3. rhymix-nginx.conf 파일을 인클루드 하고
  4. +
  5. 엔진엑스 재시작
  6. +
+ + +

적용하기

+ +

엔진엑스의 설정 파일은 우분투를 기준으로 하여

+ +
/etc/nginx/nginx.conf
+
+ +

에 존재합니다. 만약 자신의 엔진엑스의 설정 파일이 다른 곳에 있다면, 어디에 있는지 미리 찾아서 경로를 메모해 두도록 합시다.

+ +
sudo find / -name nginx.conf
+
+ +

커맨드를 이용하여 엔진엑스의 설정 파일을 검색할 수 있습니다. 관리자 권한으로 nginx.conf라는 이름을 가진 파일을 최상위(/) 디렉터리부터 검색하라는 의미입니다.

+ +

또한, nginx.conf를 수정하기 위해서는 nginx.conf를 수정할 수 있는 에디터가 필요합니다. 따라서 초보자가 가장 사용하기 좋은 'nano'를 설치해 보도록 하겠습니다.

+ +
apt-get install nano
+
+ +

이 명령어를 이용하면 nano 에디터를 설치할 수 있습니다. 물론 익숙한 에디터가 있다면 익숙한 에디터를 이용하도록 합시다.

+ +

이제 본격적으로 nginx.conf를 편집해 보도록 하겠습니다. 먼저, rhymix에서 사용되는 php 쿼리 주소들을 정리한 파일이 필요합니다. 해당 파일을 만든 뒤에 nginx.conf에 인클루드 함으로서 리라이트를 진행해 보도록 하겠습니다.

+ +

먼저 nano의 기본적인 조작법을 알아볼 필요가 있습니다. 더 강력한 조작법이 분명히 있지만, 굳이 이번 가이드에서는 다루지 않겠습니다.

+ +
ctrl + o #저장
+ctrl + x #닫기
+화살표 키 #커서 이동
+
+ +

이 매뉴얼과 같은 디렉터리에 존재하는 'rhymix-nginx.conf' 파일을 nginx.conf가 위치한 디렉터리(/etc/nginx)로 이동해 보도록 합시다. 방법은 FTP에서 드래그 앤 드롭으로 옮기셔도, 아니면 터미널 상에서 명령어를 이용해서 옮기셔도 좋습니다.

+ +

이제 nginx.conf 파일을 수정해 보도록 하겠습니다. rhymix-nginx.conf 파일을 nginx.conf 파일에 인클루드 하는게 기본적인 과정입니다.

+ +

먼저 nginx.conf 파일을 열어줍니다. (이때, 엔진엑스에서 가상 서버 기능을 사용하고 있는 경우에는 각 서버의 설정 파일을 수정해 줘야 합니다.)

+ +
nano nginx.conf
+
+ +

nginx.conf 설정 파일을 여실 수 있을겁니다. 설정 파일에는 크게 두가지 블럭이 존재합니다. 첫번째는 http{} 형태로 구성되어 있는 http 블럭, 두번째는 server{} 형태로 존재하는 server 블럭 입니다. nginx.conf 파일은

+ +
http {
+server {}
+}
+
+ +

위와 같이 구조가 짜여있는걸 확인하실 수 있는데(물론 event, worker_processes와 같은 부분도 있습니다만, 이 부분은 여기서 다루지 않겠습니다.), 우리가 주목해야 할 것은

+ +
server {}
+
+ +

블럭입니다. server 블럭에 rhymix-nginx.conf 파일을 인클루드 해 줘야 합니다.

+ +

server 블럭에는 다양한 정보가 들어 있습니다. 그 정보의 최하단(혹은 원하는 곳)에

+ +
include rhymix-nginx.conf
+
+ +

구문을 추가해서 rhymix-nginx.conf 파일을 인클루드 하도록 합니다. 만약 nginx.conf 파일을 XE에 맞게 설정하지 않은 상태라면 아래와 같이 바꿔주도록 합시다. 이때, # 뒤에 붙는 글자는 '주석'처리 된 글자입니다. 즉 nginx는 #뒤에 붙는 글자를 인식하지 않습니다.

+ +
http {
+    include mime.types;
+    default_type application/octet_stream;
+
+    server {
+        listen 80;
+        #만약 SSL을 사용하고 싶다면 80; 대신 443 ssl;을 이용하면 됩니다.
+
+        server_name example.com
+        #example.com은 자신의 도메인으로 바꾸면 됩니다. www.example.com과 example.com이 서로 다름에 유의해 주세요.
+
+        root /var/www/html;
+        #이때, 원하는 디렉터리로 홈 디렉터리를 수정해도 됩니다. 만약 /var/lol/lol로 홈 디렉터리를 사용하고 싶다면 /var/lol/lol;을 홈 디렉터리로 사용하면 됩니다.
+
+        index index.php;
+        #index.php가 기본 페이지가 된다는 의미입니다. Rhymix는 index.php를 사용하니 index.php를 넣는 것입니다.
+
+        include rhymix-nginx.conf
+        #위에서 설명드렸다시피 rhymix의 리라이트 규칙을 인클루드 하는 코드입니다.
+
+    }
+}
+
+ +

하나의 서버에 하나의 웹사이트만 돌릴 생각이라면, 이 가이드의 최하단으로 이동하시기 바랍니다.

+ +

만약, 하나의 서버에 여러개의 웹사이트를 돌리고 싶다면(=가상 서버를 사용하고 싶다면) /etc/nginx 디렉터리 아래에 새로운 하위 디렉터리를 만든 뒤 그 곳에 존재하는 모든 파일을 인클루드 해 버리면 됩니다. 그리고 그곳에서 가상 서버 파일을 생성하여 rhymix-nginx.conf를 인클루드 하면 됩니다. 예를 들면 이렇습니다.

+ +

이때, 하위 디렉터리는 conf.d 를 생성했다고 가정합니다. 즉, 하위 디렉터리의 경로는 /etc/nginx/conf.d 입니다.

+ +
http {
+    include mime.types;
+    default_type application/octet_stream;
+
+    include /etc/nginx/conf.d*;
+    #conf.d 디렉터리 내에 모든 파일을 인클루드 하겠다는 의미입니다.
+}
+
+ +

conf.d 디렉터리 아래에는 server 블럭만 들어가야 합니다. conf.d의 example.conf 파일을 생성하는 케이스를 예로 들어 설명하겠습니다.

+ +
    server {
+        listen 80;
+        #만약 SSL을 사용하고 싶다면 80; 대신 443 ssl;을 이용하면 됩니다.
+
+        server_name example.com
+        #example.com은 자신의 도메인으로 바꾸면 됩니다. www.example.com과 example.com이 서로 다름에 유의해 주세요.
+
+        root /var/www/html;
+        #이때, 원하는 디렉터리로 홈 디렉터리를 수정해도 됩니다. 만약 /var/lol/lol로 홈 디렉터리를 사용하고 싶다면 /var/lol/lol;을 홈 디렉터리로 사용하면 됩니다.
+
+        index index.php;
+        #index.php가 기본 페이지가 된다는 의미입니다. Rhymix는 index.php를 사용하니 index.php를 넣는 것입니다.
+
+        include rhymix-nginx.conf
+        #위에서 설명드렸다시피 rhymix의 리라이트 규칙을 인클루드 하는 코드입니다.
+
+    }
+
+ +

위는 conf.d 디렉터리 내에 존재하는 example.conf 파일입니다. nginx.conf 파일에서 conf.d 디렉터리 내에 존재하는 모든 파일(*)를 인클루드 하겠다고 설정하였기 때문에 nginx.conf 파일에 자동적으로 인클루드 되게 됩니다. +또한, 이미 http 블럭은 nginx.conf에서 설정이 완료되었기 때문에 nginx.conf에 인클루드 되는 conf.d의 파일은 http 블럭 없이 server 블럭으로만 구성되어야 합니다.

+ +

엔진엑스 재시작하기

+ +

엔진엑스의 기본적인 설정을 마쳤습니다. 이제 엔진엑스가 변경된 설정을 로딩할 수 있도록 재시작해줘야 합니다.

+ +

터미널을 열고

+ +
sudo service nginx reload
+
+ +

혹은

+ +
sudo service nginx restart
+
+ +

커맨드를 실행하도록 합니다. 이 커맨드는 nginx라는 서비스리로드 하거나 재시작 하도록 하라는 의미를 담고 있습니다. 보통 reload를 권장하며, restart는 권장하지 않습니다.

+ +

마치며...

+ +

이로서 엔진엑스의 리라이트 설정을 마쳤습니다. 이를 통해 읽기 복잡한 긴 주소를 짧은 주소로 변환할 수 있을 것입니다.

+ + \ No newline at end of file From c23c8ee24c8c8ba3e30b82ec0b1477e644bbd52a Mon Sep 17 00:00:00 2001 From: likulogy Date: Wed, 13 Jan 2016 23:51:43 +0900 Subject: [PATCH 3/8] =?UTF-8?q?=EB=A6=AC=EB=9D=BC=EC=9D=B4=ED=8A=B8=20?= =?UTF-8?q?=EA=B7=9C=EC=B9=99=20=EB=B0=8F=20=EA=B0=80=EC=9D=B4=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 작동 확인함. http://puu.sh/muah4/2c2aa574c3.png --- .../server_config/rhymix-nginx-help.html | 331 ------------------ .../manual/server_config/rhymix-nginx-help.md | 158 +++++++++ common/manual/server_config/rhymix-nginx.conf | 2 +- 3 files changed, 159 insertions(+), 332 deletions(-) delete mode 100644 common/manual/server_config/rhymix-nginx-help.html create mode 100644 common/manual/server_config/rhymix-nginx-help.md diff --git a/common/manual/server_config/rhymix-nginx-help.html b/common/manual/server_config/rhymix-nginx-help.html deleted file mode 100644 index 2d2241e80..000000000 --- a/common/manual/server_config/rhymix-nginx-help.html +++ /dev/null @@ -1,331 +0,0 @@ - - - - - - -Nginx 리라이트 설정하기 - - - -

Nginx 리라이트 설정하기

- -

개요

- -

Rewrite는 주로 짧은 주소를 구현하기 위해 사용됩니다. 예를 들자면

- -
https://example.com/index.php?mid=freeboard&document_srl=181
-
- -

이라는 복잡한 주소를

- -
https://example.com/freeboard/181
-
- -

처럼 사람이 읽고 인식하기에 편한 주소로 바꾸어 주는 기능을 담당합니다.

- -

아파치의 경우 .htaccess 파일에서 mod_rewrite 모듈을 이용하여 리라이트를 할 수 있습니다. 하지만 엔진엑스의 경우 엔진엑스의 설정 파일을 수정해야 합니다.

- -

요약

- -

적용하기 부터는 상세하게 설명하게 됩니다. 상세하게 설명하면 실제로는 전혀 어렵지 않은 이야기를 어렵게 설명하거나, 길이 때문에 지레 포기하는 경우가 생기기 때문에 간략하게 세줄 요약하도록 하겠습니다.

- -
    -
  1. 엔진엑스의 설정 파일을 열고
  2. -
  3. rhymix-nginx.conf 파일을 인클루드 하고
  4. -
  5. 엔진엑스 재시작
  6. -
- - -

적용하기

- -

엔진엑스의 설정 파일은 우분투를 기준으로 하여

- -
/etc/nginx/nginx.conf
-
- -

에 존재합니다. 만약 자신의 엔진엑스의 설정 파일이 다른 곳에 있다면, 어디에 있는지 미리 찾아서 경로를 메모해 두도록 합시다.

- -
sudo find / -name nginx.conf
-
- -

커맨드를 이용하여 엔진엑스의 설정 파일을 검색할 수 있습니다. 관리자 권한으로 nginx.conf라는 이름을 가진 파일을 최상위(/) 디렉터리부터 검색하라는 의미입니다.

- -

또한, nginx.conf를 수정하기 위해서는 nginx.conf를 수정할 수 있는 에디터가 필요합니다. 따라서 초보자가 가장 사용하기 좋은 'nano'를 설치해 보도록 하겠습니다.

- -
apt-get install nano
-
- -

이 명령어를 이용하면 nano 에디터를 설치할 수 있습니다. 물론 익숙한 에디터가 있다면 익숙한 에디터를 이용하도록 합시다.

- -

이제 본격적으로 nginx.conf를 편집해 보도록 하겠습니다. 먼저, rhymix에서 사용되는 php 쿼리 주소들을 정리한 파일이 필요합니다. 해당 파일을 만든 뒤에 nginx.conf에 인클루드 함으로서 리라이트를 진행해 보도록 하겠습니다.

- -

먼저 nano의 기본적인 조작법을 알아볼 필요가 있습니다. 더 강력한 조작법이 분명히 있지만, 굳이 이번 가이드에서는 다루지 않겠습니다.

- -
ctrl + o #저장
-ctrl + x #닫기
-화살표 키 #커서 이동
-
- -

이 매뉴얼과 같은 디렉터리에 존재하는 'rhymix-nginx.conf' 파일을 nginx.conf가 위치한 디렉터리(/etc/nginx)로 이동해 보도록 합시다. 방법은 FTP에서 드래그 앤 드롭으로 옮기셔도, 아니면 터미널 상에서 명령어를 이용해서 옮기셔도 좋습니다.

- -

이제 nginx.conf 파일을 수정해 보도록 하겠습니다. rhymix-nginx.conf 파일을 nginx.conf 파일에 인클루드 하는게 기본적인 과정입니다.

- -

먼저 nginx.conf 파일을 열어줍니다. (이때, 엔진엑스에서 가상 서버 기능을 사용하고 있는 경우에는 각 서버의 설정 파일을 수정해 줘야 합니다.)

- -
nano nginx.conf
-
- -

nginx.conf 설정 파일을 여실 수 있을겁니다. 설정 파일에는 크게 두가지 블럭이 존재합니다. 첫번째는 http{} 형태로 구성되어 있는 http 블럭, 두번째는 server{} 형태로 존재하는 server 블럭 입니다. nginx.conf 파일은

- -
http {
-server {}
-}
-
- -

위와 같이 구조가 짜여있는걸 확인하실 수 있는데(물론 event, worker_processes와 같은 부분도 있습니다만, 이 부분은 여기서 다루지 않겠습니다.), 우리가 주목해야 할 것은

- -
server {}
-
- -

블럭입니다. server 블럭에 rhymix-nginx.conf 파일을 인클루드 해 줘야 합니다.

- -

server 블럭에는 다양한 정보가 들어 있습니다. 그 정보의 최하단(혹은 원하는 곳)에

- -
include rhymix-nginx.conf
-
- -

구문을 추가해서 rhymix-nginx.conf 파일을 인클루드 하도록 합니다. 만약 nginx.conf 파일을 XE에 맞게 설정하지 않은 상태라면 아래와 같이 바꿔주도록 합시다. 이때, # 뒤에 붙는 글자는 '주석'처리 된 글자입니다. 즉 nginx는 #뒤에 붙는 글자를 인식하지 않습니다.

- -
http {
-    include mime.types;
-    default_type application/octet_stream;
-
-    server {
-        listen 80;
-        #만약 SSL을 사용하고 싶다면 80; 대신 443 ssl;을 이용하면 됩니다.
-
-        server_name example.com
-        #example.com은 자신의 도메인으로 바꾸면 됩니다. www.example.com과 example.com이 서로 다름에 유의해 주세요.
-
-        root /var/www/html;
-        #이때, 원하는 디렉터리로 홈 디렉터리를 수정해도 됩니다. 만약 /var/lol/lol로 홈 디렉터리를 사용하고 싶다면 /var/lol/lol;을 홈 디렉터리로 사용하면 됩니다.
-
-        index index.php;
-        #index.php가 기본 페이지가 된다는 의미입니다. Rhymix는 index.php를 사용하니 index.php를 넣는 것입니다.
-
-        include rhymix-nginx.conf
-        #위에서 설명드렸다시피 rhymix의 리라이트 규칙을 인클루드 하는 코드입니다.
-
-    }
-}
-
- -

하나의 서버에 하나의 웹사이트만 돌릴 생각이라면, 이 가이드의 최하단으로 이동하시기 바랍니다.

- -

만약, 하나의 서버에 여러개의 웹사이트를 돌리고 싶다면(=가상 서버를 사용하고 싶다면) /etc/nginx 디렉터리 아래에 새로운 하위 디렉터리를 만든 뒤 그 곳에 존재하는 모든 파일을 인클루드 해 버리면 됩니다. 그리고 그곳에서 가상 서버 파일을 생성하여 rhymix-nginx.conf를 인클루드 하면 됩니다. 예를 들면 이렇습니다.

- -

이때, 하위 디렉터리는 conf.d 를 생성했다고 가정합니다. 즉, 하위 디렉터리의 경로는 /etc/nginx/conf.d 입니다.

- -
http {
-    include mime.types;
-    default_type application/octet_stream;
-
-    include /etc/nginx/conf.d*;
-    #conf.d 디렉터리 내에 모든 파일을 인클루드 하겠다는 의미입니다.
-}
-
- -

conf.d 디렉터리 아래에는 server 블럭만 들어가야 합니다. conf.d의 example.conf 파일을 생성하는 케이스를 예로 들어 설명하겠습니다.

- -
    server {
-        listen 80;
-        #만약 SSL을 사용하고 싶다면 80; 대신 443 ssl;을 이용하면 됩니다.
-
-        server_name example.com
-        #example.com은 자신의 도메인으로 바꾸면 됩니다. www.example.com과 example.com이 서로 다름에 유의해 주세요.
-
-        root /var/www/html;
-        #이때, 원하는 디렉터리로 홈 디렉터리를 수정해도 됩니다. 만약 /var/lol/lol로 홈 디렉터리를 사용하고 싶다면 /var/lol/lol;을 홈 디렉터리로 사용하면 됩니다.
-
-        index index.php;
-        #index.php가 기본 페이지가 된다는 의미입니다. Rhymix는 index.php를 사용하니 index.php를 넣는 것입니다.
-
-        include rhymix-nginx.conf
-        #위에서 설명드렸다시피 rhymix의 리라이트 규칙을 인클루드 하는 코드입니다.
-
-    }
-
- -

위는 conf.d 디렉터리 내에 존재하는 example.conf 파일입니다. nginx.conf 파일에서 conf.d 디렉터리 내에 존재하는 모든 파일(*)를 인클루드 하겠다고 설정하였기 때문에 nginx.conf 파일에 자동적으로 인클루드 되게 됩니다. -또한, 이미 http 블럭은 nginx.conf에서 설정이 완료되었기 때문에 nginx.conf에 인클루드 되는 conf.d의 파일은 http 블럭 없이 server 블럭으로만 구성되어야 합니다.

- -

엔진엑스 재시작하기

- -

엔진엑스의 기본적인 설정을 마쳤습니다. 이제 엔진엑스가 변경된 설정을 로딩할 수 있도록 재시작해줘야 합니다.

- -

터미널을 열고

- -
sudo service nginx reload
-
- -

혹은

- -
sudo service nginx restart
-
- -

커맨드를 실행하도록 합니다. 이 커맨드는 nginx라는 서비스리로드 하거나 재시작 하도록 하라는 의미를 담고 있습니다. 보통 reload를 권장하며, restart는 권장하지 않습니다.

- -

마치며...

- -

이로서 엔진엑스의 리라이트 설정을 마쳤습니다. 이를 통해 읽기 복잡한 긴 주소를 짧은 주소로 변환할 수 있을 것입니다.

- - \ No newline at end of file diff --git a/common/manual/server_config/rhymix-nginx-help.md b/common/manual/server_config/rhymix-nginx-help.md new file mode 100644 index 000000000..e953d2da5 --- /dev/null +++ b/common/manual/server_config/rhymix-nginx-help.md @@ -0,0 +1,158 @@ +#Nginx 리라이트 설정하기 +##개요 +**Rewrite**는 주로 짧은 주소를 구현하기 위해 사용됩니다. 예를 들자면 + + https://example.com/index.php?mid=freeboard&document_srl=181 + +이라는 복잡한 주소를 + + https://example.com/freeboard/181 + +처럼 **사람이 읽고 인식하기에 편한 주소로 바꾸어 주는 기능을 담당**합니다. + +아파치의 경우 .htaccess 파일에서 mod_rewrite 모듈을 이용하여 리라이트를 할 수 있습니다. 하지만 엔진엑스의 경우 엔진엑스의 설정 파일을 수정해야 합니다. + +## 요약 +**적용하기** 부터는 상세하게 설명하게 됩니다. 상세하게 설명하면 실제로는 전혀 어렵지 않은 이야기를 어렵게 설명하거나, 길이 때문에 지레 포기하는 경우가 생기기 때문에 간략하게 세줄 요약하도록 하겠습니다. + +1. 엔진엑스의 설정 파일을 열고 +2. rhymix-nginx.conf 파일을 인클루드 하고 +3. 엔진엑스 재시작 + +## 적용하기 +엔진엑스의 설정 파일은 우분투를 기준으로 하여 apt-get으로 설치했다면 + + /etc/nginx/nginx.conf + +에 존재합니다. 만약 자신의 엔진엑스의 설정 파일이 어디에 있는지 모른다면 아래와 같은 커맨드를 입력하여 엔진엑스의 설정파일을 찾을 수 있습니다. 이 커맨드는 **관리자 권한**을 이용하여 **nginx.conf**라는 **이름**을 가진 파일을 **찾으라**는 명령어입니다. 검색이 완료될 때 까지는 제법 긴 시간이 필요하니 기다리도록 합시다. + + # sudo find / -name nginx.conf + +명령어의 결과는 아래와 같은 형식으로 출력됩니다. + + /etc/nginx/nginx.conf + +눈치 채셨겠지만, nginx.conf가 위치하고 있는 디렉터리의 경로입니다. + +또한, nginx.conf를 수정하기 위해서는 nginx.conf를 수정할 수 있는 에디터가 필요합니다. 따라서 초보자가 가장 사용하기 좋은 'nano'를 설치해 보도록 하겠습니다. + + # apt-get install nano + +이 명령어를 이용하면 nano 에디터를 설치할 수 있습니다. 물론 익숙한 에디터가 있다면 익숙한 에디터를 이용하도록 합시다. + +이제 본격적으로 nginx.conf를 편집해 보도록 하겠습니다. 먼저, rhymix에서 사용되는 php 쿼리 주소들을 정리한 파일이 필요합니다. 해당 파일을 만든 뒤에 nginx.conf에 인클루드 함으로서 리라이트를 진행해 보도록 하겠습니다. + +먼저 nano의 기본적인 조작법을 알아볼 필요가 있습니다. 더 강력한 조작법이 분명히 있지만, 굳이 이번 가이드에서는 다루지 않겠습니다. + +1. ctrl + o #저장 +2. ctrl + x #닫기 +3. 화살표 키 #커서 이동 + +이 매뉴얼과 같은 디렉터리에 존재하는 'rhymix-nginx.conf' 파일을 nginx.conf가 위치한 디렉터리(/etc/nginx)로 이동해 보도록 합시다. 방법은 FTP에서 드래그 앤 드롭으로 옮기셔도, 아니면 터미널 상에서 명령어를 이용해서 옮기셔도 좋습니다. + +이제 **nginx.conf** 파일을 수정해 보도록 하겠습니다. rhymix-nginx.conf 파일을 **nginx.conf** 파일에 인클루드 하는 첫번째 과정입니다. + +먼저 **nginx.conf** 파일을 열어줍니다. (이때, 엔진엑스에서 가상 서버 기능을 사용하고 있는 경우에는 각 서버의 설정 파일을 수정해 줘야 합니다.) + + nano nginx.conf + +nginx.conf 설정 파일을 여실 수 있을겁니다. 설정 파일에는 크게 두가지 **블럭**이 존재합니다. 첫번째는 **http{ }** 형태로 구성되어 있는 **http 블럭**, 두번째는 **server{ }** 형태로 존재하는 **server 블럭** 입니다. **nginx.conf** 파일은 + + http { + server {} + } + +위와 같이 구조가 짜여있는걸 확인하실 수 있습니다.(물론 event, worker_processes와 같은 부분도 있습니다만, 이 부분은 여기서 다루지 않겠습니다.), 우리가 주목해야 할 것은 + + server { } + +블럭입니다. server 블럭에 **rhymix-nginx.conf** 파일을 인클루드 해 줘야 합니다. + +server 블럭에는 다양한 정보가 들어 있습니다. 그 정보의 최하단(혹은 원하는 곳)에 + + include rhymix-nginx.conf; + +구문을 추가해서 rhymix-nginx.conf 파일을 인클루드 하도록 합니다. server {} 내부의 형태가 아래와 같이 설정되었다면 제대로 설정된 것입니다. 자신이 원하는 서버의 형태에 따라서 server 블럭의 형태는 자유롭게 설정할 수 있습니다. + + server { + listen 80; + #만약 SSL을 사용하고 싶다면 80; 대신 443 ssl;을 이용하면 됩니다. SSL을 이용하는 경우 추가적인 세팅이 필요하므로, 관련 팁을 참조하시길 바랍니다. + + server_name example.com; + #example.com은 자신의 도메인으로 바꾸면 됩니다. www.example.com과 example.com이 서로 다름에 유의해주세요. + + root /var/www/html; + #이때, 원하는 디렉터리로 홈 디렉터리를 수정해도 됩니다. 만약 /var/lol/lol로 홈 디렉터리를 사용하고 싶다면 /var/lol/lol;을 홈 디렉터리로 사용하면 됩니다. + + index index.php; + #index.php가 기본 페이지가 된다는 의미입니다. Rhymix는 index.php를 사용하니 index.php를 넣는 것입니다. 이 부분은 변경할 수 없습니다. + + include rhymix-nginx.conf; + #가장 중요한 부분입니다. 위에서 설명드렸다시피 RhymiX의 리라이트 규칙을 인클루드 하는 코드입니다. + } + + +하나의 서버에 하나의 웹사이트만 돌릴 생각이라면, 이 가이드의 최하단으로 이동하시기 바랍니다. + +만약, 하나의 서버에 여러개의 웹사이트를 돌리고 싶다면(=가상 서버를 사용하고 싶다면) **/etc/nginx/site-enabled** 디렉터리에 **server 블럭**을 가지는 파일을 생성하면 됩니다. 우분투의 기본 nginx.conf를 살펴 보면 아래와 같은데요(다른 리눅스 배포판이라면 nginx.conf의 내용도 다를 수 있습니다. 기본적으로 include를 이용하여 하위 디렉터리의 설정 파일을 인클루드 한다는 점은 동일합니다.), + + http { + (...중략...) + + include /etc/nginx/conf.d/*.conf; + include /etc/nginx/site-enabled/*; + } + +**/etc/nginx/conf.d** 디렉터리 내에 있는 .conf 확장자를 모두 인클루드 하며, **/etc/nginx/site-enabled**에 들어 있는 모든 파일을 인클루드 한다는 의미입니다. 따라서, site-enabled 디렉터리에 아래와 같은 서버 설정을 작성합니다. 용도에 따라서 서버 파일의 내용은 얼마든지 바뀔 수 있습니다. 아래 서버 파일은 + +1. 80 포트를 이용하여 보안 연결 없는 일반 HTTP 연결을 하고 +2. example.com 도메인을 사용하며 +3. /var/www/html 디렉터리에 RhymiX 파일이 위치하는 서버의 설정입니다. + +파일의 이름은 'example.conf'라고 가정하도록 하겠습니다. + + server { + listen 80; + #만약 SSL을 사용하고 싶다면 80; 대신 443 ssl;을 이용하면 됩니다. SSL을 이용하는 경우 추가적인 설정이 필요하므로, 관련 팁을 참조하시기 바랍니다. + + server_name example.com; + #example.com은 자신의 도메인으로 바꾸면 됩니다. www.example.com과 example.com이 서로 다름에 유의해 주세요. + + root /var/www/html; + #이때, 원하는 디렉터리로 홈 디렉터리를 수정해도 됩니다. 만약 /var/lol/lol로 홈 디렉터리를 사용하고 싶다면 /var/lol/lol;을 홈 디렉터리로 사용하면 됩니다. + + index index.php; + #index.php가 기본 페이지가 된다는 의미입니다. Rhymix는 index.php를 사용하니 index.php를 넣는 것입니다. + + include /etc/nginx/rhymix-nginx.conf; + #위에서 설명드렸다시피 rhymix의 리라이트 규칙을 인클루드 하는 코드입니다. + + } + +가상 호스트 설정 파일에 include /etc/nginx/rhymix-nginx.conf 파일을 인클루드 하도록 합니다. + +혹은, 추가하는 include 구문을 아래와 같이 추가할 수도 있지만, **절대로 이런 방식으로 추가해서는 안됩니다.** **반면교사를 위한 보여주기입니다.** + + include /XE_설치경로/common/manual/server_config/rhymix-nginx.conf; + +XE의 설치 경로가 **/var/www/html**이라면, + + include /var/www/html/common/manual/server_config/rhymix-nginx.conf; + +를 추가하면 됩니다. 하지만, 위와 같은 형식의 추가는 웹서버의 디렉터리를 참조하기 때문에 rhymix-nginx.conf 파일이 변조되었을 때 nginx의 rewrite 설정도 함께 바뀌기 때문에 **절대로 사용해서는 안됩니다.** + +##엔진엑스 재시작하기 +엔진엑스의 기본적인 설정을 마쳤습니다. 이제 엔진엑스가 변경된 설정을 로딩할 수 있도록 재시작해줘야 합니다. + +터미널을 열고 + + # sudo service nginx reload + +혹은 + + # sudo service nginx restart + +커맨드를 실행하도록 합니다. 이 커맨드는 **nginx**라는 **서비스**를 **리로드 하거나 재시작** 하도록 하라는 의미를 담고 있습니다. 보통 reload를 권장하며, restart는 권장하지 않습니다. + +##마치며... +이로서 엔진엑스의 리라이트 설정을 마쳤습니다. 이를 통해 읽기 복잡한 긴 주소를 짧은 주소로 변환할 수 있을 것입니다. \ No newline at end of file diff --git a/common/manual/server_config/rhymix-nginx.conf b/common/manual/server_config/rhymix-nginx.conf index 30927b9f8..20411b96c 100644 --- a/common/manual/server_config/rhymix-nginx.conf +++ b/common/manual/server_config/rhymix-nginx.conf @@ -2,7 +2,7 @@ rewrite ^/(layouts|m.layouts)/(.+)/(.+).html$ /index.php last; # reserve Rhymix Template Source File (*html) -rewrite ^/(skins|m.skins)/(.+)\.html$ last; /index.php last; +rewrite /(skins|m.skins)/(.+)\.html$ /index.php last; # reserve setting files rewrite ^/files/config/(.+)\.php$ last; From 1012e31659f0cb467d6d04a38ecb36f5240b4964 Mon Sep 17 00:00:00 2001 From: likulogy Date: Wed, 13 Jan 2016 23:58:43 +0900 Subject: [PATCH 4/8] =?UTF-8?q?=EC=98=A4=ED=83=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit XE -> RhymiX --- common/manual/server_config/rhymix-nginx-help.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/manual/server_config/rhymix-nginx-help.md b/common/manual/server_config/rhymix-nginx-help.md index e953d2da5..cf23562fc 100644 --- a/common/manual/server_config/rhymix-nginx-help.md +++ b/common/manual/server_config/rhymix-nginx-help.md @@ -133,7 +133,7 @@ server 블럭에는 다양한 정보가 들어 있습니다. 그 정보의 최 혹은, 추가하는 include 구문을 아래와 같이 추가할 수도 있지만, **절대로 이런 방식으로 추가해서는 안됩니다.** **반면교사를 위한 보여주기입니다.** - include /XE_설치경로/common/manual/server_config/rhymix-nginx.conf; + include /RhymiX_설치경로/common/manual/server_config/rhymix-nginx.conf; XE의 설치 경로가 **/var/www/html**이라면, From 76a2ea9e2b6313d1848a36f35c6353645d68d889 Mon Sep 17 00:00:00 2001 From: likulogy Date: Thu, 14 Jan 2016 00:00:25 +0900 Subject: [PATCH 5/8] =?UTF-8?q?=EC=98=A4=ED=83=80=20=EC=88=98=EC=A0=95=20?= =?UTF-8?q?=EB=B0=8F=20=EB=82=B4=EC=9A=A9=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit XE -> RhymiX --- common/manual/server_config/rhymix-nginx-help.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/manual/server_config/rhymix-nginx-help.md b/common/manual/server_config/rhymix-nginx-help.md index cf23562fc..1d05f8776 100644 --- a/common/manual/server_config/rhymix-nginx-help.md +++ b/common/manual/server_config/rhymix-nginx-help.md @@ -10,7 +10,7 @@ 처럼 **사람이 읽고 인식하기에 편한 주소로 바꾸어 주는 기능을 담당**합니다. -아파치의 경우 .htaccess 파일에서 mod_rewrite 모듈을 이용하여 리라이트를 할 수 있습니다. 하지만 엔진엑스의 경우 엔진엑스의 설정 파일을 수정해야 합니다. +아파치의 경우 .htaccess 파일에서 mod_rewrite 모듈을 이용하여 리라이트를 할 수 있습니다. 하지만 엔진엑스의 경우 엔진엑스의 설정 파일을 수정해야 리라이트를 진행할 수 있습니다. 하지만 **절대 어렵지 않으니** 걱정하실 필요 없습니다. ## 요약 **적용하기** 부터는 상세하게 설명하게 됩니다. 상세하게 설명하면 실제로는 전혀 어렵지 않은 이야기를 어렵게 설명하거나, 길이 때문에 지레 포기하는 경우가 생기기 때문에 간략하게 세줄 요약하도록 하겠습니다. @@ -135,7 +135,7 @@ server 블럭에는 다양한 정보가 들어 있습니다. 그 정보의 최 include /RhymiX_설치경로/common/manual/server_config/rhymix-nginx.conf; -XE의 설치 경로가 **/var/www/html**이라면, +RhymiX의 설치 경로가 **/var/www/html**이라면, include /var/www/html/common/manual/server_config/rhymix-nginx.conf; From ed4e110802d275adeadf66de4a0b00ef8d31ecaf Mon Sep 17 00:00:00 2001 From: likulogy Date: Thu, 14 Jan 2016 11:28:02 +0900 Subject: [PATCH 6/8] =?UTF-8?q?=EB=82=B4=EC=9A=A9=20=EA=B0=9C=EC=84=A0=20?= =?UTF-8?q?=EB=B0=8F=20rewrite=20rule=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manual/server_config/rhymix-nginx-help.md | 106 +++++++++++------- common/manual/server_config/rhymix-nginx.conf | 12 +- 2 files changed, 66 insertions(+), 52 deletions(-) diff --git a/common/manual/server_config/rhymix-nginx-help.md b/common/manual/server_config/rhymix-nginx-help.md index 1d05f8776..a48ca3110 100644 --- a/common/manual/server_config/rhymix-nginx-help.md +++ b/common/manual/server_config/rhymix-nginx-help.md @@ -19,12 +19,14 @@ 2. rhymix-nginx.conf 파일을 인클루드 하고 3. 엔진엑스 재시작 -## 적용하기 +## 적용하기 (개관) 엔진엑스의 설정 파일은 우분투를 기준으로 하여 apt-get으로 설치했다면 /etc/nginx/nginx.conf -에 존재합니다. 만약 자신의 엔진엑스의 설정 파일이 어디에 있는지 모른다면 아래와 같은 커맨드를 입력하여 엔진엑스의 설정파일을 찾을 수 있습니다. 이 커맨드는 **관리자 권한**을 이용하여 **nginx.conf**라는 **이름**을 가진 파일을 **찾으라**는 명령어입니다. 검색이 완료될 때 까지는 제법 긴 시간이 필요하니 기다리도록 합시다. +에 존재합니다. 대부분의 경우 **/etc/nginx.conf** 혹은 **/usr/local/nginx/nginx.conf**입니다. + +만약 자신의 엔진엑스의 설정 파일이 어디에 있는지 모른다면 아래와 같은 커맨드를 입력하여 엔진엑스의 설정파일을 찾을 수 있습니다. 이 커맨드는 **관리자 권한**을 이용하여 **nginx.conf**라는 **이름**을 가진 파일을 **찾으라**는 명령어입니다. 검색이 완료될 때 까지는 **엄청나게** 긴 시간이 필요하니 기다리도록 합시다. # sudo find / -name nginx.conf @@ -48,7 +50,10 @@ 2. ctrl + x #닫기 3. 화살표 키 #커서 이동 -이 매뉴얼과 같은 디렉터리에 존재하는 'rhymix-nginx.conf' 파일을 nginx.conf가 위치한 디렉터리(/etc/nginx)로 이동해 보도록 합시다. 방법은 FTP에서 드래그 앤 드롭으로 옮기셔도, 아니면 터미널 상에서 명령어를 이용해서 옮기셔도 좋습니다. +이 매뉴얼과 같은 디렉터리에 존재하는 'rhymix-nginx.conf' 파일을 nginx.conf가 위치한 디렉터리(/etc/nginx)로 이동해 보도록 합시다. + + [주석입니다. sudo mv (원본 디렉터리) (옮길 디렉터리)] + # sudo mv /(RhymiX의 설치 디렉터리)/common/manual/server-config/rhymix-nginx.conf /etc/nginx/ 이제 **nginx.conf** 파일을 수정해 보도록 하겠습니다. rhymix-nginx.conf 파일을 **nginx.conf** 파일에 인클루드 하는 첫번째 과정입니다. @@ -56,76 +61,56 @@ nano nginx.conf -nginx.conf 설정 파일을 여실 수 있을겁니다. 설정 파일에는 크게 두가지 **블럭**이 존재합니다. 첫번째는 **http{ }** 형태로 구성되어 있는 **http 블럭**, 두번째는 **server{ }** 형태로 존재하는 **server 블럭** 입니다. **nginx.conf** 파일은 +nginx.conf 설정 파일을 여실 수 있을겁니다. 설정 파일에는 크게 두가지 **블럭**이 존재합니다. 첫번째는 **http{ }** 형태로 구성되어 있는 **http 블럭**, 두번째는 **server{ }** 형태로 존재하는 **server 블럭** 입니다. 리눅스 배포판에 따라서 **nginx.conf** 파일에 **server 블럭**이 없을수도 있습니다. **nginx.conf** 파일은 http { server {} } +내지는, -위와 같이 구조가 짜여있는걸 확인하실 수 있습니다.(물론 event, worker_processes와 같은 부분도 있습니다만, 이 부분은 여기서 다루지 않겠습니다.), 우리가 주목해야 할 것은 + http { + } + +위와 같이 구조가 짜여있는걸 확인하실 수 있습니다.(물론 event, worker_processes와 같은 부분도 있습니다만, 이 부분은 여기서 다루지 않겠습니다.) - server { } +## 적용하기 (가상 호스트 설정) -블럭입니다. server 블럭에 **rhymix-nginx.conf** 파일을 인클루드 해 줘야 합니다. - -server 블럭에는 다양한 정보가 들어 있습니다. 그 정보의 최하단(혹은 원하는 곳)에 - - include rhymix-nginx.conf; - -구문을 추가해서 rhymix-nginx.conf 파일을 인클루드 하도록 합니다. server {} 내부의 형태가 아래와 같이 설정되었다면 제대로 설정된 것입니다. 자신이 원하는 서버의 형태에 따라서 server 블럭의 형태는 자유롭게 설정할 수 있습니다. - - server { - listen 80; - #만약 SSL을 사용하고 싶다면 80; 대신 443 ssl;을 이용하면 됩니다. SSL을 이용하는 경우 추가적인 세팅이 필요하므로, 관련 팁을 참조하시길 바랍니다. - - server_name example.com; - #example.com은 자신의 도메인으로 바꾸면 됩니다. www.example.com과 example.com이 서로 다름에 유의해주세요. - - root /var/www/html; - #이때, 원하는 디렉터리로 홈 디렉터리를 수정해도 됩니다. 만약 /var/lol/lol로 홈 디렉터리를 사용하고 싶다면 /var/lol/lol;을 홈 디렉터리로 사용하면 됩니다. - - index index.php; - #index.php가 기본 페이지가 된다는 의미입니다. Rhymix는 index.php를 사용하니 index.php를 넣는 것입니다. 이 부분은 변경할 수 없습니다. - - include rhymix-nginx.conf; - #가장 중요한 부분입니다. 위에서 설명드렸다시피 RhymiX의 리라이트 규칙을 인클루드 하는 코드입니다. - } - - -하나의 서버에 하나의 웹사이트만 돌릴 생각이라면, 이 가이드의 최하단으로 이동하시기 바랍니다. - -만약, 하나의 서버에 여러개의 웹사이트를 돌리고 싶다면(=가상 서버를 사용하고 싶다면) **/etc/nginx/site-enabled** 디렉터리에 **server 블럭**을 가지는 파일을 생성하면 됩니다. 우분투의 기본 nginx.conf를 살펴 보면 아래와 같은데요(다른 리눅스 배포판이라면 nginx.conf의 내용도 다를 수 있습니다. 기본적으로 include를 이용하여 하위 디렉터리의 설정 파일을 인클루드 한다는 점은 동일합니다.), +엔진엑스는 특정 폴더를 인클루드 함으로서 보다 간편하게 사이트를 사용할 수 있습니다. 아래의 nginx.conf는 우분투의 기본 nginx.conf입니다. http { (...중략...) + # /etc/nginx/conf.d** 디렉터리 내에 있는 .conf 확장자를 모두 인클루드 하며, **/etc/nginx/site-enabled**에 들어 있는 모든 파일을 인클루드 한다 include /etc/nginx/conf.d/*.conf; include /etc/nginx/site-enabled/*; } + +**만약 include 구문이 없다면, 가이드의 한 항목 아래로 갑니다** -**/etc/nginx/conf.d** 디렉터리 내에 있는 .conf 확장자를 모두 인클루드 하며, **/etc/nginx/site-enabled**에 들어 있는 모든 파일을 인클루드 한다는 의미입니다. 따라서, site-enabled 디렉터리에 아래와 같은 서버 설정을 작성합니다. 용도에 따라서 서버 파일의 내용은 얼마든지 바뀔 수 있습니다. 아래 서버 파일은 +site-enabled 디렉터리에 아래와 같은 서버 설정을 작성합니다. 용도에 따라서 서버 파일의 내용은 얼마든지 바뀔 수 있습니다. 아래 서버 파일은 1. 80 포트를 이용하여 보안 연결 없는 일반 HTTP 연결을 하고 2. example.com 도메인을 사용하며 -3. /var/www/html 디렉터리에 RhymiX 파일이 위치하는 서버의 설정입니다. +3. /var/www/html 디렉터리에 RhymiX 파일이 위치하고 +4. site-enabled 디렉터리에 위치한 파일입니다. 파일의 이름은 'example.conf'라고 가정하도록 하겠습니다. server { - listen 80; #만약 SSL을 사용하고 싶다면 80; 대신 443 ssl;을 이용하면 됩니다. SSL을 이용하는 경우 추가적인 설정이 필요하므로, 관련 팁을 참조하시기 바랍니다. - - server_name example.com; + listen 80; + #example.com은 자신의 도메인으로 바꾸면 됩니다. www.example.com과 example.com이 서로 다름에 유의해 주세요. + server_name example.com; - root /var/www/html; #이때, 원하는 디렉터리로 홈 디렉터리를 수정해도 됩니다. 만약 /var/lol/lol로 홈 디렉터리를 사용하고 싶다면 /var/lol/lol;을 홈 디렉터리로 사용하면 됩니다. + root /var/www/html; - index index.php; #index.php가 기본 페이지가 된다는 의미입니다. Rhymix는 index.php를 사용하니 index.php를 넣는 것입니다. + index index.php; - include /etc/nginx/rhymix-nginx.conf; #위에서 설명드렸다시피 rhymix의 리라이트 규칙을 인클루드 하는 코드입니다. + include /etc/nginx/rhymix-nginx.conf; } @@ -141,6 +126,41 @@ RhymiX의 설치 경로가 **/var/www/html**이라면, 를 추가하면 됩니다. 하지만, 위와 같은 형식의 추가는 웹서버의 디렉터리를 참조하기 때문에 rhymix-nginx.conf 파일이 변조되었을 때 nginx의 rewrite 설정도 함께 바뀌기 때문에 **절대로 사용해서는 안됩니다.** +## 만약 가상호스트 설정이 되어 있지 않다면 +만약 nginx.conf에 위와 비슷한 경로를 인클루드하는 구문이 **없다면** 추가 해 주도록 합시다. 핵심은 **경로를 인클루드 하는 것**입니다. + + +대부분의 리눅스 배포판에서는 server 블럭이 nginx.conf에 존재하지 않습니다. 따라서 특정 경로를 인클루드 하는 구문을 **추가하기만 하면 됩니다.** 이때, **nginx.conf**에 **server {} 블럭이 존재하면 에러가 발생할 수도 있습니다.** 따라서 **인클루드 구문을 없었는데 추가했다면** server 블럭을 찾아서 삭제해주도록 합니다. 예시를 들어 보여드리겠습니다. + + + # 보통 이런 형태지만.... + http { + (...중략...) + } + + # 원래 존재하던 conf 파일이 이런 형태일수도 있다... + http { + (...중략...) + server { + (...생략...) + } + } + + #이렇게 바꿔주자! + http { + (...중략...) + + include /etc/nginx/conf.d/*.conf; + include /etc/nginx/site-enabled/*; + } + +**include 구문이 없었는데 추가한 경우라면** 명령어를 이용해서 추가한 인클루드 구문의 디렉터리를 생성해 주도록 합시다. + + # sudo mkdir /etc/nginx/conf.d + # sudo mkdir /etc/nginx/site-enabled + +이 이후는 위에서 보신것과 마찬가지로 **site-enabled** 디렉터리에 서버 설정을 추가하는 과정입니다. 위쪽 가이드로 돌아가서 마저 따라하도록 합시다. + ##엔진엑스 재시작하기 엔진엑스의 기본적인 설정을 마쳤습니다. 이제 엔진엑스가 변경된 설정을 로딩할 수 있도록 재시작해줘야 합니다. diff --git a/common/manual/server_config/rhymix-nginx.conf b/common/manual/server_config/rhymix-nginx.conf index 20411b96c..d7b507fcd 100644 --- a/common/manual/server_config/rhymix-nginx.conf +++ b/common/manual/server_config/rhymix-nginx.conf @@ -1,14 +1,8 @@ -# reserve Rhymix Layout Template Source File (*.html) -rewrite ^/(layouts|m.layouts)/(.+)/(.+).html$ /index.php last; - -# reserve Rhymix Template Source File (*html) -rewrite /(skins|m.skins)/(.+)\.html$ /index.php last; +# conf, query, schema, skins, layouts, m.layouts +rewrite ^/(modules|addons|widgets|layouts|m.layouts)/(.+)\.(html|xml)$ /index.php last; # reserve setting files -rewrite ^/files/config/(.+)\.php$ last; - -# conf, query, schema -rewrite ^/(modules|addons|widgets)/(.+)/(conf|queries|schemas)/(.+).xml$ /index.php last; +rewrite ^/files/config/(.+)\.php$ /index.php last; # static files rewrite ^/(.+)/files/(member_extra_info|attach|cache|faceOff)/(.*) /files/$2/$3 last; From 02b1c2924f0389459a611da56f8cc162ea7a83fe Mon Sep 17 00:00:00 2001 From: likulogy Date: Thu, 14 Jan 2016 11:34:12 +0900 Subject: [PATCH 7/8] =?UTF-8?q?Rewrite=20rule=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit by @kijin --- common/manual/server_config/rhymix-nginx.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/manual/server_config/rhymix-nginx.conf b/common/manual/server_config/rhymix-nginx.conf index d7b507fcd..1c6920eb7 100644 --- a/common/manual/server_config/rhymix-nginx.conf +++ b/common/manual/server_config/rhymix-nginx.conf @@ -1,5 +1,5 @@ # conf, query, schema, skins, layouts, m.layouts -rewrite ^/(modules|addons|widgets|layouts|m.layouts)/(.+)\.(html|xml)$ /index.php last; +rewrite ^/(modules|addons|widgets|(m\.)?layouts)/(.+)\.(html|xml)$ /index.php last; # reserve setting files rewrite ^/files/config/(.+)\.php$ /index.php last; From 50088c2f66f226a51e00969a0fdb4b67a0232181 Mon Sep 17 00:00:00 2001 From: LIKU Date: Thu, 14 Jan 2016 13:10:27 +0900 Subject: [PATCH 8/8] Server-config -> server_config --- common/manual/server_config/rhymix-nginx-help.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common/manual/server_config/rhymix-nginx-help.md b/common/manual/server_config/rhymix-nginx-help.md index a48ca3110..6ce97fb20 100644 --- a/common/manual/server_config/rhymix-nginx-help.md +++ b/common/manual/server_config/rhymix-nginx-help.md @@ -53,7 +53,7 @@ 이 매뉴얼과 같은 디렉터리에 존재하는 'rhymix-nginx.conf' 파일을 nginx.conf가 위치한 디렉터리(/etc/nginx)로 이동해 보도록 합시다. [주석입니다. sudo mv (원본 디렉터리) (옮길 디렉터리)] - # sudo mv /(RhymiX의 설치 디렉터리)/common/manual/server-config/rhymix-nginx.conf /etc/nginx/ + # sudo mv /(RhymiX의 설치 디렉터리)/common/manual/server_config/rhymix-nginx.conf /etc/nginx/ 이제 **nginx.conf** 파일을 수정해 보도록 하겠습니다. rhymix-nginx.conf 파일을 **nginx.conf** 파일에 인클루드 하는 첫번째 과정입니다. @@ -175,4 +175,4 @@ RhymiX의 설치 경로가 **/var/www/html**이라면, 커맨드를 실행하도록 합니다. 이 커맨드는 **nginx**라는 **서비스**를 **리로드 하거나 재시작** 하도록 하라는 의미를 담고 있습니다. 보통 reload를 권장하며, restart는 권장하지 않습니다. ##마치며... -이로서 엔진엑스의 리라이트 설정을 마쳤습니다. 이를 통해 읽기 복잡한 긴 주소를 짧은 주소로 변환할 수 있을 것입니다. \ No newline at end of file +이로서 엔진엑스의 리라이트 설정을 마쳤습니다. 이를 통해 읽기 복잡한 긴 주소를 짧은 주소로 변환할 수 있을 것입니다.