TCP (Transmission Control Protocol)

Connected service transport layer protocol. Basic protocol on the Internet. Offering reliable data transfer, flow control, and congestion control.

Reliable via sequence number and ack number
3-way handshaking(connect) and 4-way handshaking(disconnect)
Prevent receiver buffer overflow, congestion control
Full-duplex, Point to Point
1:1 communication
Ensure the data sending sequence
Check the data is safely arrived

연결형 서비스를 지원하는 전송 계층 프로토콜. 3-way handshaking을 통한 연결 설정으로 신뢰성 제공. 데이터 흐름 제어, 혼잡제어 제공.


>Server creates socket, allocate address, wait for connection, response to request

>Client creates socket, allocate address, request connection



UDP (User Datagram Protocol)

Non-connected service. There is no signal when sending or receiving data. Sender does not have to check the data is accurately transferred.

비연결형 서비스를 지원하는 전송계층 프로토콜. 보내는 쪽에서 일방적으로 데이터를 전달하며, 송신자는 수신자가 데이터를 받았는지 체크할 필요가 없다. 비연결형으로 TCP의 3-way handshaking 같은 연결 과정을 거치지 않는다. 따라서 안정성은 떨어지지만 속도는 훨씬 빠르다.

None reliability than TCP

Less packet overhead (less network load)

Error check field in header

No connection setting like TCP

DNS, NFS, SNMP, RIP ..etc

1:1, 1:n, n:m communication

Transfer sequence is variable


>Server creates socket, allocate address, data communicate

>Client creates socket and data communicate

'System Engineering > Network' 카테고리의 다른 글

HTTP - 2. Message  (0) 2018.07.06
HTTP 1. HTTP  (0) 2018.07.02
About https  (0) 2018.06.11
HAProxy – 오픈 소스 로드 밸런서  (0) 2018.05.24
포트 미러링  (0) 2018.05.24

RAID (Redundant Array of Independent Disk)


For enhancing disk performance or recovering the data loss.

디스크 성능 향상, 용량 확장, 데이터 유실로 부터 복구하기 위한 기술


RAID 0 - Disk Stripping

Maximum capacity: Number of disk * capacity of each disk

Store the data as a block to each disk

블록으로 쪼개진 데이터를 각각의 디스크에 나누어 저장한다.

+Fast, I/O load balanced
-No safety on disk fault

RAID 1 - Disk Mirroring

Maximum capacity: (Number of disk / 2) * capacity of disk

Store the data to each disk and all of them is duplicated

데이터를 각 디스크에 나누어 중복하여 저장한다.

+Safe on disk fault
+Performance is better than single disk
-Capacity is half of them
-Less performance of writing

RAID 2 - Striping and ECC with Hamming Code

Basically same as RAID 0 but ECC is stored for error correction

RAID 0으로 데이터를 저장하고 동일한 형태로 ECC 데이터도 저장하여 에러 수정을 가능케 하지만 RAID 4  등장으로 더이상 사용하지 않는다.

RAID 3, 4 - Stripping with Parity

Maximum capacity: (Number of disk - 1) * capacity of disk

Store the data like RAID 0 and use disk to store the parity. RAID 3 stores data as byte when RAID 4 stores as a block.

RAID 0와 마찬가지로 데이터를 분산 저장하며, 에러 체크 및 수정을 위한 Parity 정보 또한 저장한다. RAID 3과 4의 차이점은 데이터 저장 단위이며 각각 byte, block 이다.

+Good read performance
-Bad write performance

RAID 5 - Stripping with Distributed Parity


Overcome the weakness of parity on RAID 3, 4. Distributed data and parity.


RAID 3, 4의 약점을 극복하기 위하여 한 곳에 모여있는 Parity 정보를 분산하여 저장하는 방식이다.


+Mainly used RAID level

+Fault tolerance

-Slow rebuilding


RAID 0+1 - Stripping and Mirroring

데이터를 분산 저장한 후 복제하는 방식

RAID 1+0 - Mirroring and Stripping

데이터를 복제하여 저장한 뒤 분산 저장하는 방식

'System Engineering' 카테고리의 다른 글

WEB WAS 개념  (0) 2018.05.24
Netbackup 개념  (0) 2018.05.24


-IDS (Intrusion Detection System) 침입 탐지 시스템

