flowerspring

1. 접속 계정별 MaxClinet 설정

IfUser 를 사용하여 설정을 할 수 있다.

<IfUser user1>
    MaxClientsPerUser 10 "Sorry, %m hosts allow per one user"
</IfUser>
<IfUser user2>
    MaxClientsPerUser 1 "Sorry, %m hosts allow per one user"
</IfUser>

 

IfUser를 사용하기 위해서는 컴파일시 별도의 옵션을 줘야 한다.

./configure --with-modules=mod_ifsession
make
make install

 

2. Users, Hosts, Clients, Instances ?

- Users : ProFTPD 서버의 anonymous를 포함한 계정을 의미
- Hosts : 한대의 클라이언트 PC를 의미
- Clients : ProFTPD 서버에 접속한 모든 Users에 대해서 맺여진 세션을 의미, 즉 anonymous를 포함하여 ProFTPD서버에 인증을 통하여 세션이 맺어진 하나의 자식 프로세스(로그인 수)를 의미. 따라서 하나의 Hosts에서 2개 이상의 Clients가 있을 수 있고, 또한 같거나 서로 다른 User에 대해서 여러개의 Clients가 있을 수 있다.
- Instances : ProFTPD의 모든 자식 프로세스를 의미하는데 이 수는 인증 대기 상태에서도 자식 프로세스가 생성됩니다. 이 때 자식 프로세스는 Clients가 있을 수 있습니다. 따라서 Clients라고 하면 보통 하나의 클라이언트 컴퓨터를 의미하지만 ProFTPD 설정 파일에서는 인증을 통하여 세션이 맺어진 자식 프로세스를 의미

 

3. MaxClients, MaxClientsPerHost , MaxClientsPerUser , MaxHostsPerUser  ?      

- MaxClients           : 세션이 맺어진 최대 자식 프로세스 수 제한 
- MaxClientsPerHost : 하나의 Host 에서 최대 Clients 수 제한(접속 제한 수) 
- MaxClientsPerUser : 하나의 User 에서 최대 Clients 수 제한(접속 제한 수) 
- MaxHostsPerUser  : 하나의 User 에서 최대 Hosts(하나의 컴퓨터) 수 제한 (ID 공유 제한)

 

4. Timeout 관련 설정

- TimeoutIdle : idle 상태로 접속을 유지할 수 있는 시간
- TimeoutNoTransfer : 파일 전송이 없는 상태로 접속을 유지할 수 있는 시간
- TimeoutLogin : 로그인 인증을 유지할 수 있는 시간

Comment +0

아파치 웹서버는 기본적으로 80포트를 사용한다.

하지만 1024 이하의 포트를 사용하는 프로그램은 RFC 규약에 의하여 root가 아닌 일반 계정으로 실행을 할 수가 없다.

해당 프로그램의 사용 포트를 1024이상의 포트를 사용하던지 그렇지 않을 경우 다음 방법으로 계정으로 일반 계정으로 실행한다.


순서는 디렉터리의 소유권을 바꾸고, root로 실행해야 하는 파일을 실행권한 및 소유권을 바꿔서 실행하는 순서이다.


먼저 다음과 같은 환경이라고 과정하고 설명한다.


환경 : Centos 7.3 

설치 디렉터리 : /app/web/apache24

실행계정 : webadmin01

실행그룹 : webadmingroup


cd /app/web/

chown -R webadmin01:webadmingroup apache24

cd apache24/bin

chown root:webadmingroup httpd

chmod +s httpd






 


 

Comment +0

아파치가 서버가 시작될때 자동으로 httpd 서비스가 실행되게 하기 위해서 사용한다.


먼저 아파치가 설치 되어 있어야 한다.

예제를 위해서 설치된 아피치 경로는 다음과 같다


설치경로

/app/web/apache24



1. 심볼릭 링크 설정

먼저 아파치 설치 경로 /app/web/apache24/bin/ 폴더에는 httpd 서버를 실행시키기 위한 apachectl 명령어가 존재한다.

이 명령어를 /etc/rc.d/init.d/ 폴더로 링크를 걸어준다.

