최근에 워드프레스 블로그에 이미지를 업로드하던 중, 이미지 픽셀 초과로 인해 업로드가 실패하는 문제가 발생했습니다. 해당 오류 메시지는 다음과 같았습니다.
[error]
'Post-processing of the image failed likely because the server is busy or does not have enough resources. Uploading a smaller image may help. Suggested maximum size is 2500 pixels.'
이 문제를 해결하기 위해선 서버의 nginx
설정을 수정해야 했습니다. 여기서는 그 해결 과정과 함께 각 설정값의 의미를 자세히 살펴보겠습니다.
1. 문제 원인
이미지 업로드에 실패한 이유는 주로 이미지의 크기가 서버가 처리할 수 있는 픽셀 수를 초과했기 때문입니다. 따라서 서버 리소스를 효과적으로 활용하기 위해 몇 가지 설정을 변경해야 했습니다.
2. 해결 과정
먼저, nginx
의 설정 파일을 열어야 합니다.
nginx conf 파일 열기
vi /etc/nginx/nginx.comf
그 후, 아래의 설정값들을 추가하거나 수정합니다.
client_max_body_size 128m;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
conf파일 예시 (example)
- <http { > 안의 주석처리 된 내용을 풀어주거나 추가해준다.
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
types_hash_max_size 2048;
client_max_body_size 128m;
fastcgi_buffers 8 16k;
fastcgi_buffer_size 32k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
3. 설정값의 의미
client_max_body_size
: 클라이언트가 업로드할 수 있는 최대 바디 크기를 설정합니다. 여기서는 128m로 설정하여 더 큰 이미지도 처리할 수 있도록 했습니다.fastcgi_buffers
및fastcgi_buffer_size
: FastCGI 프로세스에 할당되는 버퍼의 크기를 설정합니다. 이미지 처리에 필요한 메모리를 효과적으로 할당하기 위한 조치입니다.fastcgi_connect_timeout
,fastcgi_send_timeout
,fastcgi_read_timeout
: FastCGI 프로세스와의 연결, 전송, 읽기 시간을 각각 설정합니다. 이미지 처리에 시간이 걸리는 경우를 대비하여 타임아웃 값을 적절히 조절합니다.
이 문제를 해결하는 데 있어 사용자들은 업로드할 이미지의 픽셀 크기에 주의해야 합니다. 서버가 처리할 수 있는 최대 크기를 고려하여 이미지를 축소하면 원활한 업로드가 가능합니다. 또한, 특정 이미지 편집 도구를 사용하여 픽셀 크기를 확인하고 조절하는 것이 도움이 됩니다.
이제 설정값을 수정하고 nginx
를 재시작하면 이미지 업로드 문제가 해결될 것입니다.
nginx 재시작
sudo nginx -t
sudo service nginx restart
이렇게 설정을 변경하면 서버가 더 효율적으로 이미지를 처리할 수 있으며, 사용자들은 더 큰 이미지도 업로드할 수 있게 됩니다. 문제가 계속되면 해당 설정값을 조정하여 적절한 크기로 조절해보세요.