nginx 파일업로드 제한...
워드프레스 사이트를 로드밸런싱해서 사용하는데 너무 답답해서 질문 남겨봅니다....
A서버 - nginx. reverse proxy 로 B/C/D 서버로 로드밸런싱 중.
B서버 - apache. wordpress. C서버 wordpress DB 를 바라봄.
C서버 - aws. apache. wordpress. 10분주기로 B서버에서 rsync 받음. wordpress DB 는 여기에 위치.
D서버 - aws. apache. wordpress. 10분주기로 B서버에서 rsync 받음. C서버 wordpress DB 를 바라봄.
example.com 도메인 접속 시 A서버에서 받아서 B/C/D 서버로 로드밸런싱하고
워드프레스의 /wp-admin 접속할 경우 B서버로만 가도록 proxy pass 설정해두었습니다.
(DB는 aws 공용인데, wordpress 특성 상 파일이 변할 경우 동기화를 위해서...)
접속테스트 하면서 각 서버별로 억세스로그도 잘 찍히고 하는거 보니 로드밸런싱도 잘되고 있는 것 같은데....
문제는, 워드프레스 관리자 페이지에서 작업했을때인데요....
파일을 업로드하거나 페이지 수정 후 저장을 할때면
"Post-Processing of the Image Failed Likely Because the Server is Busy…" 이러면서 실패해요...
구글링을 해보면 네트워크 단 upload limit 이슈라고 하는데....
A서버 nginx.conf
- client_max_body_size 128M
B/C/D서버 php.ini
- upload_max_filesize = 128M
- post_max_size = 256M
로 넉넉하게 돌려도 실패하네요....ㅠ
제가 뭘 놓친걸까요!?
B, C, D 웹서버 설정에서 업로드 용량제한은 수정하셨나요?
Apache 기준으로 업로드 파일크기 제한이면 LimitRequestBody 설정 같은데,
이거 0 이 무제한이고 default 길래 안건드렸습니다.
이거 적용해줘야 할까요 @_@
웹서버가 무제한이면 놔두시고요
php.ini 에서 memory_limit는 얼마인가요?
로드밸런스 옵션을 어떻게 주신건가요?
DB는 한서버에있는데 데이터가 여러군데있으니.. 문제가있을수도있을거같은데요
B서버에만 weight 3 걸려있고 C/D서버는 그냥 있어요 3:1:1 입니다.
클라이언트에서 바라볼때는 DB정보만 바라보고 있어서 AWS RDS에 올려두었고,
관리자페이지에서 작업한 내용은 rsync 로 동기화하려고 /wp-admin 주소는 일부러 B서버에만 접속되도록 해놨어요!!
흠,, 이렇게 구성해본적이없어서... 정확히는 말씀을 못드리겠네요 ㅠㅠ
보통 로드밸런스면 스토리지도 공유하지않나요??
처음부터 로드밸런싱 기획을 한게 아니라 원래 돌아가던 워드프레스 사이트가 접속자가 엄청 많아지면서 앞단에 프록시 하나 놓고 있는거라서요 ㅠㅠㅠㅠㅠ 저도 이런 식으로 nginx - apache 혼종은 처음이라서 ㅠㅠㅠ
이미지 업로드를 B 서버에 해야하는데, 이것도 로드밸런싱 되어서 엉뚱한 서버에 저장되는게 아닌가 싶네요. EFS 사용 권장드립니다.
아??? 그럴수도 있겠네요!!!! 이거 확인해보겠습니다!!!!!!
ps.
B서버는 idc에 있고 C/D서버만 aws라서 efs 는 ㅠㅠ
cmt alert