1. 서버 환경

app : nginx/1.13.3 / xe_version : 1.8.46 / php : 5.5.9-1ubuntu4.22 / db_type : mysqli_innodb
max_file_uploads : 20 / post_max_size : 124M / memory_limit : 128M

 

2. 스케치북 게시판에서 이미지파일 ( 이미지 하나당 400kb~1m 이내의 이미지 18개 총용량 2m이내 )을 본문에 올리면

 

 첨부되는 이미지 파일의 갯수가 1개에서 15개 이내일 경우 업로드가 잘되고 첨부된 문서를 삭제할 경우 서버 내 해당 파일 이미지도 함께 삭제가 잘 됩니다.

 

 문제는 15개가 넘어가는 이미지들을 한꺼번에 첨부하면 15개까지는 제대로 첨부가 되는데 이후 이미지파일들은 첨부가 안되고 이미지가 첨부된 게시글을 삭제해도 해당 이미지는 그대로 서버내에 남아 있습니다.

 

서버 하드용량은 충분히 남아 있고 php.ini에서 max_file_uploads 값을 20 에서 50으로 변경, 테스트 해봐도 문제 해결이 되지 않은데 혹시 어떤 부분을 살펴봐야 할지 도움 부탁드립니다.

2017-11-29 11,59,46.PNG

  • profile

    첨부가 안 되는 것도 여러 가지가 있습니다. 이미지가 서버에 그대로 남아 있다고 하신 것을 보면 파일은 저장이 되는데 첨부목록에 나타나지 않는 모양이군요. 즉, 흔히 첨부파일이 "증발"한다고 하는 그 현상입니다.

    XE는 첨부 도중 에러가 나도 표시하지 않기 때문에 여러 가지 이유로 첨부파일이 증발해도 원인 파악이 쉽지 않습니다. (라이믹스는 첨부 도중 에러가 나면 화면에 표시됩니다.) 가장 흔한 것이 용량 부족과 퍼미션 문제인데, 글 하나에 15개까지는 정상적으로 첨부되는 것을 보면 둘 다 아닌 것 같고요.

    XE는 파일 1개를 첨부하든 100개를 첨부하든 모두 1개씩 나누어 업로드하기 때문에 max_file_uploads 설정은 상관이 없습니다. 글 하나에 첨부할 수 있는 전체 용량을 초과하지 않았다면 그것도 해당 없고요.

    몇 가지 시도해 볼 수 있는 방법이라면
    - 혹시 XpressEditor를 쓰신다면 CKEditor로 바꿔보시고, 반대로 CKEditor를 쓰신다면 XpressEditor로 바꿔 보세요. 두 에디터에서 사용하는 업로더가 다르기 때문에 만약 이것으로 해결된다면 업로더 문제라고 볼 수 있습니다.
    - 10개쯤 업로드한 후 약 30초간 쉬었다가 나머지를 업로드해 보세요. 작은 파일은 순식간에 업로드되기 때문에 1~2초 안에 18개 모두 업로드하면 과도한 요청이라고 차단될 수도 있습니다.
    - 혹시 업로드 갯수를 제한하는 애드온이나 확장모듈이 있지는 않은지 확인해 보세요.

  • profile ?

    도움 말씀 감사드립니다. 

    1. 파일을 나눠서 시간을 좀 두고 올리면 문제가 없이 잘 올라갑니다. 말씀하시는 과도한 요청에 의한 차단인것 같습니다.

     제 기억에 이러한 현상이 있기 전 한꺼번에 올려도 이러한 문제는 없었던 걸로 기억이 됩니다.

     

    2. 20여개 이미지 파일( 한개당 150kb 이내 )을 한꺼번에 올려서 테스트 해보면

     

      1) ckeditor 에서 xpresseditor로 바꾸어 보면 아래와 같은 메세지가 나타납니다. 

    2017-11-29 14,08,09.PNG

     

     

    Atachment
    첨부
  • profile ?

    2) xe공식홈에서는 파일업로드 문제가 없이 모두 올라가는데 xetown에서 테스트 해 본 결과 6개만 첨부되고 있고,저는 15개만 첨부되고 있습니다.

    xetown에서 임의적으로 업로드 파일 갯수를 조정한게 아니라면 같은 문제일 수 도 있을 것 같습니다.

     

    [ xetown테스트 결과 ]

    2017-11-29 14,42,40.PNG

     

     

    2.PNG

     

    Atachment
    첨부
  • ? profile
    /etc/nginx/sites/사이트명 파일에 보시면 limit_req라는 부분이 있을 거예요.
    여기서 burst 값을 30 정도로 올리고 service nginx reload 해주세요.
  • ? profile
    네, XE타운은 순간적으로 요청할 수 있는 횟수를 더 엄격하게 제한하고 있는 것 같습니다.
    최근 글 몇 개만 새 탭에 다다닥 열어도 마지막 하나는 꼭 503이 뜨더군요 ㅋㅋ

    가상서버에서 과부하를 막기 위해 반드시 필요한 조치이긴 합니다만
    너무 제한하면 불편하니 적절한 선에서 균형을 찾는 수밖에요...
  • profile ?

    조언 주신대로 burst 값을 10에서 30으로 조정하니 문제가 해결되었습니다. 매번 도움 말씀 감사드립니다.

    2017-11-29 16,00,57.PNG