• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

npmplus 사용시 nextcloud 업로드 속도 문제 질문합니다.

SHISHAMO 126

0

10

질문에 답을 해 주시는 서버포럼 유저분 여러분들께 감사인사드립니다.

 

현재 제가 처한 상황은 다음과 같습니다.

 

npmplus로 nextcloud를 리버스프록시로 연결한 상황인데, 전체적인 반응속도가 느릴 뿐만 아니라, 특히 업로드 상황에서 사용 불가할 정도로 매우 느리게 업로드가 되고 있습니다.

(같은 쪽 문제인지는 모르겠지만 리버스프록시한 도메인으로 로그인 시, 로그인 화면에서 로그인이 되지 않고 무한로딩이 되더군요. f5해야 대쉬보드로 들어가지는....)

 

샘플로 747mb 짜리 압축 파일을 업로드를 하면

 

내부 ip 및 외부 ip에서는 모두 1분 안으로 업로드 되는 정상적인 상황을 보여주지만,

 

리버스프록시한 도메인으로 접속시 5분에서 10분 사이로 늘어나는 현상이 보입니다.

 

처음에는 내외부 ip에서 업로드 해볼 생각을 못했기 때문에 넥스트클라우드 자체가 무거우니 느리다 정도로 생각하고, owncloud를 설치했는데 owm에서 같은 문제가 발생하는 걸 보고 npmplus 쪽 문제라고 판단하게 되었습니다.

 

 

 

이 문제를 해결해 보기 위해 시도한 것은 다음과 같습니다.

 

1. ModSecurity 설정 변경.

 

달소님의 글을 보고 혹시 비슷한 상황일까 싶어 변경해 보았는데 전혀 해결되지 않았습니다.

 

2. 클라우드플레어 프록시 및 npmplus 설정 끄기.
 

   저는 지금 ddns, dns 모두 클라우드플레어로 연결되어 있기 때문에 혹시나 싶어 프록시를 모두 끄고, npmplus의 웹소켓 서포트, modsecurity 활성화 및 CRS 활성화, force HTTPS, Enable Brotli, Enable HSTS, Enable HTTP/3도 모두 꺼 보았지만 전혀 해결되지 않았습니다.

 

 

4. advanced 탭 수정.
 본래 caldav, carddav 에러 해결용 구문만 작성되어 있었는데, nextcloud nginx 설명을 보고  따라 붙여보았습니다.

 

client_max_body_size 51200M;
client_body_timeout 300s;
fastcgi_buffers 64 4K;
proxy_max_temp_file_size 0;
proxy_read_timeout 1800;
proxy_connect_timeout 1800;
proxy_send_timeout 1800;
proxy_request_buffering off;

gzip on;
gzip_vary on;
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml text/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;

client_body_buffer_size 512k;

add_header Referrer-Policy                   "no-referrer"       always;
add_header X-XSS-Protection                  "1; mode=block"     always;

fastcgi_hide_header X-Powered-By;

index index.php index.html /index.php$request_uri;

location = / {
    if ( $http_user_agent ~ ^DavClnt ) {
        return 302 /remote.php/webdav/$is_args$args;
    }
}

location = /robots.txt {
    allow all;
    log_not_found off;
    access_log off;
}

location ^~ /.well-known {
    location = /.well-known/carddav { return 301 /remote.php/dav/; }
    location = /.well-known/caldav  { return 301 /remote.php/dav/; }

    location /.well-known/acme-challenge    { try_files $uri $uri/ =404; }
    location /.well-known/pki-validation    { try_files $uri $uri/ =404; }

    return 301 /index.php$request_uri;
}


location ~ /\.ht {
    deny all;
}
location /.well-known/carddav {
  return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/caldav 

  return 301 $scheme://$host/remote.php/dav; 
}
location /.well-known/webdav 
{
 return 301 $scheme://$host/remote.php/dav; 
}

 

이렇게 해도 해결이 전혀 되지 않아, 며칠 고생하다 서버포럼에 질문하게 되었습니다.

 

