캠핑과 개발

 

 

GitLab root 비밀번호를 모를경우 확인 하는 방법은  아래와 같다.

cat /etc/gitlab/initial_root_password  | grep Password:

 

 

만약 docker에 의해 GitLab가 실행중이라면 아래 명령을 통해 컨테이너 확인 후 컨테이너로 접속 후 실행한다.

#docker 컨테이너 확인
docker ps

# 컨테이너 접속
docker exec -it [이미지 ID] /bin/bash

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

Windows10에서 WebDAV 설정  (0) 2021.11.18
Synology Git Server  (0) 2021.11.15
docker container vi 설치  (0) 2021.01.05
ProFTPD 접속 클라이언트 제한 설정  (0) 2019.05.13
apache 일반 계정으로 실행하기  (0) 2019.01.14

windows 환경에서 WebDAV를 사용할 경우 다음 2가지를 설정을 합니다.

 

1. HTTP 프로토콜 허용

기본적으로 Windows 네트워크에서 WEBDAV연결시에는 HTTPS 프로토콜이 기본 입니다.

따라서 이를 HTTP로변경 해야합니다. 일반적으로 가정이나 SOHO 환경에서는 인증서 기반의 HTTPS프로토콜 셋팅이 쉽지 않기 때문입니다.

    - 먼저 레지스트리 편집기에서 "HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > WebClient > Parameters"

      로 이동

    - 다음에 "BasicAuthLevel" 값을 "1"에서 "2"로 변경(키 이름이 없다면 "DWORD Value" 키를 새로 만듭니다.)

       *각 값의 의미는 다음과 같습니다.

         0 - Basic authentication disabled

         1 - Basic authentication enabled for SSL shares only

         2 or greater - Basic authentication enabled for SSL shares and for non-SSL shares

        "0"은 아예 사용금지로 변경, "1"은 HTTPS만 허용, "2"는 HTTP도 허용

    - 그다음 리부팅.....그다음 재시도

       * "네트워크 위치 추가" 에서 "http://DDNS주소 or IP:설정포트"로 추가

 

2. 파일 사이즈 용량 조정

기본적으로 WEBDAV를 통해 연결 할수있는 단일 파일의 최대 사이즈는 50Mb 입니다. 따라서 연결 성공후에도 동영상 재생이 안되는 불상사가 발생 합니다. 파일 사이즈의 한계값 변경을 통해 이를 해결 합니다.

   - 먼저 레지스트리 편집기에서 "HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > services > WebClient > Parameters"

     로 이동 합니다.

   - 다음에 "FileSizeLimitInBytes" 값을 보면 바이트(byte)로 되어있습니다. 단위를 10진수로 바꿔서 확인해보면 50000000이란 값이

     적혀있는데  메가바이트(mb)로 환산하면 약 47.7메가 기본 전송사이즈로 설정되어 있습니다.

   - 4GB로 변경 :값의 속성을 10진수로 변경 하시고 4194304000 으로 변경

       * WEBDEV 프로토콜은 4Gb를 넘길수 없으므로 약간 모자란 "4194304000" 로 변경 합니다.

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

GitLab 초기 비밀번호 확인  (0) 2024.01.09
Synology Git Server  (0) 2021.11.15
docker container vi 설치  (0) 2021.01.05
ProFTPD 접속 클라이언트 제한 설정  (0) 2019.05.13
apache 일반 계정으로 실행하기  (0) 2019.01.14

 

1. git Server 저장소 추가

ssh user@host 접속

 

콘솔 접속 후

sudo -i #Root 권한 획득

cd /volumn1 #volumnx로 이동

mkdir git #저장소로 사용할 디렉터리 생성. /git/test

cd git

mkdir test

cd test 

git init --bare #저장소 초기화

cd ..

chown -R gitUser@users test

 

2.clone 테스트

git clone ssh://[Git users]@[hostname]/[Git repository path]
ex) git clone ssh://[Git users]@[hostname]/volume1/git/test

 

 

 

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

GitLab 초기 비밀번호 확인  (0) 2024.01.09
Windows10에서 WebDAV 설정  (0) 2021.11.18
docker container vi 설치  (0) 2021.01.05
ProFTPD 접속 클라이언트 제한 설정  (0) 2019.05.13
apache 일반 계정으로 실행하기  (0) 2019.01.14

#docker exec -it [컨테이너 아이디] bash

#apt-get update

#apt-get upgrade

#apt-get install vim

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

Windows10에서 WebDAV 설정  (0) 2021.11.18
Synology Git Server  (0) 2021.11.15
ProFTPD 접속 클라이언트 제한 설정  (0) 2019.05.13
apache 일반 계정으로 실행하기  (0) 2019.01.14
CentOS7에 Apache 서비스 등록  (0) 2017.12.27

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 : 로그인 인증을 유지할 수 있는 시간

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

Synology Git Server  (0) 2021.11.15
docker container vi 설치  (0) 2021.01.05
apache 일반 계정으로 실행하기  (0) 2019.01.14
CentOS7에 Apache 서비스 등록  (0) 2017.12.27
wildfly jsp 동적으로 변경사항 적용하기  (0) 2017.12.02

아파치 웹서버는 기본적으로 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






 


 

아파치가 서버가 시작될때 자동으로 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)

시스템 재부팅



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>


원격지의 있는 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. 변경된 원격 데스크톱 포트 허용  

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

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

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



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


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

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



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


다음을 선택합니다.



다음을 선택합니다.


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



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



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


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

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

wildfly jsp 동적으로 변경사항 적용하기  (0) 2017.12.02
windows 10 원격지원 허용 및 포트 변경  (0) 2016.06.15
SVN 사용법  (0) 2014.04.13
Tomcat Context 생성  (0) 2014.04.10
JEUS 사용법  (0) 2013.07.12