It detecting abnormal activation on network like misuse(rule-based), anomaly(statistical) detection. Collect, reduct and filter, detect, and act.


네트워크 상의 이상을 감지하는 시스템으로, 규칙 기반 오용탐지, 통계 기반 이상 탐지로 나뉜다. 데이터를 수집하고 필터링한 뒤 탐지하고 대응하는 시퀀스를 가진다. 방화벽보다 능동적이며 침입에 대한 추적이 가능하지만 즉각 대응이 어렵다.


+Aggressive than the FW

+Tracking

- Does not act immediately.


>Rule based (misuse detection): save the patterns like system log, network info, well-known method on the DB

+ Less false positive.

- Keep update the list and could not detect new one.


>Statiscal (anomaly detection): collect normal action and detect on user action that is not a normal

+Could detect unknown acttion

+Easier to manage the DB than rule-based

-Take times to detect

-Hard to judge the normal action

-Highly false positive.


>Host-based IDS

Working on the host. Logging and tracking users on the OS who doing what.

-Could not detect all-round network

-Decline host performance

>Network-based IDS

Auditing and logging(TCP dump) network resources at the stand-alone from the network.

+Hide from outside because it does not have IP address

-If the packet is encrypted, can not detect the intrusion.

-Affect performance from network traffic condition.





-IPS (Intrusion Prevention System): IDS + FW 침입 방지 시스템

Active security system to minimize damage from attack. IDS just detect the abnormal situation and IPS decide the security policy using the data from IDS. And also observing network traffic. The module can see, analyze the packet, and the other module decide the act like FW. Signiture-based and Heuristic method like IDS.


공격에 대한 피해를 최소화하기 위해 만들어진 시스템으로 IDS의 탐지 기능과 FW의 차단 기능을 모두 가지고 있다. IPS 또한 네트워크 트래픽을 감시한다. 따라서 IDS와 달리 즉각적인 대응이 가능하며 Zero Day Attack에 대한 대책이 될 수 있다.


+ Acting immediately.

>Signature based

Detect same as IDS rule-based detection

>Heuristic based

Anomaly detection and prevention

>Host IPS

SW based IPS installed on the server.

>Network IPS

HW based and independent from the host.



-Firewall 방화벽

On L3/L4, using IP and Port information beside IDS and IPS covoring L3 to L7.


방화벽은 Access Control List를 통해 트래픽에 대한 보안 정책을 설정한다. IDS나 IPS와 달리 L3/L4에서 동작한다.


Location of FW

-Screening Router

-Single homed host

-Dual homed host

-Screened host gateway

-Screened subnet


-Could not defense virus and bringing network overhead

-Weakness on internal attack, bypass, and new type attack


>Packet filtering

+Fast and good performance.

-Can be bypassed to manipulate the source and destination's address and port


>Statefull

+More secure than packet filtering because it using packet status data

-Status data could be lost because of DDoS attack which occurs status table overflow


>NAT

Static, Dynamic NAT and PAT


>Proxy FW

Application level proxy FW and Circiut level FW



-Web Firewall 웹 방화벽

On L7, observing with string data in the http(Request and Response message) which is decoded at the lower layer. Control the access with ACL(Rule set based) which has IP and PORT. Checking the URL


L7에서 동작하며 하위 계층에서 복호화된 실질적인 데이터에서 HTTP 메세지를 분석, 대응이 가능하다. URL 단위 탐지와 파일에 대한 제어 기능도 포함한다.

'System Engineering > Security' 카테고리의 다른 글

Intermediate CA - SSL / TLS  (0) 2019.09.27
VDI  (0) 2018.06.18

Set up the FTP server for file backup on CentOS 7


1. Install vsftpd on the server


1
yum install -y vsftpd

cs


2. Edit the configuration of vsftpd


1
vi /etc/vsftpd/vsftpd.conf
cs


 Here is my config file >>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# Example config file /etc/vsftpd/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
# When SELinux is enforcing check for SE bool ftp_home_dir
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
# When SELinux is enforcing check for SE bool allow_ftpd_anon_write, allow_ftpd_full_access
#anon_upload_enable=YES
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/xferlog
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
#ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd/banned_emails
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
# Make sure, that one of the listen options is commented !!
listen_ipv6=NO
 
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
 