이렇게 하는 이유는 서비스를 등록하기 위해서는 해당 폴더에 쉘 정보가 존재해야지 서비스 등록이 가능하기 때문이다.


ln -s /app/web/apache24/bin/apachectl /etc/rc.d/init.d/httpd




2. apachectl 명령어 편집

vi 편집기를 이용하여 apachectl 명령어에 다음 강조된 문구를 추가해준다.

해당 문구 추가해주는 이유는 해당 부분이 존재하지 않을 경우 service 등록이 되지 않기 때문이다.



#!/bin/sh

#

# chkconfig: 345 85 15

# description: init file for Apache2 server daemon

#

# Licensed to the Apache Software Foundation (ASF) under one or more



chkconfig: 345 85 15에 대한 내용은 다음과 같다.

345 : 부팅시 런레벨 3, 4, 5에서 구동됨을 의미

85   : 데몬 실행 우선 순위

15   : 데몬 종료 우선 순위

 


만약 해당 문구가 존재하지 않을 경우 다음과 같은 메세지기 표출된다.

httpd 서비스는 chkconfig 를 지원하지 않습니다




3. 서비스 등록

기본적으로 apache는 root 권한으로 실행되어야 한다. 만약 1~1024 범위 안에 포트가 아닐 경우는 root 권한이 아니여도 된다. 

실행 권한이 없는 경우 다음 명령으로 실행 권한을 먼저 부여한다.

http는 /etc/rc.d/init.d/httpd를 가르킨다.


실행 권한 부여

chmod +x httpd



서비스를 등록하기 위해서는 chkconfig --add 명령으로 서비스를 등록하고, 서비스를 삭제하기 위해서는 chkconfig --del 명령을 삭제를 하면 된다.


서비스 등록

chkconfig --add httpd




서비스 목록 확인

chkconfig --list | grep httpd


httpd           0:해제  1:해제  2:해제  3:해제  4:해제  5:해제  6:해제



서비스 목록에는 등록되어 있지만 해당 서비스는 모두 해제로 되어 있어서 동작되지 않는다.

서버가 시작하거나 재부팅시 동작되도록 런레벨을 설정해준다.


렌레벨 설정

chkconfig --level 35 httpd on


서비스 목록 확인

chkconfig --list | grep httpd


httpd           0:해제  1:해제  2:해제  3:활성  4:해제  5:활성  6:해제



4. 참고


리눅스 런레벨 정보

# 0 - halt (DO NOT set initdefault to this)

시스템 종료 


# 1 - Single user mode

관리자 작업을 위한 유저 모드


# 2 - Multiuser mode, without NFS (The same as 3, if you do ot have networking)

네트워크 인터페이스를 사용하지 않는 텍스트 유저 모드


# 3 - Full muliuser mode

텍스트 유저 모드


# 4 - unused

사용되지 않음, 특별한 목적을 위해 존재


# 5 - X11

그래픽 유저 모드


# 6 - reboot (DO NOT set initdefault to this)

시스템 재부팅



Comment +0

WILDFLY에서 변경된 jsp 파일의 변경사항은 동적으로 적용되지 않으며, 재배포해야만 적용이 된다. 

동적으로 변경하기 위해서는 standalone.xml 파일을 열어

jsp-configuration 태그의  development 속성을 true로 적용하여 동적으로 적용되도록 활성화 할 수 있다.

  

다만 주의할 점은 PRODUCT 환경과 오버헤드가 우려되는 상황에서는 사용하지 않도록 한다.



 <subsystem xmlns="urn:jboss:domain:web:1.0">

<configuration>

<jsp-configuration development="true" check-interval=600"/>

</configuration>

     <connector name="http" protocol="HTTP/1.1" socket-binding="http" scheme="http"/>
     <virtual-server name="localhost">
         <alias name="example.com"/>

</virtual-server>

</subsystem>


Comment +0

원격지의 있는 windows 10운영체제에 접속하기 위한 방법입니다.


내용은 총 다음과 같습니다.

