https://velog.io/@velopert/eslint-and-prettier-in-react

https://velog.io/@honeysuckle/%EC%8B%A0%EC%9E%85-%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EB%AA%A8%EC%9D%8C

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
* 참고 :  http://bluewiz.tistory.com/446  

Gitosis를 이용하여 Redmint + Git 환경 구축

# Redmine 설치
    * www.redmine.org 참조
    * 아파치 연동 후 www-date 계정으로 연동 가정
    * 설치 위치 : /var/www/redmine

# 패키지 설치

sudo apt-get install git-core python-setuptools build-essential
gem install inifile
gem install net-ssh or apt-get install libnet-ssh2-ruby1.8
gem install lockfile or apt-get install liblockfile-ruby

# git 사용자 추가

suso adduser --system --shell /bin/bash --gecos "Git Administrator" --group --disabled-password --home /opt/git git


# Git 관리자 SSH 키 생성
    * 한번 생성된 키가 바뀔 경우 복사된 모든 키를 다시 복사 해야 한다.(링크 거는것도 한 방법. 될까?)

sudo -H -u git ssh-keygen -t rsa


# Gitosis 설치 (root 로 실행)

cd /opt/git
sudo git clone git://eagain.net/gitosis.git
cd gitosis
sudo python setup.py install
sudo -H -u git gitosis-init < ~git/.ssh/id_rsa.pub
sudo chod 755 ~git/repositories/gitosis-admin.git/hooks/post-update
sudo chown -R git.git /opt/git


# RedmineGitosis 플러그인 설치

cd /var/www/redmine
script/plugin install git://github.com/rocket-rentals/redmine-gitosis.git


# vendor/plugins/redmine-gitosis/lib/gitosis.rb 파일을 열어서 환경변수 수정.
    * 1. GITOSIS_URI = "git@<server-fqdn>:gitosis-admin.git"
    * 2. GITOSIS_BASE_PATH = "/opt/git/repositories/" <- Gitosis를 설치한 사용자의 홈디렉토리에 존재
    * 3. 아래쪽에 'vendor/plugins/redmine_gitosis/extra/ssh_with_identity_file.sh' 경로를
          'vendor/plugins/redmine-gitosis/extra/ssh_with_identity_file.sh'로 변경. 

vi  vendor/plugins/redmine-gitosis/lib/gitosis.rb


# vendor/plugins/redmine-gitosis/extra/ssh_with_identity_file.sh 변경

#!/bin/bash
#LD_LIBRARY_PATH = "" <-- 아파치 로그 오류로 주석 처리
exec ssh -i `dirname $0`/ssh/private_key "$@"


# 플러그인 관련 데이터베이스 구조 반영

cd /var/www/redmine
rake db:migrate_plugins RAILS_ENV=production


# gitosis 관리를 위한 마스터 키 설정.
    * Passenger 는 redmine 계정에서 실행되기 때문에 gitosis 시스템에 접근할 수 있도록 마스터 키를 설정해야 한다. 
    * (gitosis 시스템은 git 계정에서 관리되고 있음)
    * git 계정의 rsa private key 를 복사해서 /var/www/redmine/vendor/plugins/redmine-gitosis/extra/ssh/private_key 를 덮어쓴다.

sudo cp ~git/.ssh/id_rsa /var/www/redmine/vendor/plugins/redmine-gitosis/extra/ssh/private_key
sudo chmod 600 /var/www/redmine/vendor/plugins/redmine-gitosis/extra/ssh/private_key


# redmine 프로그램이 git에 접속하기 위해 ~git/.ssh 에 있는 모든키 ~www-data/.ssh 복사

sudo cp -R ~git/.ssh ~www-data/.ssh


http://www.creativeswa.pe.kr/xe/120

<profile>

            <id>sonar</id>

            <activation>

                <activeByDefault>true</activeByDefault>

            </activation>

            <properties>

                <!-- EXAMPLE FOR MYSQL -->

                <sonar.jdbc.url>

                  jdbc:mysql://192.168.120.52:3306/sonar?useUnicode=true&amp;characterEncoding=utf8

                </sonar.jdbc.url>

                <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>

                <sonar.jdbc.username>sonar</sonar.jdbc.username>

                <sonar.jdbc.password>sonar</sonar.jdbc.password>


                <!-- SERVER ON A REMOTE HOST -->

                <sonar.host.url>http://192.168.120.52:9000</sonar.host.url>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

            </properties>

        </profile>

 

'Java' 카테고리의 다른 글

ThreadLocal 사용법  (0) 2011.07.17
iText 한글 문제 처리  (0) 2011.05.08

'Java > 개발 환경' 카테고리의 다른 글

CI 환경 구축 하기  (0) 2011.07.17
팀으로서의 역량 향상을 위한 CI환경 구축 : http://chanwook.tistory.com/815

Sonar 소개 및 구축 : http://blog.naver.com/stonedragony/50100178043

Sonar에서 App.분석 / Data 수집하기 :  http://blog.naver.com/stonedragony/50100501541

Hudson / Sonar 연동하기 : http://blog.naver.com/stonedragony/50101740211
 
자바캔(Java Can Do IT) - http://javacan.tistory.com/153
 

'Java' 카테고리의 다른 글

sonar 한글 처리  (0) 2012.02.08
iText 한글 문제 처리  (0) 2011.05.08

여러곳을 찾아봐도 답이 없어 BaseFont 소스를 보고 찾은 방법 입니다.
iText 사용 버전은 5.1.0 입니다.

우선 WEB-INF/class/font 라는 폴더에 사용하고 싶은 폰트 파일을 넣어 둡니다.
저는 맑은고딕을 사용 하였습니다.
그리고 해당 폰트를 아래와 같이 만듭니다.

  BaseFont objBaseFont = BaseFont.createFont("font/MALGUN.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);


전체 사용방법은 아래와 같습니다.

  Document document = new Document(PageSize.A4, 50, 50, 50, 50);
  PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("d:/test.pdf"));
  
  document.open();
  
  BaseFont objBaseFont = BaseFont.createFont("font/MALGUN.TTF", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
  Font objFont = new Font(objBaseFont, 12);

  document.add(new Paragraph("First Page", objFont));
  document.add(new Paragraph("한글", objFont));
  
  document.close();

'Java' 카테고리의 다른 글

sonar 한글 처리  (0) 2012.02.08
ThreadLocal 사용법  (0) 2011.07.17

+ Recent posts