사실 npmplus 말고 npm으로 해볼까도 했었는데..이상하게 리버스프록시가 잘 되지 않아서 ㅠㅜㅜ, caddy는 도저히 모르겠더라고요.

 

가장  드는 생각은 advanced 탭 수정이 아닐까 싶은데,npmplus나 비슷한 npm같은 nginx 환경에서 nextcloud를 리버스프록시해 사용하는 분들이 있으면 댓글 정말 부탁드립니다.

 

설정을 껏다 켰다 하다 보면 가끔, 정상적인 업로드가 되다가(며칠동안 2번..?) 그러나 npm을 리붓하거나 설정이 조금이라 도 바뀌면, 다시 원복해서 정상 업로드가 되지 않네요. 

 

진짜 원인을 모르겠습니다 ㅠㅜㅜㅜ

신고공유스크랩
10
profile image 1등
너굴맨봇 2024.02.03. 02:06
안녕하세요, SHISHAMO님.😊
 

좋은답변을 받기위해서는 좋은 질문이 필요합니다.

유의할점⚠️

  • 예의를 지켜주세요. 답변자는 답변을 할 의무는 없습니다.
  • 질문에 대한 대부분의 답은 검색으로 찾아보실 수 있습니다.
  • 답변자가 답변을 하면서 대개 많은 경우는 다시 질문을 하는 경우가 많이 있습니다.
    • (질문의 대한 정보가 부족합니다. ~일 경우 결과물이 어떻게 됩니까? 등등)

질문방법🙏

자신의 상황을 최대한 자세히 설명해주세요.

상황이 정확하고 많을 수록 답변의 정확도가 올라갑니다. 

ex) ex) 헤놀로지라면 메인보드 모델 칩셋정보, CPU, 사용한 DSM 버전, 모델, 부수적인 추가 컨트롤러 나 랜카드 등과 어떠한 로더의 이미지를 사용했는지.(arpl-i18n, mshell), 어떤 버전을 사용했는지, 문제가있다면 어떠한것인지 스크린샷을 동반하고 에러의 경우 에러로그를 출력해서 주시면 좋습니다.

*가능하면 최신버전 OS/SW를 이용해주세요

 

답변에대한 피드백을 주세요.

정보가 질문에 모두 담겨있지않다면 대부분의 답변이 다른정보를 요구합니다.

이러한 답변에 대해 명확한 피드백을 주시면 도움이 됩니다.

2등
DarkAcid 2024.02.03. 02:30

몇가지 추가 테스트와 정보가 필요합니다.
1. 사용하는 nextcloud 이미지 (aio, linuxserver, 또는 nextcloud 도커 정식) 사용방법이 전부 다다르거든요
2. IP로 접속시 반응 테스트

만약 로그인 화면에서 무한 로딩이 걸리고 f5로 로그인 화면이 보인다면 nextcloud가 지금 http로 되어있는데 npm에서 https를 사용하려고 하는 거니 오류가 발생하는겁니다. 제가 이문제 때문에 linuxserver, 또는 nextcloud 이미지를 사용하지 않는 이유기도 합니다. 이럴 경우 AIO를 추천합니다.

SHISHAMO 글쓴이 2024.02.03. 03:29
DarkAcid
1.linuxserver, 공식, aio 모두 업로드에 문제가 발생합니다.
(로그인 무한 로딩은 aio에서는 확인을 해 보지는 않았습니다. 잘 되었던 걸로 기억하네요)

3. ip로 접속시 정상적인 반응이 나옵니다.
SHISHAMO 글쓴이 2024.02.03. 03:49
SHISHAMO
linuxserver가 443포트를 사용해서 https로 지정하니 확실히 로그인 무한 로딩은 발생하지 않습니다.
다만 여전히 업로드 지연은 있습니다 ㅠ
DarkAcid 2024.02.03. 04:47
SHISHAMO
아! 그렇다면 얼마전에 보았던 그 chunk사이즈 수정을 환경변수나 config.php에서 좀크게 변경하시는게 좋을거 같아요!
profile image 3등
NavyStack 2024.02.03. 07:06