기본적으로 1, 2 섹션만 보면 되나 경우에 따라서 3, 4번 참고하시면 됩니다.


1. 원격 데스크톱 연결 설정

2. 원격 데스크톱 방화벽 설정

3. 원격 데스크톱 포트 변경

4. 변경된 데스크톱 포트 허용



가장 먼저 원격지에서 접속하기 위해서는 해당 PC에 원격 설정 허용을 해야 합니다.


1. 원격 데스크탑 연결 설정


먼저 시스템의 원격 설정 메뉴를 선택합니다. 



원격 설정 메뉴 창이 뜨게 되면 위에 보이는 부분 처럼

항목을 체크합니다.


- 이 컴퓨터에 대한 원격 연결 허용 체크

- 네트워크 수준 인증을 사용하여 원격 데스크톱을 실행하는 컴퓨터에서만 연결 허용(권장)(N) 체크 해제 


이제는 원격 접속을 할 수 있도록 준비가 되어습니다.

원격지에서 접속을 해보시고 안되시면 아래 항목을 읽어가면서 방화벽 설정을 해주시면 됩니다. 



2. 원격 데스크탑 방화벽 허용

원격 데스크탑을 허용했다고 하여도 외부에서 접속하기 위해서는 방화벽에 해당 원격데스탑앱을 접속 가능하도록 해줘야 합니다.  



Windows 방화벽을 설정하기 위해서는 제어판으로 이동한 후 windows 방화벽 메뉴를 선택합니다.





일반적인 방화벽 초기 화면입니다. 녹색으로 표시가 되어 있으면 모든 방화벽이 동작을 하고 있는 것이며, 이 경우에는 설정된 정보에 따라서 외부에서 혹은 내부에서 들어가고 나가는 정보를 차단 혹은 허용하게 됩니다.


모든 방화벽 설정을 해제하기 위해서는 좌측 메뉴의 Windows 방화벽 설정 또는 해제에서 관리를 하면 됩니다.

방화벽 해제를 하시게 되면 기본적으로 내부에서나 외부에서 모든 접속이 허용하게 됩니다. 


여기에서는 원격데스크탑만 허용할 것이므로 Windows 방화벽을 통해 앱 또는 기능 허용 메뉴를 선택합니다. 



스크롤을 통해서 아래로 내려보면 원격 데스트톱 연결을 체크하여 방화벽에서 해당 프로그램에 접속을 허용하도록 합니다.

확인을 눌러 저장한 다음 다시 원격접속을 시도해봅니다.




3. 원격 데스크톱 포트 변경

원격 데스크탑의 기본 포트는 3389번이며 이를 변경하기 위해서는 레지스트리 편집기에서 포트값을 변경해주면 됩니다.


포트 변경을 해주기 위해서는 레지스트리를 변경해줘야 하는데 실행창에 regedit를 치시면 해당 레지스트리 편집 프로그램이 뜹니다.


좀 더 상세하게는   

Windows키 + R 키보드를 누른 후 명령창에서 regedit를 입력한 후 엔터를 누릅니다. 





regedit를 누르게 되면 정상적으로 편집기가 열리게 됩니다.

편집기가 정상적으로 실행이 되었다면 아래 경로를 찾아가는데 트리 구조이기 때문에 \로 구분하여 해당 메뉴를 찾아갑니다.

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber



메뉴를 따라가게 되며 최종적으로는 노란 부분의 ProtNumber까지 가게 됩니다.

해당 레지스트리 값에서 마우스를 올려놓고 우클릭을 하게 되면 메뉴가 표시가 되는데 [수정] 메뉴를 선택하여 수정 창으로 이동합니다.



처음 보여지는 값은 16진수 이므로 단위를 10진수로 변경 한 다음 값 데이터를 원하는 포트 번호로 변경하여 줍니다.

이때 사용하는 포트번호를 피하여 값을 변경해줍니다.


포트값이 다 변경이 되었다면 확인 버튼을 누르고 윈도우를 재시작 하여 줍니다.


