2010-05-17 3 views
5

Rails 3을 사용하여 응용 프로그램을 빌드하는 초기 단계입니다. 사용자 인증은 Authlogic에서 제공하며, 표준 (as per the example docs) 로컬에서 예상대로 작동합니다.Rails 3, Authlogic, NGINX 및 HTTP 기본 인증이 제대로 작동하지 않음

방금 ​​CentOS 5.4/NginX/Passenger의 깨끗한 서버 설치에 앱을 배포했습니다. 직원이 로그인하여 콘텐츠 등을 입력 할 수있게되었습니다. 그러나 공개적으로 볼 수있는 준비가되었습니다. 그래서 NginX의 기본 인증 모듈을 사용하여 전체 사이트를 다른 인증 수준으로 유지했습니다.

불행히도 Authlogic의 인증 및 NginX의 기본 인증은 서로 충돌하는 것 같습니다. 기본 인증이 켜져 있으면 Authlogic으로 로그인 할 수 없지만 기본 인증을 사용하지 않으면 Authlogic이 예상대로 작동합니다.

어떤 코드가 관련이 있는지 잘 모르므로 어떤 코드도 게시하지 않았습니다. 이 문제가 알려진 문제인지 궁금한 점이 있습니다. 변경 사항이 있으면 구성을 통해 문제를 해결할 수 있습니까?

답변

13

나는 내 자신의 질문에 답을 할 수있다. (몇 시간 동안 완전히 잘못된 곳을 찾은 후에). Authlogic::Session::Config에 대한 좋은 읽어보기가 트릭을 만들었습니다.

class UserSession < Authlogic::Session::Base 
    allow_http_basic_auth false 
end 
+1

와우 .. 이렇게 행복해졌습니다. 저는 약 3 일 동안이 문제를 해결하려고 노력해 왔습니다. 감사! – zaius

+0

많은 도움을 주셔서 감사합니다. –

+0

많은 감사드립니다. – dangerousdave

1

아직 레일즈 3을 사용하지 않았으므로 좀 더 일반적입니다. 그리고 NginX에 대한 기본적인 인증 모듈을 모른다.

  1. 팀이 localy에 연결되어 있으면 로컬 네트워크에서만 액세스 할 수있는 서버를 만들 수 있습니다.
  2. 인터넷을 통해 액세스해야하는 경우 VPN 뒤에 숨길 수 있습니다.
  3. 로컬 IP를 통해서만 사이트에 대한 액세스를 설정하고 필요한 사람에게 ssh 액세스를 허용 할 수 있습니다. ssh (ssh -D 8080 [email protected], 8080은 포트 번호, 브라우저에서는 socks proxy를 설정하고 점심 시간은 yoursever.com:3000)에서 ssh를 통해 양말 프록시를 만드는 것은 쉽습니다.
  4. NginX는 허용 된 IP를 설정하고 다른 것을 거부 할 수 있다고 생각합니다. 따라서 액세스 제한에도 사용할 수 있습니다.
  5. 또한 일시적으로 ApplicationControllerbefore_filter :require_login :)에 추가 할 수 있으므로 로그인 페이지 만 전세계에 사용할 수 있습니다.

희망 하시겠습니까?

+0

의견을 보내 주셔서 감사합니다. 결국 나는 내 자신의 질문에 대답했습니다. 해결책은 문서에 있었고, 충분히 열심히 살펴야했습니다. – aaronrussell