1. 리버스 프록시에서 Nginx를 사용하는 경우, 속도를 개선하려면 proxy_buffering 및 proxy_buffers와 같은 Nginx의 프록시 관련 디렉티브를 조정하는 것이 유용할 수 있습니다.

2. 일반적으로 if 문을 남용하거나 잘못 사용하면 Nginx의 성능에 부정적인 영향을 미칠 수 있습니다. if 문은 Nginx의 구성 파일에서 특정 조건을 검사하여 다른 동작을 수행하는 데 사용됩니다. 그러나 if 문을 사용할 때 주의해야 합니다.

if 문을 사용할 때 성능 문제가 발생하는 이유는 Nginx가 비동기 및 이벤트 기반 아키텍처를 가지고 있어서, if 문이 블로킹 작업으로 작용할 수 있기 때문입니다. 또한, if 문이 요청 처리 경로를 변경하면 Nginx가 캐싱 및 최적화를 수행하기 어려워져 성능에 영향을 미칠 수 있습니다.

따라서 가능하면 탐욕적인 if 문 대신 map 블록이나 location 블록 내에서 적절한 조건을 사용하는 것이 좋습니다. 이렇게 하면 성능을 향상시키고 예측 가능한 동작을 유지할 수 있습니다.

 

3. Nginx Proxy Manager와 같은 프록시 관리 도구를 사용할 때, 사용자가 미처 확인하지 못한 if 문이나 구성 설정이 포함될 수 있다는 가능성도 있습니다. 도구나 관리 인터페이스에서 자동으로 생성되거나 설정되는 경우가 있습니다.

 

4. 다른 프록시 도구를 사용해서 확인해 보세요, WebUI까지는 아니지만 비슷하게 자동 인증서도 되는 Treafik, Caddy등도 있습니다.

 

5. 시놀로지 환경에서 npm을 사용하면 로그 없이 이상하게 늘어지는 현상이 있더라구요. 그래서 저는 순정 역방향 프록시를 사용하고 있습니다.

 

시놀로지 환경이 아니어도 npm은 사용하지 않으며, 오류 발생 시 해결이 어려워서 개인적으로는 Traefik을 선호합니다.

SHISHAMO 글쓴이 2024.02.03. 21:49
NavyStack
장문의 댓글 정말 감사합니다.
처음에는

location /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/caldav
{
return 301 $scheme://$host/remote.php/dav;
}
location /.well-known/webdav
{
return 301 $scheme://$host/remote.php/dav;
}
이정도만 붙여 있다가, 점점 수정해본다고 늘어났었네요.

한 번 다른 프록시 도구들을 공부해봐야겠습니다. Nginx Proxy Manager가 기본적으로 사용하기에 정말 편한데...
Traefik에 한 번 도전해 보려고 합니다.
gui 환경이 전혀 아니라 어떻게 해야 할지 감이 전혀 오지 않는데... 달려들어봐야겠습니다.
profile image
NavyStack 2024.02.03. 21:56
SHISHAMO

https://github.com/NavyStack/nextcloud-onlyoffice-traefik/blob/b62f7beedc82057afba37d63913cf1d58563d6a2/docker-compose.yml

`.env` 파일을 수정해야해서
바로 사용하시려면
git clone으로 진행하셔야 합니다.
기본 적인 틀은 잡아두었습니다.

도움이 되었으면 좋겠네요 :)

 

반드시 테스트하실때는 테스트 용이라고 적힌거 주석 해제해서 스테이징 인증서로 확인하시구 잘 작동하면 다시 주석으로 만들어서 사용하세요 :)

 

Onlyoffice는 걷어내셔도 됩니다.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

본 게시판은 서버구축 게시판과 통합되었습니다.

서버구축 게시판 이동하기