하지만 포트만 변경이 되었다고 해서 외부에서 바로 접속 할 수 있는 것은 아닙니다. 방화벽이 모두 해제가 되어 있는 경우는 가능하나 방화벽이 동작하는 경우에는 해당 포트를 허용 신청해야 합니다. 



4. 변경된 원격 데스크톱 포트 허용  

방화벽을 통해 원격데스트탑을 허용하였지만 포트변경으로 인해 원격 데스트탑에 접속을 할 수 없는 경우에는 해당 포트를 방화벽에서 열어줘야 합니다.

이 설정은 방화벽 설정 화면에서 고급 설정 메뉴에서 가능합니다.

방화벽 설정에서 고급 설정을 선택합니다.



인바운트 규칙을 선택하신 후 우측 새 규칙을 선택합니다.


원격 지원 포트를 변경하기 위한 것으로 규칙 종류는 포트를 체크한 후 다음을 선택합니다.

다른 포트를 허용 할 경우도 동일하게 작업하시면 됩니다.



허용하고자 하는 포트를 입력한 후 다음을 선택합니다


다음을 선택합니다.



다음을 선택합니다.


해당 항목을 읽어보고 불필요한 부분은 체크 항목을 변경하도록 합니다.



새 규칙의 이름 및 설명을 입력하고 마침을 눌러 설정을 마칩니다.



이렇게 해서 원격데스트톱의 접속하기 위한 설정은 끝났습니다.


Comment +0

서버를 운영하다 보면 여러가지 이유때문에 서버가 다운되는 경우가 발생을 하게 됩니다. 대부분의 경우 톰캣 스크립트를 통해 서버를 재시작 시켜주기만 하면 되는 간단한 작업이지만, 휴가를 가거나 오랜기간 컴퓨터앞에 앉아 있을 수가 없게 되었을때 서버 다운이 발생하면 속수무책으로 당할수 밖에 없습니다. 그리고 이런 문제가 자주 발생하게 된다면 사용자들은 해당 서비스를 신뢰할수 없게 될것입니다. 이런 때를 대비해서 쉘 스크립트를 통해 톰켓 서버의 상태를 체크 하여 서버가 다운되었을때 재실행 시키는 스크립트를 작성하고,CRONTAB을 이용하여 주기적으로 서버의 상태를 체크하게 하면 그나마 나은 서비스가 될수 있을 것입니다. 아래의 스크립트 내용은 톰켓의 상태를 체크하여 프로세스가 죽어 있으면 스크립트를 실행하여 서버를 재시작 시키는 스크립트 입니다.

1
2
3
4
5
6
7
8
9
10
11
12
#!/bin/bash
 
export JAVA_HOME=사용자들의 JAVA_HOME
export PATH=$PATH:$JAVA_HOME/bin
export CATALINA_HOME=톰켓 설치 위치
export PATH=$PATH:$CATALINA_HOME/bin
 
if [ -z "`ps -eaf | grep java| grep tomcat`" ]; then
        $CATALINA_HOME'/bin/startup.sh'
        END_TIME=`date +%m/%d' '%H:%M:%S`
        echo "["$END_TIME"] tomcat restart.."
fi

기본적으로 JAVA_HOME같은 환경변수들은 JDK를 설치할때 세팅을 해줌에도 불구하고 스크립트에서 다시 export 시키는 이유는 crontab에서 스크립트를 실행하면 .bash_profile이나 /etc/profile 에 JAVA_HOME, PATH같은 환경변수를 선언해 두었더라도 환경변수를 읽을 수 없어 톰캣실행이 잘 되지 않습니다. 그렇기 때문에 톰켓을 실행시키기 위한 필수 환경변수들을 스크립트에 다시 한번 선언해 주어야 합니다. 이후 해당 스크립트를 CRONTAB에 등록하면 되는데, CRONTAB에 스크립트를 등록하는 방식은 다음과 같습니다.

1
2
3
$ crontab -e
##vi 에디터가 실행되면 다음의 내용을 추가합니다.
*/5 * * * * /스크립트 경로/tomcat_checker.sh >> /data/log/tomcat-restart.log 2>&1