idle_session_timeout=600
use_localtime=YES
force_dot_files=YES
max_clients=2
max_per_ip=2
 
cs


3. open the port on firewalld


1
2
3
firewall-cmd --permanent --add-service=ftp
firewall-cmd --permanent --add-port=21/tcp
firewall-cmd --reload
cs


 If you want to check the port is accurately opened >>

1
firewall-cmd --list-port

cs


4. Create user for ftp client and set to nologin


1
2
3
4
5
useradd ftp_user
passwd ftp_user
 
usermod -/sbin/nologin ftp1
chmod +rw -/home/ftp_user

cs


and create the chroot_list file for ftp user login list, write the ftp user name on it

1
vi /etc/vsftpd/chroot_list
cs


5. Done. Start/restart the vsftpd daemon and connect via FTP client like 'Filezilla'


1
systemctl restart vsftpd
cs


'System Engineering > Linux' 카테고리의 다른 글

SSH security settings  (0) 2018.07.27
HTTP Header Sample Analysis - www.daum.net  (0) 2018.07.24
Linux: swap  (0) 2018.06.11
리눅스 Core dump  (0) 2018.05.24
리눅스마스터 1급 2차 노트  (0) 2017.04.17

SWAP partition in Linux, similar with virtual memory in Windows.


When the memory got out of range, the program will be located in swap partition.

But the speed is slower than the RAM because swap partition is on the disk.


Goods

-Give more memory spaces to insufficient RAM

-Allocate the program that is need fast memory


Bads

-Can not control the portion of swap dynamically

-Increase disk usage

-Does not always lead performance enhancement

'System Engineering > Linux' 카테고리의 다른 글

HTTP Header Sample Analysis - www.daum.net  (0) 2018.07.24
FTP server set up  (0) 2018.06.16
리눅스 Core dump  (0) 2018.05.24
리눅스마스터 1급 2차 노트  (0) 2017.04.17
리눅스 시스템 프로그래밍 노트  (0) 2017.02.02

http

Hyper Text Transfer Protocol


https

-http over secure socket layer.

-http using SSL.


Data communication over http could be read or altered by someone. To overcome this security issue, https uses public key encrpytion.

SSL was developed by Netscape, and changed name to TLS for IETF management. But SSL is popular than TLS.

SSL is digital document for certification by 3rd person.

SSL uses Symmetric key crpytosystem for data and Public key crpytosystem for symmetric key.


http를 통한 데이터 통신은 누군가에 의해 감청될 수 있다. 이를 극복하기 위해 등장한것이 https이다.

Netscape 사가 SSL을 개발했고, IETF에서 표준 관리를 위해 TLS라는 이름으로 변경했다.

SSL은 제 3자 인증을 위한 전자 문서다. 데이터 암호화에 대칭키 방식이 사용되며, 대칭키를 암호화 하기 위해 공개키 방식이 사용된다.


SSL's purposes:

-Ensure that the server which is connected with client is trusted.

-Provide a SSL public key to the client.


SSL은 클라이언트와 연결된 서버를 보증하고, SSL 공개키를 클라이언트에 제공하는 것이 주 목적이다.


SSL CA: Certificate Athority.

Includes service information(CA, service domain, etc) and server's public-key.


SSL에서 CA란 접속하려는 서버의 공개키와 제공하는 서비스에 대한 정보(CA, 서비스 도메인 등)를 포함한다. 


Browser already knows the CA list and each public-key.


웹 브라우저에는 사전에 공인된 CA 목록과 공개키를 가지고 있다.


모든 요청과 응답 데이터는 네트워크로 보내기 전에 암호화되며, 전송 레벨 암호 보안 계층이 있어 SSL 또는 TLS를 이용하여 구현한다. 서버 포트는 443번을 기본값으로 사용한다.

-       서버 인증서

n  인증서 일련번호

n  유효기간

n  사이트 조직 이름

n  DNS 호스트 명

n  공개키

n  인증서 발급기관(CA – Certificate Authority)

n  발급자 서명

HTTPS 트랜잭션 시작 시, 브라우저는 서버에서 디지털 인증서를 가져온다. 서버에 인증서가 없으면 보안 커넥션은 실패한다.

브라우저는 인증서의 서명 기관을 검사하고, 가지고 있는 공개키로 검증한다. 브라우저가 알 수 없는 기관이라면 사용자에게 확인한다.

