일단 종종 500 에러가 뜨고

 

캐시 재생성을 하다 보니까 간헐적으로 사이트 곳곳에서 "권한이 없습니다" 문구가 뜨네요

 

어떤 페이지는 로그인하지 않았을 경우 뜨고

 

어떤 페이지는 관리자 계정으로 로그인했는데도 뜨네요

 

캐시 재생성을 다시 하면 사라지지만 또 다른 페이지에 랜덤으로 뜨는데

 

일단 텔넷으로 접속해서 rm -rf cache 명령어로 직접 삭제할 경우 (그리고 관리자 페이지에서 캐시 재생성 버튼을 누르지 않을 경우) 정상적으로 작동하는 거 같습니다.

 

딱 한번 rm -rf cache 하니까 store 폴더가 비어있지 않다면서 삭제가 안 되던데, 다시 한번 해보니까 잘 되더군요.

 

결국 캐시 재생성을 하려면 관리자 페이지에서 하지 말고 무조건 텔넷으로 들어가서 해야 할 거 같은데...

 

이유나 원인을 모르겠네요

  • profile
    호스팅어디이용하시나요?
  • profile ?
    루아틱 호스팅입니다
  • ? profile

    루아틱 호스팅의 경우 아래의 보안모듈을 사용중지 하시면 어느정도 해결됩니다.

     

    C패널 로그인하신다음 아래와 같이 보안탭에서 modsecurity 모듈을 사용중지 해보시기 바랍니다.

     

    스크린샷_091716_041723_PM.jpg

     

  • profile ?
    감사합니다. 이거랑 어떤거랑 연관이 있나요? 일단 파일캐시 사용 중지해 놨는데 캐시 생성 문제가 이거때문인지 저 모듈 때문인지...

    그리고 "구성 관련 문제를 해결하는 동안에만 ModSecurity를 비활성화하십시오. ModSecurity가 활성화되지 않을 경우 도메인이 모듈이 제공하는 추가 보호 레이어를 상실합니다." 이런 경고문구가 뜨는데 저거 비활성화되면 어떤게 안좋나요?
  • ? profile
    ModSecurity는 서버단에 설치되는 보안모듈입니다. 비정상적인 act등을 차단하지만 정상적인 act도 차단될 경우 해당 패턴들은 제외하는 등 고급설정 사용이 필요합니다. 로그인이 안되는 등의 문제도 이 모듈에 의해 차단될 경우 로그인이 실패될 수 있습니다. XE에서 제외해야할 패턴등을 적용하기 어려우시면 쓰지 않으셔야 정상적인 act들이 차단되지 않습니다.
  • profile ?

    그렇군요. 근데 저희 사이트에서 로그인이 안되는건 현재 다른 페이지는 다 괜찮은데(dispMemberLoginForm 페이지라던지 아님 다른 레이아웃이라던지) 메인페이지에서만 일부 사용자들에 한해서 해당 문제가 나타나는거 같아서 뭔가 다른 문제가 있는거 같네요.

    ModSecurity를 해제하면 보안상에 결함이 생기나요?

  • ? profile
    해당 모듈이 설치되지 않은 서버도 많습니다. 그리고 로그인 문제도 저는 해당 모둘에서 차단된다고 의심됩니다. 뭐 제가 관련 지식이 있는 사람은 아니라 정확히 파악해 드리기 어렵지만 지금 문제가 되는 곳에서의 로그인 요청이 정상적이지 않다고 판단될 수 있습니다.
    문제가 되는 곳의 로그인요청 코드가 수정이 필요할 수도 있고 가능성은 충분히 있습니다. 특정한 곳은 잘 되고 또 특정한 곳은 안되는 상황이 이 모듈에서 차단되는 것이 아니라고 판단할 근거는 되지 않습니다.

     ModSecurity 로그를 보시면 어느정도 나옵니다.

    일단 사용중지 후 모니터링 해보시는 방법이 쉽긴하지요.
  • ? profile
    https://xetown.com/qna/329497
  • profile ?
    음 근데 저희는 로그인 폼에 아이디와 비번을 입력하고 전송을 누르면 아무 에러메세지도 없이 그냥 페이지가 새로고침만 되고 로그인이 안된 상태 그대로인 상황이라고 해서 뭔가 입력된 내용을 전송하는데 문제가 있는거 같네요. 그것도 계속 안되는것도 아니고 서너번 정도 시도하다 보면 로그인이 된다고 하니까 아예 접근권한이 차단되거나 한 것도 아닌거같고...
  • ? profile
    에러가 표시가 되고 아닌고는 차이가 날 수 있습니다. 어려운 작업이 아니니 모듈 사용중지 해 보시고 모듈에서 차단인지 아닌지 검증해 보시면 될 것 같은데요. 해당 보안모듈 사용하지 않는 경우가 굉장히 많고 사용중지 하셔도 문제될 것 없습니다.
  • profile

    아래와 같은 경우에는 파일 캐시를 사용하면 문제가 생깁니다.

    - XE 설치 경로를 NFS, Samba, 윈도우 네트워크 파일 공유 등 원격으로 마운트한 경우

    - PHP를 실행하는 계정이 일정하지 않은 경우 (소유권이나 퍼미션이 서로 다른 파일과 폴더들이 뒤섞이는 경우)

    - 계정에서 생성할 수 있는 파일 수(inode)에 제한이 있는 경우

     

    PHP에서 다수의 파일을 한꺼번에 삭제하려면 무리가 있는 것이 사실이지만,

    심지어 텔넷에서 rm -rf 명령조차 가끔 오류가 난다면 위와 같은 문제들 중 하나이거나

    아무튼 뭔가 퍼미션이 심각하게 꼬여있는 게 아닐까 합니다.

     

    웹호스팅이라면 캐시를 "사용하지 않음" (성능에 큰 영향을 미치는 일부 데이터는 여전히 캐싱됩니다)

    직접 관리하시는 서버라면 Memcached를 권장합니다.

    그 밖의 캐시 방법은 다른 선택의 여지가 없는 경우 외에는 사용을 권장하지 않습니다.

  • profile ?

    그렇군요. 캐시를 사용하지 않음으로 설정해 봐야겠네요.

     

    그런데 인터넷에서 다음과 같은 코드를 htaccess에 삽입하라는 팁을 보고 적용하고 있는데,

     

    <IfModule mod_expires.c>
    ExpiresActive on
     
    ExpiresDefault                          "access plus 1 month"
     
    ExpiresByType text/cache-manifest       "access plus 0 seconds"
    ExpiresByType text/html                 "access plus 0 seconds"
    ExpiresByType text/xml                  "access plus 0 seconds"
    ExpiresByType application/xml           "access plus 0 seconds"
    ExpiresByType application/json          "access plus 0 seconds"
     
    ExpiresByType application/rss+xml       "access plus 3 hour"
    ExpiresByType application/atom+xml      "access plus 3 hour"
     
    ExpiresByType image/gif                 "access plus 1 month"
    ExpiresByType image/png                 "access plus 1 month"
    ExpiresByType image/jpg                 "access plus 1 month"
    ExpiresByType image/jpeg                "access plus 1 month"
       
    ExpiresByType video/ogg                 "access plus 2 month"
    ExpiresByType audio/ogg                 "access plus 2 month"
    ExpiresByType video/mp4                 "access plus 2 month"
    ExpiresByType video/webm                "access plus 2 month"
       
    ExpiresByType text/x-component          "access plus 1 year"
    ExpiresByType application/x-font-ttf    "access plus 1 year"
    ExpiresByType font/opentype             "access plus 1 year"
    ExpiresByType application/x-font-woff   "access plus 1 year"
    ExpiresByType image/svg+xml             "access plus 1 year"
    ExpiresByType application/vnd.ms-fontobject "access plus 1 year"
    ExpiresByType text/css                  "access plus 1 year"
    ExpiresByType application/javascript    "access plus 1 year"
    ExpiresByType image/x-icon              "access plus 1 year"
    </IfModule>

     

    이거랑 라이믹스 자체 캐시랑 혹시 뭔가 중첩되거나 충돌되나요? 라이믹스 자체적으로 캐시를 한다면 저 코드는 빼는 게 낫나요?

  • ? profile
    전혀 무관합니다. 둘 다 사용하시는 것이 좋습니다.
  • profile ?
    그렇군요. 감사합니다.
  • ?
    방금 파일캐시랑 ModSecurity 전부 해제했는데도 또 권한이 없습니다 오류가 나네요... 캐시 재생성하고 나니까 사라졌습니다 (캐시 재생성은 정상적으로 진행되네요)

    증상은 index.php?act=dispMemberLoginForm 페이지에서 소셜로그인으로 관리자 계정으로 로그인하고 나니까 메인 페이지에서 에러가 뜨네요. 다른 게시판에서는 에러가 안 뜨고 로그아웃하거나 다른 계정으로 로그인했을 때는 에러가 안 떴습니다.