2010-03-13 3 views
5

방금 ​​우분투 9.10 서버에 TeamBox를 설치했습니다. 제공된 서버 스크립트를 사용하여 3000 포트에서 실행하고 있습니다.Ruby 서버가 로컬 호스트 (팀 상자) 외부에서 매우 느림

다른 컴퓨터에서 연결할 때 HTTP 요청 당 최대 30 초가 소요됩니다.

나는 링크를 사용하여 TeamBox를 셸에서로드하고 전혀 시간이 필요하지 않았습니다.

그런 다음 SSH 터널을 설정하고 다시 매우 빠르게 작동합니다.

나는이 서버와 SAMBA 등에서 약 30 개의 가상 호스트를 실행하며 아무런 문제가 없다.

이 문제를 어떻게 해결할 수 있습니까?

+0

이 문제가 해결 되었습니까? 나는 우분투 10.04, 레일즈 3.0.1과 같은 매우 비슷한 문제에 직면했다. 네트워크에서 다른 서버를 사용하는 경우 페이지를로드하는 데 30 초 이상이 소요됩니다. 이것은 완전히 새롭고 깨끗한 레일 앱에서도 발생하기 때문에 라이브러리/네트워크/설정 문제라고 생각됩니다. –

+0

추가 조사를 통해 다른 컴퓨터 및 다른 웹 서버 (예 : Grails)에서 정상적으로 작동하는 서버에 ping을 수행 할 수 있습니다. 따라서 시스템이나 네트워크 전반에 걸친 문제는 아니지만 레일 문제 일 수 있습니다. –

답변

10

내 redmine (ruby, webrick)이 너무 느립니다. 이제이 문제를 해결했습니다 : apt-get install mongrel
ruby /home/redmine/redmine/script/server mongrel -e production
완료 및 redmine 작업 아주 좋은 속도!

+0

이 솔루션은 완벽하게 작동합니다. mongrel을 설치하고 "rails server mongrel"을 실행하면 이제 localhost 및 다른 시스템에서의 요청이 똑같이 빠르게 작동합니다. 문제는 무엇인지 모르지만 WEBrick은 우분투에서 어떤 종류의 문제가 있다고 생각합니다. –

2

승객을 이용하십니까? 몇 주 전에 같은 문제가 발생하여이를 내 가상 파일에 추가하여 문제를 해결했습니다.

# Speeds up spawn time tremendously -- if your app is compatible. 
    # RMagick seems to be incompatible with smart spawning 
    RailsSpawnMethod smart 

    # Just in case you're leaking memory, restart a listener 
    # after processing 5000 requests 
    PassengerMaxRequests 5000 

    # only check for restart.txt et al up to once every 5 seconds, 
    # instead of once per processed request 
    PassengerStatThrottleRate 5 

    # Keep the spawners alive, which speeds up spawning a new Application 
    # listener after a period of inactivity at the expense of memory. 
    RailsAppSpawnerIdleTime 0 

    # Additionally keep a copy of the Rails framework in memory. If you're 
    # using multiple apps on the same version of Rails, this will speed up 
    # the creation of new RailsAppSpawners. This isn't necessary if you're 
    # only running one or 2 applications, or if your applications use 
    # different versions of Rails. 
    RailsFrameworkSpawnerIdleTime 0 

    # Keep the application instances alive longer. Default is 300 (seconds) 
    PassengerPoolIdleTime 1000 
+0

승객을 사용하지 않습니다. Teambox를 아파치를 통해 실행하지는 않지만 함께 제공되는 Python 서버를 사용합니다. localhost를 통해 액세스하고 LAN을 통해 액세스하는 것 사이에 왜 그렇게 큰 속도 차이가 나는지 혼란 스럽습니다. 지연은 서버에 대한 각 HTTP 요청에서 발생합니다. 네트워크 문제와 더 비슷해 보입니다. 파이썬 서버가 요청을 받으면 매우 빠르게 처리합니다. 무엇이 이것을 일으킬 수 있습니까? – ncatnow

+0

@natcow : IP를 사용하지 않는 경우 DNS 조회가 가장 일반적입니다. –

1

의 RoR 응용 프로그램을 게시 할 수있는 좋은 방법으로 는 HTTP (S) 리버스 프록시 (보석으로 사용할 수) 얇은 루비 서버에 관련된으로 에게 Nginx에을 사용하는 것입니다.

Here is a good tutorial about Nginx with RubyOnRailshere another about thin.

나는 RedMine을 Nginx와 함께 사용하고 OpenVZ 컨테이너 아래에서 얇게 사용합니다. 매우 잘 작동합니다!