작은숲:위키노트/Nginx 미디어위키 설정: 두 판 사이의 차이

큰숲백과, 나무를 보지 말고 큰 숲을 보라.
잔글 (문자열 찾아 바꾸기 - "분류:소프트웨어 설정" 문자열을 "분류:위키노트/소프트웨어 설정" 문자열로)
잔글 (Utolee90님이 Nginx 미디어위키 설정 문서를 작은숲:위키노트/Nginx 미디어위키 설정 문서로 이동했습니다: 제목 변경)
 
(같은 사용자의 중간 판 5개는 보이지 않습니다)
1번째 줄: 1번째 줄:
[[위키노트:Nginx|Nginx]]에서는 [[위키노트:아파치|아파치]]와 달리 <code>.htaccess</code> 파일을 쓸 수 없기 때문에 필요한 설정을 모두 <tt>server</tt> 블럭에서 처리해야 한다. 특히 [[위키노트:미디어위키 짧은 주소 설정|짧은 주소]] 방식을 쓰려면 <tt>location</tt> 지시자를 써서 Nginx에게 우리가 원하는 것을 알려줘야 한다.
[[작은숲:위키노트/Nginx|Nginx]]에서는 [[작은숲:위키노트/아파치|아파치]]와 달리 <code>.htaccess</code> 파일을 쓸 수 없기 때문에 필요한 설정을 모두 <tt>server</tt> 블럭에서 처리해야 한다. 특히 [[작은숲:위키노트/미디어위키 짧은 주소 설정|짧은 주소]] 방식을 쓰려면 <tt>location</tt> 지시자를 써서 Nginx에게 우리가 원하는 것을 알려줘야 한다.
<source lang="nginx">
<syntaxhighlight lang="nginx">
location = / {
location = / {
     rewrite ^ /wiki/ break;
     rewrite ^ /wiki/ break;
13번째 줄: 13번째 줄:
}location ^~ ^/wiki/(docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
}location ^~ ^/wiki/(docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
     internal;
     internal;
}</source>
}</syntaxhighlight>
위 설정에서는 [[위키노트:미디어위키|미디어위키]]가 루트 디렉토리 아래 <code>wiki</code> 디렉토리에 설치되어 있고, 짧은 주소를 쓸 때는 <code>/w/미디어위키</code>와 같은 형태로 쓰고자 한다.
위 설정에서는 [[작은숲:위키노트/미디어위키|미디어위키]]가 루트 디렉토리 아래 <code>wiki</code> 디렉토리에 설치되어 있고, 짧은 주소를 쓸 때는 <code>/w/미디어위키</code>와 같은 형태로 쓰고자 한다.
# 첫 번째 <tt>location</tt> 블럭은 도메인네임으로만 접속한 경우 미디어위키가 설치된 디렉토리로 보내주는 것이다.
# 첫 번째 <tt>location</tt> 블럭은 도메인네임으로만 접속한 경우 미디어위키가 설치된 디렉토리로 보내주는 것이다.
# 두 번째 <tt>location</tt> 블럭은 짧은 주소의 형태로 접속한 경우 이를 처리하기 위한 설정이다.
# 두 번째 <tt>location</tt> 블럭은 짧은 주소의 형태로 접속한 경우 이를 처리하기 위한 설정이다.
20번째 줄: 20번째 줄:
# 네 번째 <tt>location</tt> 블럭은 외부에서 접근하지 못하게 할 미디어위키의 디렉토리를 보호한다.
# 네 번째 <tt>location</tt> 블럭은 외부에서 접근하지 못하게 할 미디어위키의 디렉토리를 보호한다.
# 다섯 번째 <tt>location</tt> 블럭은 미디어위키 소프트웨어 내부에서 사용할 수도 있는 디렉토리를 설정한다.
# 다섯 번째 <tt>location</tt> 블럭은 미디어위키 소프트웨어 내부에서 사용할 수도 있는 디렉토리를 설정한다.
이와 같이 [[위키노트:웹 서버|웹 서버]]를 [[위키노트:Nginx|Nginx]]를 쓰는 경우에는 [[위키노트:아파치|아파치]]의 <code>.htaccess</code> 파일에서 했던 설정을 <tt>location</tt> 지시자를 써서 직접 설정해줘야 한다.
이와 같이 [[작은숲:위키노트/웹 서버|웹 서버]]를 [[작은숲:위키노트/Nginx|Nginx]]를 쓰는 경우에는 [[작은숲:위키노트/아파치|아파치]]의 <code>.htaccess</code> 파일에서 했던 설정을 <tt>location</tt> 지시자를 써서 직접 설정해줘야 한다.
== 참고 ==
== 참고 ==
* {{언어|영어}} [https://www.nginx.com/resources/wiki/start/topics/recipes/mediawiki/ Nginx: MediaWiki]
* {{언어|영어}} [https://www.nginx.com/resources/wiki/start/topics/recipes/mediawiki/ Nginx: MediaWiki]
30번째 줄: 30번째 줄:
{{미디어위키}}
{{미디어위키}}
[[분류:위키노트/공유]]
[[분류:위키노트/공유]]
[[분류:웹]]
[[분류:위키노트/웹]]
[[분류:서버]]
[[분류:위키노트/서버]]
[[분류:미디어위키]]
[[분류:미디어위키]]
[[분류:위키노트/소프트웨어 설정]]{{퍼온문서|위키노트|{{#invoke:string|replace|{{PAGENAME}}|위키노트:|}}}}[[분류:위키노트에서 가져온 문서]]
[[분류:위키노트/소프트웨어 설정]]{{퍼온문서|위키노트|{{#invoke:string|replace|{{PAGENAME}}|위키노트:|}}}}[[분류:위키노트에서 가져온 문서]]

2022년 5월 7일 (토) 15:20 기준 최신판

Nginx에서는 아파치와 달리 .htaccess 파일을 쓸 수 없기 때문에 필요한 설정을 모두 server 블럭에서 처리해야 한다. 특히 짧은 주소 방식을 쓰려면 location 지시자를 써서 Nginx에게 우리가 원하는 것을 알려줘야 한다.

location = / {
    rewrite ^ /wiki/ break;
}location ^~ /w/ {
    try_files $uri @mediawiki;
}location @mediawiki {
    rewrite ^/w/(.*)$   /wiki/index.php?titles=$1&args;
}location ^~ ^/wiki/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
    access_log off;
    log_not_found off;
    deny all;
}location ^~ ^/wiki/(docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
    internal;
}

위 설정에서는 미디어위키가 루트 디렉토리 아래 wiki 디렉토리에 설치되어 있고, 짧은 주소를 쓸 때는 /w/미디어위키와 같은 형태로 쓰고자 한다.

  1. 첫 번째 location 블럭은 도메인네임으로만 접속한 경우 미디어위키가 설치된 디렉토리로 보내주는 것이다.
  2. 두 번째 location 블럭은 짧은 주소의 형태로 접속한 경우 이를 처리하기 위한 설정이다.
  3. 세 번째 location 블럭에서는 실제로 rewrite 지시자를 써서 짧은 주소 형태의 주소를 제대로 처리하도록 한다.
  4. 네 번째 location 블럭은 외부에서 접근하지 못하게 할 미디어위키의 디렉토리를 보호한다.
  5. 다섯 번째 location 블럭은 미디어위키 소프트웨어 내부에서 사용할 수도 있는 디렉토리를 설정한다.

이와 같이 웹 서버Nginx를 쓰는 경우에는 아파치.htaccess 파일에서 했던 설정을 location 지시자를 써서 직접 설정해줘야 한다.

참고

이 작은숲 문서의 출처는 위키노트의 위키노트/Nginx 미디어위키 설정 문서입니다.