HTTP

어플리케이션

SSL / TLS

보안

TCP

전송

IP

네트워크

NI

데이터링크

HTTPS

-       인증서 검사

n  유효 기간 확인

n  CA 신뢰도 검사: 브라우저의 CA 리스트와 비교

n  서명 검사: 공개키를 서명에 적용, 체크섬과 비교해 무결성 검사

n  사이트 신원 검사: 인증서의 도메인과 실제 대화중인 서버 호스트 명 검사

가상호스팅 인증서
가상 호스팅의 경우 인증서에 나열된 호스트명으로 리디렉션을 통해 보안 프로토콜 지원


'System Engineering > Network' 카테고리의 다른 글

HTTP 1. HTTP  (0) 2018.07.02
Protocol: TCP and UDP  (0) 2018.06.18
HAProxy – 오픈 소스 로드 밸런서  (0) 2018.05.24
포트 미러링  (0) 2018.05.24
Difference between each layer  (0) 2018.05.16

Following: https://tutorial.djangogirls.org


Python object oriented programming:

Object has 'Properties' and 'Methods'


-Start application in the django project

(env) $ python manage.py startapp app_name


Failures that I encounterd:


-django application start error

1
2
3
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
 
Did you install mysqlclient?
cs


>>

$ sudo pip install mysqlclient


-pip install error

1
2
3
compilation terminated.

    error: command 'gcc' failed with exit status 1
cs


>>

$ yum search python3 | grep devel

$ yum install python36u-devel


-Say to django that I will use 'app_name'

application/settings.py


1
2
3
4
5
6
7
8
9
10
11
# Application definition
 
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app_name'
]
cs


-Make a sample model

app_name/migrations/models.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from django.db import models
from django.utils import timezone
 
 
class Post(models.Model):
    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField(
            blank=True, null=True)
 
    def publish(self):
        self.published_date = timezone.now()
        self.save()
 
    def __str__(self):
        return self.title
cs


-Notice that the new model is ready to database

(env) $ python manage.py makemigrations app_name


-If you met this WARNINGS,

WARNINGS:

?: (mysql.W002) MySQL Strict Mode is not set for database connection 'default'

HINT: MySQL's Strict Mode fixes many data integrity problems in MySQL, such as data truncation upon insertion, by escalating warnings into errors. It is strongly recommended you activate it. See: https://docs.djangoproject.com/en/2.0/ref/databases/#mysql-sql-mode


>>

1
2
3
4
MariaDB [(none)]> set sql_mode='STRICT_TRANS_TABLES'
    -> ;
Query OK, 0 rows affected (0.01 sec)
 
cs


-Apply the model to the database

(env) $ python manage.py migrate


-Create superuser for django admin

(env) $ python manage.py createsuperuser


-Create sample django admin

1
2
3
4
from django.contrib import admin
from .models import Post
 
admin.site.register(Post)
cs


-View admin page: 127.0.0.1:8000/admin


'Python' 카테고리의 다른 글

Flask on apache via mod_wsgi  (0) 2018.12.06
Python 2.6 to 2.7 (or 3.x)  (0) 2018.11.23
Django: 0. Preparing environment  (0) 2018.05.28
파이썬 장단점  (0) 2018.05.24
Set up Python 3 on the CentOS 7  (1) 2016.01.29

Set up python and pip on linux system for correct django version.

You can see here:

https://docs.djangoproject.com/ko/2.0/faq/install/


In this case, I will use Python 3.6 and Django 2.0


-Upgrade pip tool

# pip install --upgrade pip


-Installing Django

# pip install django~=2.0.5


-Starting the project

(env) # django-admin startproject project_name .


In the project

dir .

ㄴmanage.py

ㄴproject_name

ㄴsettings.py

ㄴurls..py

ㄴwsgi.py

ㄴ__init__.py


manage.py: A script for managing web app

settings.py: Configuration of website

urls.py: Pattern list which is used by urlresolver


-settings.py: add or edit few lines on it.


In this case, I'm going to use Mariadb on local server for django database.


...

#DATABASE