따로 cron expression은 설명하지 않겠습니다. 위의 뜻은 5분마다 tomcat_checker.sh 스크립트를 실행시키고 그에 따른 결과 로그를 tomcat-restart.log에 append(>>) 하겠다는 뜻입니다. 위와 같이 설정한 후 root 권한으로 crontab을 재시작 시키면 crontab이 적용되게 됩니다.

1
2
$ su
# /sbin/service crond restart

그리고 crontab -l 명령어로 해당 crontab에 스케줄러가 잘 등록이 되었는지 확인 하면 됩니다.  


[원문출처] http://krespo.net/160

Comment +0

SVN 서버스 사용법



계정은 SVN 계정으로 합니다.


접속

svn://아이피/저장소명


기동 

svnserve -d -r /data/svn


종료

kill -9 프로세스번호


저장소 생성

-일반방식

svnadmin create --fs-type fsfs [저장소경로]


svnadmin create --fs-type bda [저장소경로]


초기 설정

각 저장소에서 conf 폴더로 이동 후 svnserve.conf 파일 수정 아래 부분 주석 해제

[general] 

# 익명 사용자 읽기 사용 여부

anon-access = read

# 인증 사용자 쓰기 사용 여부

auth-access = write

# 인증에 사용될 패스워드 설정 파일

password-db = passwd


사용자추가

각 저장소의 신규 사용자를 추가할때 사용하며 각 저장소의 conf 폴더로 이동하여 passwd 파일을 열어서 사용자를 추가한다.

[users] 

# svn 사용자의 비밀번호를 지정

# 사용자ID = 비밀번호

test=test123


프로세스 확인

ps -aux | grep svnserv



설치

yum install -y subversion


리눅시 시작시 자동 실행 

vi /etc/rc.d/init.d/subversion 을 이용하여 신규로 파일이 없다면 파일을 만들고 아래 내용을 입력한다.

입력이 완료되면 저장 후 종료하고 

chkconfig subversion on

명령을 입력한다.

#!/bin/bash 

. /etc/rc.d/init.d/functions

[ -x /usr/bin/svnserve ] || exit 1

RETVAL=0

prog="svnserve"

desc="Subversion server"

OPTIONS="--threads --root /home/svn"

start() {

        echo -n $"Starting $desc ($prog): "

        daemon $prog -d $OPTIONS

        RETVAL=$?

   [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog

   echo

}

 

stop() {

          echo -n $"Shutting down $desc ($prog): "

   killproc $prog

   RETVAL=$?

   [ $RETVAL -eq 0 ] && success || failure

   echo

   [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog

   return $RETVAL

}

 

case "$1" in

  start)

   start

   ;;

  stop)

   stop

   ;;

  restart)

   stop

   start

   RETVAL=$?

   ;;

  condrestart)

        [ -e /var/lock/subsys/$prog ] && restart

   RETVAL=$?

   ;;

  *)

   echo $"Usage: $0 {start|stop|restart|condrestart}"

   RETVAL=1

esac

 

exit $RETVAL

EOF



'DEVELOPMENT > Server' 카테고리의 다른 글

windows 10 원격지원 허용 및 포트 변경  (0) 2016.06.15
[CRONTAB] 크론탭을 이용하여 무중단 톰켓 서버 만들기  (0) 2015.07.22
SVN 사용법  (0) 2014.04.13
Tomcat Context 생성  (0) 2014.04.10
JEUS 사용법  (0) 2013.07.12
Tomcat 특정 아이피만 접근 허용  (0) 2011.07.10
svn

Comment +0

apache tomcat 5.5 이후 버전에서의 Context 생성 방법입니다.


server.xml 파일을 열게 되면 xml Tag가 Service라는 태그의 속성명 name을 찾습니다.

일반적으로는  <Service name="Catalina"> 이렇게 되어 있습니다.


먼저 context를 만들기 위한 폴더를 생성합니다.

service 태그의 name값인 Catalina 폴더를 만들고 다시 그 안에 localhost 라는 폴더를 만듭니다.

최종적으로는 위에 내용대로라면 톰캣경로/conf/Catalina/localhost가 되겠네요


