본문 바로가기

취미, 관심/NAS, Server

[Synology] 시놀로지 Nginx 설정 유지하기, 워드프레스 고유주소 사용하기

시놀로지의 Nginx는 일반적인 설정 방법으로 설정을 하는 경우 일정 주기로 초기화가 됩니다.

그래서 오래된 팁을 보면 스케줄러를 이용해 주기적으로 덮어씌우는 등의 작업을 하게 됩니다.

 

하지만 시놀로지에서는 사용자 설정을 적용시키기 위한 방법을 마련해 두었고, 그 방법을 소개하려고 합니다.

 

들어가기 전에

DSM 7.0.1 환경에서 작성되었습니다.

SSH 접속이 필요합니다.

웹 스테이션에서 가상 호스트 설정이 되어있으며, 백앤드 서버가 nginx 여야 합니다.

 

1) 시놀로지 Nginx 설정

1. putty 등을 이용해 SSH 접속을 합니다.

2. sudo -i를 입력해 root 권한을 획득합니다.

3. cat /usr/local/etc/nginx/sites-enabled/server.webstation-vhost.conf 를 입력해 가상호스트 내용을 봅니다.

* vi, vim, nano 등으로 보셔도 무방합니다.

$ sudo -i
$ cat /usr/local/etc/nginx/sites-enabled/server.webstation-vhost.conf

이런 화면이 뜨게 됩니다. 사각형으로 표시한 부분을 보면 됩니다.

 

/usr/local/etc/nginx/conf.d/7da0c368-3315-439e-a9a4-fd1cd769b544/ 폴더 내에 우리가 원하는 설정 user.conf로 시작하는 파일을 만들어 넣으면 됩니다.
[7da0c368-3315-439e-a9a4-fd1cd769b544] 이 부분이 가상호스트마다 바뀌는 부분입니다.

* 이 부분에는 server { ... } 에 해당하는 내용을 넣을 수 없습니다.

* include 위에 작성된 내용이 먼저 적용됩니다.

 

만약, 워드프레스 고유주소를 적용하기 위함이라면,

/usr/local/etc/nginx/conf.d/7da0c368-3315-439e-a9a4-fd1cd769b544/ 폴더 아래에

user.conf.shorturl 등으로 파일명을 생성하여 설정 파일을 넣으면 됩니다.

#파일을 생성하고
$ vi /usr/local/etc/nginx/conf.d/7da0c368-3315-439e-a9a4-fd1cd769b544/user.conf.shorturl

#아래와 같이 내용을 넣어줍니다.
        location / {
                try_files $uri $uri/ /index.php?$args;
        }

 

설정 파일을 만든 후 아래와 같이 명령을 입력해 설정파일을 읽어옵니다.

$ nginx -t #구문에 문제가 없는지 점검하고
$ nginx -s reload #설정을 다시 읽어옵니다.

* 에러가 나는 경우 철자가 틀리지 않았는지 다시 확인합니다.

 

2) 조금 더 쉬운 사용을 위한 나노팁

제 경우, 조금 더 쉬운 사용을 위해 file station에서 접근이 가능한 폴더의 내용을 인클루드할 수 있도록 수정했습니다.

 

1. 가상호스트를 위한 공유폴더를 생성합니다. 저는 web_vhost 라는 공유폴더를 생성했습니다.

2. 가상호스트 식별을 위한 폴더를 생성합니다. 만약, 워드프레스를 사용할 예정이라면 wordpress 등의 폴더를 생성합니다.(web_vhost/wordpress)

3. 가상호스트의 루트 폴더가 될 www 폴더를 생성해줍니다.(web_vhost/wordpress/www)

4. www 폴더를 가상호스트 설정에서 루트로 설정해줍니다.

5. 2에서 생성한 폴더 wordpress 아래에 nginx 설정파일이 위치할 폴더를 생성합니다. 저는 nginx_conf 라고 생성했어요.(web_vhost/wordpress/nginx_config)

6. 위에서 확인했던 해당 가상호스트의 user.conf 위치를 찾아 아래 내용으로 파일을 생성합니다.

#가상호스트 폴더 안에 설정파일 생성
$vi /usr/local/etc/nginx/conf.d/7da0c368-3315-439e-a9a4-fd1cd769b544/user.conf
#파일명은 user.con 로 시작하는 이름 아무거나 넣으면 됩니다.

#vi 실행 후 a키를 누르고, 아래 내용을 복사합니다.
include /volume8/web_vhost/wordpress/nginx_conf/*.conf;

이때, *.conf 위치에 다른 형식으로 지정해도 무방합니다. *을 넣어도 되고, user.conf*로 해도 되고..

저와 동일하게 했다면 해당 폴더 아래에 .conf로 끝나는 파일을 생성하시면 되고, user.conf*로 했다면 user.conf로 시작하는 파일을 생성하시면 됩니다. 와일드카드(*)를 넣었다면 아무 이름이나 넣어도 됩니다.

 

제 경우 /volume8/이지만, volume1에 공유폴더를 생성했다면 volume1로 넣어주셔야 합니다.

 

7. 이제 nginx_conf 안에 다른 설정파일을 넣으면 됩니다. 예를 들어 워드프레스 고유주소를 사용하기 위한 rewite 내용이라면 아래와 같은 내용을 넣고 shorturl.conf 라는 이름으로 저장합니다. 이때 .conf 앞의 이름은 아무거나 넣어도 됩니다.

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

 

다시 말씀드리지만, 1~7까지의 복잡한 과정을 거칠 필요 없이, 1) 에서 설명한대로만 해도 충분합니다. 

어디까지나 저처럼 다른 분들이 만들어둔거 notepad++같은걸로 쉽게 넣기 위함입니다;;

2) 내용이 이해가 되었다면, 편의에 따라 자유롭게 설정하시면 됩니다.

/usr/local/etc/nginx/conf.d/7da0c368-3315-439e-a9a4-fd1cd769b544/ 아래에 user.conf.include 파일을 생성한 후에

include [공통으로 불러올 부분];

include [가상호스팅에서 개별적으로 적용할 부분]; 

이런식으로 적용하는 방법도 있겠죠.

 

conf 파일을 만들어 넣었다면 SSH에서 

$ nginx -t #구문에 문제가 없는지 점검하고
$ nginx -s reload #설정을 다시 읽어옵니다.