작은숲:위키노트/Nginx 미디어위키 설정: 두 판 사이의 차이
잔글 (문자열 찾아 바꾸기 - "분류:소프트웨어 설정" 문자열을 "분류:위키노트/소프트웨어 설정" 문자열로) |
잔글 (Utolee90님이 Nginx 미디어위키 설정 문서를 작은숲:위키노트/Nginx 미디어위키 설정 문서로 이동했습니다: 제목 변경) |
||
| (같은 사용자의 중간 판 5개는 보이지 않습니다) | |||
| 1번째 줄: | 1번째 줄: | ||
[[위키노트 | [[작은숲:위키노트/Nginx|Nginx]]에서는 [[작은숲:위키노트/아파치|아파치]]와 달리 <code>.htaccess</code> 파일을 쓸 수 없기 때문에 필요한 설정을 모두 <tt>server</tt> 블럭에서 처리해야 한다. 특히 [[작은숲:위키노트/미디어위키 짧은 주소 설정|짧은 주소]] 방식을 쓰려면 <tt>location</tt> 지시자를 써서 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; | ||
}</ | }</syntaxhighlight> | ||
위 설정에서는 [[위키노트 | 위 설정에서는 [[작은숲:위키노트/미디어위키|미디어위키]]가 루트 디렉토리 아래 <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> 지시자를 써서 직접 설정해줘야 한다. | ||
== 참고 == | == 참고 == | ||
* {{언어|영어}} [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/미디어위키와 같은 형태로 쓰고자 한다.
- 첫 번째 location 블럭은 도메인네임으로만 접속한 경우 미디어위키가 설치된 디렉토리로 보내주는 것이다.
- 두 번째 location 블럭은 짧은 주소의 형태로 접속한 경우 이를 처리하기 위한 설정이다.
- 세 번째 location 블럭에서는 실제로 rewrite 지시자를 써서 짧은 주소 형태의 주소를 제대로 처리하도록 한다.
- 네 번째 location 블럭은 외부에서 접근하지 못하게 할 미디어위키의 디렉토리를 보호한다.
- 다섯 번째 location 블럭은 미디어위키 소프트웨어 내부에서 사용할 수도 있는 디렉토리를 설정한다.
이와 같이 웹 서버를 Nginx를 쓰는 경우에는 아파치의 .htaccess 파일에서 했던 설정을 location 지시자를 써서 직접 설정해줘야 한다.
참고
- (영어) Nginx: MediaWiki
- (영어) MediaWiki on Nginx
- (영어) Nginx Installation and Configuration
- (영어) mw:Manual:Short URL/wiki/Page title -- nginx rewrite--root access
- (영어) mw:Manual:Short URL/Page title - nginx, Root Access, PHP as a CGI_module
| 설치와 설정 | |
|---|---|
| 기능과 활용 | |
| 관리와 개발 | |