WordPress를 위한 Nginx 보안설정
어제 rewrite 설정을 검색하다가 우연찮게 보게된 WordPress 보안을 위한 Nginx 설정이다. 업로드 폴더에서 php 파일이 실행되지 않도록 하는 게 주 내용인데 이 부분은 반드시 필요한 부분이다. 얼마전 회사에서 운영하는 커뮤니티 사이트에서 문제가 발생했던 적이 있어서 나도 일단 적용을 해뒀다.
# Deny access to any files with a .php extension in the uploads directory
# Works in sub-directory installs and also in multisite network
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
# Make sure files with the following extensions do not get loaded by nginx because nginx would display the source code, and these files can contain PASSWORDS!
location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_
{
return 444;
}
#nocgi
location ~* \.(pl|cgi|py|sh|lua)\$ {
return 444;
}
#disallow
location ~* (roundcube|webdav|smtp|http\:|soap|w00tw00t) {
return 444;
}
location ~ /(\.|wp-config.php|readme.html|license.txt) { deny all; }
출처 : http://centminmod.com/nginx_configure_wordpress.html
출처의 사이트를 방문하면 다양항 워드프레스용 Nginx 설정을 참고할 수 있다. 내 서버에서 모든 설정을 적용한 것은 아니지만 하나씩 살펴보면서 적용할 수 있는 것은 적용하려고 생각 중이다.