DATABASES = {

    'default': {

        #'ENGINE': 'django.db.backends.sqlite3',

        #'NAME': os.path.join(BASE_DIR, 'db.sqlite3'

        'ENGINE': 'django.db.backends.mysql',

        'NAME': 'django',

        'USER': 'mariadb',

        'PASSWORD': 'mariadb',

        'HOST': 'localhost',

        'PORT': '3306',

    }

}


...


TIME_ZONE = 'Asia/Seoul'

...


STATIC_ROOT = os.path.join(BASE_DIR, 'static')



-Install mariadb

$ sudo yum install -y mariadb-server

$ sudo mysql_secure_installation

$ systemctl start mariadb


1
2
3
[user1@django ~]$ mysql -u root -p
Enter password: 
 
cs

-Create database to use and user
1
2
3
4
5
6
7
8
9
10
11
12
MariaDB [(none)]> CREATE database db_name;
Query OK, 1 row affected (0.01 sec)
 
MariaDB [(none)]> CREATE user 'user_name'@'localhost' identified by 'user_passwd';
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> GRANT ALL on db_name.* TO 'user_name'@'localhost';
Query OK, 0 rows affected (0.00 sec)
 
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)
 
cs


-After editing settings.py

(env) # python manage.py migrate


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
(djenv) [user1@django django]$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying sessions.0001_initial... OK
cs


-Test my django web application

(env) # python manage.py runserver


1
2
3
4
5
6
7
8
9
10
11
12
13
(djenv) [user1@django django]$ python manage.py runserver
Performing system checks...
 
System check identified no issues (0 silenced).
May 282018 - 18:02:55
Django version 2.0.5, using settings 'asset_mngr.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[28/May/2018 18:03:44"GET / HTTP/1.1" 200 16348
[28/May/2018 18:03:44"GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[28/May/2018 18:03:44"GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
[28/May/2018 18:03:44"GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[28/May/2018 18:03:44"GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
cs


'Python' 카테고리의 다른 글

Flask on apache via mod_wsgi  (0) 2018.12.06
Python 2.6 to 2.7 (or 3.x)  (0) 2018.11.23
Django: 1. Start first application  (0) 2018.05.30
파이썬 장단점  (0) 2018.05.24
Set up Python 3 on the CentOS 7  (1) 2016.01.29

Docker

https://subicura.com/2017/01/19/docker-guide-for-beginners-1.html


-컨테이너 기반 오픈소스 가상화 플랫폼(LXC 기반)

-기존 OS 가상화 방식의 전가상화에서 CPU 가상화 기술(HVM)을 이용한 KVM과 반가상화 방식의 Xen 등장. 성능 문제 개선을 위해 프로세스 격리 방식 등장

-도커의 기본 네트워크모드는 Bridge 모드로 약간의 성능 손실이 존재

-libcontainer 자체 기술 사용

-이미지: 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것

-레이어 저장방식으로 파일이 추가/수정 되면 새 레이어 생성하며 전체를 다시 다운받지 않고 새 레이어만 다운.

-layer는 Read only 방식이며 하나의 파일 시스템으로 사용

-이미지는 url 방식으로 관리



Concepts

Platform for developers and sysadmins to develop, deploy, and run applications with containers.

Containerization: The use of Linux containers to deploy applications.

Containers

 -Flexible: Even the most complex application

 -Lightweight: Leverage and share the host kernel

 -Interchageable: Deploy updates and upgrades

 -Portable: Build locally, deploy to the cloud, and run anywhere.

 -Scalable: Increase and automatically distribute container replicas.

 -Stackable: Stack services vertically.

'Cloud > Docker - PaaS' 카테고리의 다른 글

PaaS: Container  (0) 2018.06.18

Web Server

 Client로 부터 요청을 받아 정적인 페이지 컨텐츠(html, jpeg, css 등) 제공

 Apache, NGINX, IIS 등


WAS

 DB 조회, 로직처리 등 동적 컨텐츠 제공을 위해 만들어진 application server

 Tomcat, Jeus, JBoss, Web Sphere 등


-정적인 컨텐츠 요청 시 WAS 단독으로는 성능이 느릴 수 있다. 따라서 Web Server에 WAS들을 plugin 형태로 설정하여 효율적으로 처리되도록 한다.

'System Engineering' 카테고리의 다른 글

RAID  (0) 2018.06.18
Netbackup 개념  (0) 2018.05.24

+ Recent posts