mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
내용 개선 및 rewrite rule 개선
This commit is contained in:
parent
76a2ea9e2b
commit
ed4e110802
2 changed files with 66 additions and 52 deletions
|
|
@ -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** 디렉터리에 서버 설정을 추가하는 과정입니다. 위쪽 가이드로 돌아가서 마저 따라하도록 합시다.
|
||||
|
||||
##엔진엑스 재시작하기
|
||||
엔진엑스의 기본적인 설정을 마쳤습니다. 이제 엔진엑스가 변경된 설정을 로딩할 수 있도록 재시작해줘야 합니다.
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue