Centos 6.5 에서 6.6 업그레이드 이후 시스템이 이상해졌다.

nginx - tomcat 연동을 잘 되었는데 자꾸만 permition deny 오류가 뜬다.

구글링을 해도 답이 없어서... 친구에게 확인 결과

/etc/selinux/confg 열어 보니 SELINUX=enforcing 되어 있다.

SELINUX=disabled 로 변경후 재부팅 하니 잘 동작 한다.


SELINUX가 뭐지?? ㅡㅡ;;

어려운 OS의 세계~


그래도 해결~


친구야~ 고맙다~ ㅋㅋ



추가 작업.. .수정

SELINUX 관련 자료를 찾다가 SELINUX를 disabled 하지 않고 해결 방법을 찾았는데

/var/log/audit/audit.log 에서 nginx 가  denied 되는 부분만 찾아

semodule 로 추가 해주는 방법

I had a similar issue getting Fedora 20, Nginx, Node.js, and Ghost (blog) to work. It turns out my issue was due to SELinux.

I checked for errors in the SELinux logs:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied

And found that running the following commands fixed my issue:

sudo cat /var/log/audit/audit.log | grep nginx | grep denied | audit2allow -M mynginx
sudo semodule -i mynginx.pp

References:

SELINUX 어렵군.. ㅡㅡ;


'서버 설정' 카테고리의 다른 글

Tomcat Session Clustering 설정  (0) 2014.11.08


핵심 개념

  • Multicast
  • Session Manager in Tomcat

Multicast

Multicast는 특정 수신자 그룹에게 단순 메시지를 전송하는 방법이다. 
Tomcat에서는 Apache Tribes Pear-to-pear communication framework 를 사용한다.

Tomcat  세션 관리자 종류

 Standard Manager

 기본 세션 관리자

 Persistent Manager 

 File Store, JDBC Store 두가지 방식이 있음

 Delta Manager

 다른 인스턴스와 세션을 복제(공유) 한다.
 multicast 방식에 따라 수신자 그룹에 등록된 모든 서버들과 세션을 복제 한다.

 Backup Manager

 다른 인스턴스와 세션을 복제(공유) 한다.
 수신자 그룹에 등록된 1대의 서버만 백업을 둔다.

세션 복제 설정 방법

  1. multicast routing
  2. conf/server.xml <Cluster> 추가 
  3. web.xml <distributable /> 추가
1. Multicast routing
sudo route add -net 224.0.0.0 net netmask 244.0.0.0 dev eth0

2. conf/server.xml <Cluster> 추가

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>

<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>

<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>

<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4001"  <!-- 한 서버에 여러 Tomcat를 구동할 경우 Port 번호를 다르게 설정 -->
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>

<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>

<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>

<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>

<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>




참고:

  • 세션 공유가 되지 않을 경우 방화벽을 확인 해 볼 필요가 있다.(multicast 는 UDP 통신을 한다.)
  • 하나의 서버에 다수의 Tomcat를 구동할 경우 <Receiver> 의 Port는 각 서버마다 다르게 설정 해야 한다.
  • Creation of SecureRandom instance for session ID generation  할 때 시간이 올래 걸리면 
    -Djava.security.egd=file:/dev/./urandom 설정을 추가 한다.


'서버 설정' 카테고리의 다른 글

Centos 6.5 에서 6.6 업그레이드 이후 문제점  (0) 2014.11.09

+ Recent posts