그럼 이제 이하위에 파일을 생성하시면 되는데 파일은 xml 형식입니다.

root Context는 ROOT.xml을 만드시면 되고 기타 context는 컨텍스트명.xml파일로 만드시면 됩니다.


파일이 생성이 되었으면 이제 관련 설정을 파일에 추가하면 됩니다.

test라는 컨텍스트를 만들게 되면 아래와 같은 형식이 되겠습니다.


text.xml  

<?xml version='1.0' encoding='utf-8'?>

<Context path="/test"

         docBase="/home/test/web"

         debug="0"

         reloadable="true"

         crossContext="true">

<Valve className="org.apache.catalina.valves.AccessLogValve"

            directory="/home/test/logs/access"

            prefix="access."

            suffix=".log"

            pattern="common"

            fileDateFormat="yyyy-MM-dd"

            resolveHosts="false"/>

    <Resource name="jdbc/my" auth="Container"

                        type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver"

                        url="jdbc:mysql://[ip]:[port]/[db명]?zeroDateTimeBehavior=convertToNull"

                        username="[username]" password="[password]"

                        loginTimeout="10" maxActive="50"

                        maxIdle="10" maxWait="-1" />

</Context>



만약 다른 도메인이나 서브 도메인이 생성되어야 한다면

server.xml에 신규 HOST를 추가한다.

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
    기존 도메인 내용이 있음
</Host>
<!-- 신규로 추가되는 서브 도메인 -->
<Host name="test.anaconda.pe.kr" appBase="webapps" unpackWARs="true" autoDeploy="true">
</Host>



그리고 /conf/Catalina/폴더 아래에 test.anaconda.pe.kr라는 폴더를 만든다.

/conf/Catalina/test.anaconda.pe.kr와 같은 폴더를 가진다.

그리고 그 아래에 ROOT.xml파일을 만들고 context 정보를 넣어주면 된다.

Comment +0

jeus 명령어


jeus5 기준으로 자주 사용되는 명령어를 정리하였다.

먼저 jeus는 tmax 계정으로 설치가 되므로 tmax 계정으로 들어가서 명령어를 실행한다.



tmax 로그인

su - tmax



jeus 종료 

jdown 배치 쉘이 존재하는 경우는 jdown를 사용하며 실제 내용은 아래와 같다

jdown 


원격 실행시 세션이 종료되면 jeus도 같이 죽으니 백그라운드로 실행한다.

nohup jboot &



jeus 시작

jboot 배치 쉘이 존재하는 경우는 jboot를 사용하며 실제 내용은 아래와 같다

jboot 



jeus admin 콘솔 들어가기

ja


콘솔 명령어

콘터이너 목록 확인

conlist


컨테이너 종료

downcon [컨테이너명] 


컨테이너 시작

startcon [컨테이너명]


컨테이너 PID 확인

pidlist


엔진 상태 확인

allenglist


depoly이된 어플리케이션 확인

applist


jndi 연결리스트 확인

jnidlist


제우스 메모리 사용 현황

meminfo



웹관리자


아이피 : http://ip:9744/webadmin

기본계정 : administrator/jeusadmin


버전확인 

jeusadmin -version


풀버전확인

jeusadmin -fullversion


라이센스확인

jeusadmin -licensedue


라이센스정보확인

jeusadmin -licenseinfo


webtobe 버전확인

wscfl -version

'DEVELOPMENT > Server' 카테고리의 다른 글

SVN 사용법  (0) 2014.04.13
Tomcat Context 생성  (0) 2014.04.10
JEUS 사용법  (0) 2013.07.12
Tomcat 특정 아이피만 접근 허용  (0) 2011.07.10
Windows7 환경에서 Tomcat 사용시 IPv6로의 인식 문제  (0) 2010.08.10
Weblogic Domain 생성 및 테스트  (0) 2010.05.28

Comment +0

<Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="172.16.190.115,172.16.190.163,127.0.0.1"/>

server.xml 파일의 Host 태그 사이에 넣어주면 된다.

Comment +0