NGINX 사용중 문제가 발생하여 문의드립니다.
웹사이트를 운영중에 실제 긴 주소를 짧게 리다이렉트 하는
설정을 nginx conf 파일로 만들어 운영했습니다.
운영중에 부하가 많이 걸리는것 같아 현재 실제주소로 돌렸고
검색사이트에 색인된 모든 주소들이 NGINX 404페이지로 넘어가고 있습니다. (T_T);;;
존재하지 않는 폴더명이나 파일들이 있으면 404로 넘기지 말고
웹루트 index.php 로 보내는 nginx 구문이 궁금합니다..
NGINX 사용중 문제가 발생하여 문의드립니다.
웹사이트를 운영중에 실제 긴 주소를 짧게 리다이렉트 하는
설정을 nginx conf 파일로 만들어 운영했습니다.
운영중에 부하가 많이 걸리는것 같아 현재 실제주소로 돌렸고
검색사이트에 색인된 모든 주소들이 NGINX 404페이지로 넘어가고 있습니다. (T_T);;;
존재하지 않는 폴더명이나 파일들이 있으면 404로 넘기지 말고
웹루트 index.php 로 보내는 nginx 구문이 궁금합니다..
댓글 1
예전에 쓰던 주소이고 검색 색인까지 되어 있다면 index.php가 아니라 현재 유효한 주소로 리다이렉트해줘야지요. 그래야 검색 순위를 유지할 수 있습니다. 정확한 구문은 어떤 형태의 주소인지에 따라 달라집니다.
nginx rewrite 사용이 서버 부하에 눈에 띌 만한 영향을 미치지는 않습니다. 단, 존재하지 않는 주소를 일괄적으로 특정 파일로 넘겨주면 단순한 이미지 하나만 삭제해도 해당 이미지를 찾는 사람들이 모조리 그 파일로 연결되면서 엄청난 부하를 일으킬 수도 있습니다. (평소에는 아무 문제가 없는 robots.txt, favicon.ico 등이 갑자기 부하를 일으키는 주범이 되기도 합니다.) 따라서 서버 부하가 걱정되신다면 모든 404 주소가 아니라 특정 패턴에 맞는 주소만 rewrite하고 나머지는 404 그대로 두는 것이 좋습니다.
그럼에도 불구하고 존재하지 않는 주소를 모두 특정 파일로 보내시려면 rewrite보다는 try_files 구문을 사용하는 것이 정석입니다. 워드프레스에서 권장하는 방법입니다.
location / {
try_files $uri $uri/ /index.php?$args;
}