현재 스킨에서 불편한게 많아 대대적인 수정 또는 워드프레스로의 이전을 고려하고 있습니다....
시점은 9~10월입니다.
현재 스킨에서 불편한게 많아 대대적인 수정 또는 워드프레스로의 이전을 고려하고 있습니다....
시점은 9~10월입니다.
최종 합격 메일 및 출력 가능
패스 시, 구글 마크 달린 백팩이랑 후드 택일해서 받을 수 있군요.
백팩 백오더 3-4주 걸린다고 해서 우선 대기중..
[Update] ESXi 6.7 버전 최신 Patch ( Build 13644319 ) (0) | 2019.05.20 |
---|---|
해외 RBL 체크 사이트 (0) | 2019.05.03 |
[ESXi] ESXi 6.7 Update 2 - CVE-2018-3646 (0) | 2019.04.17 |
[Remix OS] (Tablet형 Notebook에서) Remix OS Auto rotate 가 안 될 때 (2) | 2016.04.12 |
CenTOS 에서 데이터 이동/수정 시 퍼미션 문제 발생 (2) | 2013.06.06 |
[ 구성 ]
HAProxy 서버 ( Public VIP ) * 1EA
( CentOS 7 EPEL yum install HAProxy 1.5.18 )
하단에 공인망 스위치와 사설스위치 각각 1대씩.
사설단에 연결된 192.168.0.15 / 16 이 WEB1 , WEB2
[ Configure 기본 ]
# cat /etc/haproxy/haproxy.cfg
#---------------------------------------------------------------------
# Example configuration for a possible web application. See the
# full configuration options online.
#
# http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------
#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global # 프로세스 전체에 영향을 주는 내용
# to have these messages end up in /var/log/haproxy.log you will
# need to:
#
# 1) configure syslog to accept network log events. This is done
# by adding the '-r' option to the SYSLOGD_OPTIONS in
# /etc/sysconfig/syslog
#
# 2) configure local2 events to go to the /var/log/haproxy.log
# file. A line like the following can be added to
# /etc/sysconfig/syslog
#
# local2.* /var/log/haproxy.log
#
log 127.0.0.1 local2 # Syslog. UDP 514 Open 필요.
chroot /var/lib/haproxy #서비스 Jail 경로. 수퍼유저로 프로세스 실행시, 모든 동작은 이 안에서만 수행됌. 보안 상승.
pidfile /var/run/haproxy.pid # 실행 피드명
maxconn 4000 # 프로세스 당 최대 연결 수치
user haproxy # Manage ID
group haproxy # Manage Group
daemon # BackGround Mode Process
# turn on stats unix socket
stats socket /var/lib/haproxy/stats
#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaults #front , back , listen 에 관련된 전역 섹션
mode http # http 프로토콜을 사용하는 로드밸런싱 모드
log global # 로그는 global 의 설정에 따른다.
option httplog # 기본 Log 는 SIP,DIP와 Name 만 표기하므로, 이 옵션을 사용하여 디테일을 높임.
option dontlognull # 로그 비대화 방지를 위해, Probe(정찰,스캔)같은 잡다한 기록을 HAProxy Log 화하지 않는 옵션.
option http-server-close # 클라이언트와 리얼서버 연결 종료시, 디폴트로 유휴대기하지 않고, 서버에서 Handshake 를 종료하여, 더 빠른 새로운 세션을 준비할 수 있도록 함. 디폴트 옵션에 선언되어 있어도, 인스턴스 별로 no옵션으로 제외처리 가능함.
option forwardfor except 127.0.0.0/8 # 서버에 대한 응답을 HAProxy 가 받기 때문에(VIP), 리얼서버 IP를 HTTP헤더에 표기하기 위한 옵션.
option redispatch # mode HTTP에서 Cookie에 지정된 Real 서버가 다운되면, 외부 클라이언트가 쿠키를 플러시하기 전에는 서비스에 문제를 일으킬 수 있으므로, 이 옵션을 줘서, 프록시의 지속성을 무시하고 쿠키, 세션 재분배를 실행하게 된다. retries 값이 0보다 커야 한다.
retries 3
timeout http-request 10s # Request 시의 헤더에만 적용. DoS 방어를 위해, HTTP 요청 타임아웃시간 설정. ( 클라이언트의 연결 타임아웃과는 무관한, 서버(HAProxy) 의 옵션이다 )
timeout queue 1m # 서버의 maxconn 에 도달시, 무한정 보류상태로 두지 않고 HTTP 503 응답을 보내면서 연결을 버리기까지의 시간.
timeout connect 10s # TCP 패킷손실을 막기 위한 Real 서버로의 연결 최대 지연시간 설정. ( Backend 에 적용되나, 전역 설정 가능 )
timeout client 1m # 외부 클라이언트의 요청이나 데이터와의 연결 최대 시간. request 와 같이 사용하여, 서버 안정성을 구현.
timeout server 1m # 서버가 데이터를 승인하거나, 전송해야 할 때의 연결 최대 시간.
timeout http-keep-alive 10s # 클라이언트의 요청에 따른 응답 전송 후, 다음 요청까지의 대기 시간. http-request 가 선행함.
timeout check 10s # timeout server 와 동일하거나 작은 값을 가져야 한다.
maxconn 3000 # 프로세스당 최대 연결 개수
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main *:80 # 클라이언트의 연결을 받는 부분 처리. WAF 기능에 가깝다.
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
use_backend static if url_static # acl 에서 정의한 style 들을 backend static으로 보낸다.
default_backend web # 위의 조건 이외는 backend web 으로 보낸다.
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend static # 프론트엔드에서 acl 연결하는 실제 리얼서버 설정.
balance roundrobin
server static 192.168.0.15:80 check
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend web # 실제 접속시 로드밸런싱하는 서버
balance roundrobin # 순차적으로 로드밸런싱
server web1 192.168.0.15:80 check
server web2 192.168.0.16:80 check
#내부 사설서버들 반드시 방화벽 해제하던지, 포트 허용해둘 것.
#listen # 프론트/백엔드의 연결의 포트/옵션등을 정의함. TCP 제어나 Proxy 에 주로 사용.
listen stats # "stats"라는 이름으로 listen 지정
bind *:9000 # 접속 포트 지정
stats enable
stats realm Haproxy Statistics # 브라우저 타이틀
stats uri /haproxy_stats # stat 를 제공할 URI
#stats auth Username:Password # 인증이 필요하면 추가한다
HAProxy Configure 메뉴얼 보시면 아시겠지만, 정말 Flow 이해에 좋습니다.
너무나도 다양한 옵션이 있으나, 우선 이 정도로도 "동작" 은 합니다.
참고 해주시면 되겠습니다.
0. HAProxy 1.8 Configure Manual ( 번역 중 .. ) (0) | 2019.06.19 |
---|---|
Docker 기본 커맨드 #01 - 컨테이너 생성 및 삭제 (0) | 2019.06.11 |
https://dev.mysql.com/doc/mysql-repo-excerpt/5.6/en/linux-installation-yum-repo.html
이 링크 하나면 yum 완벽합니다.
아래의 repo 파일 만든 후 yum clean all , yum repolist 확인 필수!
저는 CentOS 7.6 Lastest 버전이므로 6--> 7로 변경 했습니다
root@DB2:/etc/yum.repos.d# vi mysql.repo
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=1
gpgcheck=0
#gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
#yum clean all
#yum repolist
#yum install mysql-community* ( mysql-community-server 만 설치해도 되긴함 )
혹시 gpgkey 에러가 나서 server가 설치 안 된다면 yum install --nogpgcheck 옵션을 넣어주면 됩니다.
Dependencies Resolved
==========================================================================================================================
Package Arch Version Repository Size
==========================================================================================================================
Installing:
mysql-community-libs x86_64 5.7.26-1.el7 mysql57-community 2.2 M
replacing mariadb-libs.x86_64 1:5.5.60-1.el7_5
mysql-community-libs-compat x86_64 5.7.26-1.el7 mysql57-community 2.0 M
replacing mariadb-libs.x86_64 1:5.5.60-1.el7_5
mysql-community-server x86_64 5.7.26-1.el7 mysql57-community 166 M
Installing for dependencies:
mysql-community-client x86_64 5.7.26-1.el7 mysql57-community 24 M
mysql-community-common x86_64 5.7.26-1.el7 mysql57-community 274 k
Transaction Summary
==========================================================================================================================
Install 3 Packages (+2 Dependent packages)
Total download size: 194 M
[실무 예시] MySQL Table 비우기 (0) | 2019.05.13 |
---|---|
0. Log Parameters 간단 요약( Mysql 5.1 ) - 작성중 (0) | 2019.05.02 |
7. Binary Log 삭제 (0) | 2019.05.02 |
HAProxy 를 모르는 분은 없을 정도로 유명한 소프트웨어 L4~L7 로드밸런서 소개입니다.
컨피그 구성 및 사용방법은 대단히 많으나, 체계적인 플로우 이해에 도움이 되는 부분이 많을 것 같아, HAProxy Configure 메뉴얼이 필요할 것 같아 포스팅을 작성합니다.
==================================================
Summary
-------
1. Quick reminder about HTTP
1.1. The HTTP transaction
model
1.2. HTTP request
1.2.1. The request line
1.2.2. The request headers
1.3. HTTP response
1.3.1. The response line
1.3.2. The response headers
2. Configuring HAProxy
2.1. Configuration file format
2.2. Quoting and escaping
2.3. Environment variables
2.4. Time format
2.5. Examples
3. Global parameters
3.1. Process management and
security
3.2. Performance tuning
3.3. Debugging
3.4. Userlists
3.5. Peers
3.6. Mailers
4. Proxies
4.1. Proxy keywords matrix
4.2. Alphabetically sorted keywords
reference
5. Bind and server options
5.1. Bind options
5.2. Server and default-server
options
5.3. Server DNS resolution
5.3.1. Global overview
5.3.2. The resolvers section
6. HTTP header manipulation
7. Using ACLs and fetching
samples
7.1. ACL basics
7.1.1. Matching booleans
7.1.2. Matching integers
7.1.3. Matching strings
7.1.4. Matching regular expressions
(regexes)
7.1.5. Matching arbitrary data
blocks
7.1.6. Matching IPv4 and IPv6 addresses
7.2. Using ACLs to form
conditions
7.3. Fetching samples
7.3.1. Converters
7.3.2. Fetching samples from
internal states
7.3.3. Fetching samples at Layer
4
7.3.4. Fetching samples at Layer
5
7.3.5. Fetching samples from
buffer contents (Layer 6)
7.3.6. Fetching HTTP samples
(Layer 7)
7.4. Pre-defined ACLs
8. Logging
8.1. Log levels
8.2. Log formats
8.2.1. Default log format
8.2.2. TCP log format
8.2.3. HTTP log format
8.2.4. Custom log format
8.2.5. Error log format
8.3. Advanced logging options
8.3.1. Disabling logging of
external tests
8.3.2. Logging before waiting for
the session to terminate
8.3.3. Raising log level upon
errors
8.3.4. Disabling logging of
successful connections
8.4. Timing events
8.5. Session state at
disconnection
8.6. Non-printable characters
8.7. Capturing HTTP cookies
8.8. Capturing HTTP headers
8.9. Examples of logs
9. Supported filters
9.1. Trace
9.2. HTTP compression
9.3. Stream Processing Offload
Engine (SPOE)
10. Cache
10.1. Limitation
10.2. Setup
10.2.1. Cache section
10.2.2. Proxy section
==================================================
haproxy.cfg 기본 설정 (7) | 2019.06.24 |
---|---|
Docker 기본 커맨드 #01 - 컨테이너 생성 및 삭제 (0) | 2019.06.11 |
docker 의 Container 는 host ( 로컬콘솔) 의 cgroup 에 따라가는터라
host커널의 systemctl 을 사용하기가 기본적으로는 쉽지가 않아서 커스텀이 필요함.
systemctl 사용가능하도록 패키징된 git 버전을 쓰는게 편하고..
Container 안에서 nfs client 세팅하고 외부의 NFS mount 하는것도 쉽지가 않음
보통 docker run 으로 이미지 생성 시 -v 옵션으로 host에 기 마운트된 NFS Mountpoint 를 그냥 적재시키는 방법을 사용했습니다.
참고로 오래된 예전 자료 정리한거라서.. 더 좋은 방법 있으면 알려주세요 ㅎㅎ
NFS 마운트하기
1) DOCKER HOST 에서 /mnt 라는 마운트포인트로 외부 NFS 마운트.
( 리모트 NFS 마운트를 위해서는 RPCBIND 실행을 위해
클라이언트도 nfs-util 패키지를 설치해 주어야 함.. 설치만.. 안그러면 알수없는 타입 뜰겁니다. )
[root@docker ~]# mount -o nolock 192.168.0.10:/nfs_data /mnt
192.168.0.10:/nfs_data 6.7G 1.7G 5.1G 25% /mnt // df -h 로 마운트 확인
2) Container 생성 시 -v 옵션으로 HOST 의 NFS Mountpoint 를 같이 적재 하기
# docker run -i -t --name centos_nfs -v /mnt 4dd69d0e6123
run : container 만들기
-i : interective
-t : tty
--name : 컨테이너 이름지정
[root@aec58ea41a6c /]# df -h
Filesystem Size Used Avail Use% Mounted on
overlay 13G 2.2G 11G 18% /
tmpfs 1000M 0 1000M 0% /dev
tmpfs 1000M 0 1000M 0% /sys/fs/cgroup
/dev/sda3 13G 2.2G 11G 18% /mnt
shm 64M 0 64M 0% /dev/shm
tmpfs 1000M 0 1000M 0% /proc/acpi
tmpfs 1000M 0 1000M 0% /proc/scsi
tmpfs 1000M 0 1000M 0% /sys/firmware
이 방법의 문제는? -v 옵션으로 적재한 마운트포인트의 추적이 어렵다는 것인데
( #docker volume ls 명령어로 보이지가 않음 )
관리를 위해 Volume name 을 지정해서 운용하면 됩니다.
#docker volume NFS
[root@docker /]# docker volume ls
DRIVER VOLUME NAME
local NFS
#docker run -i -t --name "test3" -v NFS:/mnt 4dd69d0e6123
Localhost의 /mnt 를 마운트하는 컨테이너를 생성 하라는 커맨드입니다.
가령 웹서버 준비해놓고 나중에 템플릿 이미지처럼 써 먹기 위해 이미지로 저장하고 싶을 경우 commit 옵션을 사용하면 됩니다.
Q) -p 옵션으로 포트포워딩 및 생성한 새 컨테이너에
- yum install net-tools 과 yum install httpd 설치한 후
이 상태를 image 로 저장하고 싶다.
#docker commit [ Container Name ] [ Image TAG ]
-a "TEST" : 서명 붙이기
-m "name" : 이름 붙이기
[root@docker ~]# docker commit -a "TEST" centos_apm apache:0.1
sha256:4dd69d0e612362ccf64d455d658d6a309bc17fcb55db6f707e125e3e6bc87662
[root@docker ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
apache 0.1 4dd69d0e6123 9 seconds ago 335 MB
docker.io/centos latest 9f38484d220f 2 months ago 202 MB
[root@docker ~]#
haproxy.cfg 기본 설정 (7) | 2019.06.24 |
---|---|
0. HAProxy 1.8 Configure Manual ( 번역 중 .. ) (0) | 2019.06.19 |
알아두면 편리할 간단한 스크립팅 입니다.
특정 유저 리스트만 서버에 생성한다던지 삭제할 때
미리 텍스트파일에 해당 유저의 계정명만 적어두고, 스크립트로 일괄 처리하기 입니다.
당연히 방법은 여러가지가 있겠지만 for 문 사용해서 작성해보겠습니다.
[ 특정 유저 생성하기]
1) userlist.txt 파일에 생성할 유저를 나열합니다.
vi userlist.txt
test1
test2
test3
.
.
2) useradd.sh 라는 파일을 작성 합니다
vi useradd.sh
#!/bin/sh // 스크립트 종류 정의
for i in `cat userlist.txt` // cat userlist.txt 의 출력 결과를 i 변수에 선언함
do // i 변수에 들어갈(in) `cat userlist.txt` 가 끝날 때까지 반복
useradd -d /home/$i $i // 해당 명령어를 실행
done // cat userlist.txt 의 결과가 끝나면 종료.
3) 결과 확인
cat /etc/passwd
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
guest:x:1002:1002::/home/guest:/bin/bash
test1:x:1003:1003::/home/test1:/bin/bash
test2:x:1004:1004::/home/test2:/bin/bash
test3:x:1005:1005::/home/test3:/bin/bash
아주 간단 합니다.
삭제도 마찬가지 겠죠?
do done 안에 들어갈 실행 명령어를 userdel $i 로 해주면 되겠습니다.
제 스타일식 VM ( CentOS 7.6 ) 세팅 후 초기 설정하는 내용입니다.
=============================================
CentOS 7 Text Mode 로 설치하기 (0) | 2019.05.03 |
---|---|
[Linux] 디렉토리 용량별 정렬해서 출력하기 (0) | 2019.05.02 |
[Linux] grep 활용 #1 ( | ) - pipe (0) | 2019.04.30 |
#03. [Network] /efc/sysconfig/network-scripts/ifcfg-eth0 (1) | 2014.01.27 |
#02. 리눅스를 설치했는데 외부 통신이 안되요. (3) | 2014.01.25 |