워낙 라즈베리파이의 성능이 좋아지다 보니, 실제 리눅스 PC나 서버를 사용하기보다는, 개인 홈페이지 또는 중소기업은 홈페이지는 라즈베리파이4정도(더 낮아도 상관없을듯)를 사용하면 경제적으로 Web Server를 구축 관리할 수 있다.

 

사업을 준비(?)하는 입장에서 미리 구축해보고자 한다.

 

Web server를 구축하는 방법의 솔루션은 대표적으로 2가지가 있다.

1. Apache 

2. nginx

 

본 게시글은 전통적인 방법은 Apache로 구축 하는 과정을 담고 있다.

 

1. package list를 uptade

sudo apt-get update
sudo apt-get upgrade

2.  Apache2 설치 및 상태 확

sudo apt install apache2 -y
sudo service apache2 status
hostname -I

여기서 IP주소를 확인할 수 있다.

 

그 IP주소를 Browser에서 열어볼 수 있으며, 아래와 같이 출력되면 정상적으로 apache가 설치된 것이다.

'20년쯤? Redhat에 이런거 설치할 때 엄청 어려웠던거 같은데...??? 아닌가???'

 

같은 Netword상에 있어야 한다.

그리고 이런경우는 통신을 위한 socket을 열어주고 - 전용 길을 열어준다고 생각하면 된다.

 

이 코드는 소켓을 사용하여 1.2.3.4 IP 주소의 라즈베리파이에 연결하여 b.txt 파일을 읽어옵니다.

import socket

HOST = '1.2.3.4'  # 라즈베리파이의 IP 주소
PORT = 1234      # 사용할 포트 번호

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    s.sendall(b'read_file:b.txt')  # b.txt 파일 읽기 명령 전송
    data = s.recv(1024)           # 응답 수신
    print('Received', repr(data)) # 응답 출력

 

이 코드를 실행하기 전에, 1.2.3.4 라즈베리파이에서 다음과 같은 서버 프로그램을 먼저 실행해야합니다. 이 프로그램은 클라이언트가 보낸 명령을 처리하고 b.txt 파일의 내용을 응답으로 보냅니다.

 

import socket

HOST = '0.0.0.0'  # 모든 IP 주소에서 연결을 허용
PORT = 1234       # 사용할 포트 번호

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()
    conn, addr = s.accept()
    with conn:
        print('Connected by', addr)
        while True:
            data = conn.recv(1024)
            if not data:
                break
            command = data.decode('utf-8')
            if command.startswith('read_file:'):
                filename = command[10:]
                try:
                    with open(filename, 'rb') as f:
                        contents = f.read()
                        conn.sendall(contents)
                except FileNotFoundError:
                    conn.sendall(b'File not found')

위 두 코드를 각각 라즈베리파이의 다른 디렉토리에 저장하고 실행하면, 첫 번째 코드에서 1.2.3.4 라즈베리파이의 b.txt 파일 내용을 출력할 수 있습니다.

Raspberry pi 4를 지속적으로 개인 개발용으로 사용을 해오다가,

작년부터 가격이 너무 비싸져서, 대체제를 찾고 있는 중에 Orange Pi 5가 출시 되었다는 소식을 접했습니다.

 

저는 브라우저를 사용을 많이 하는데,

Raspberry pi 4는 동시에 4개의 chromium 을 실행하면 끝... 너무 느려지고 답답합니다.

발열도 심하고,

 

Orange Pi 5는 4개는 아주 쾌적하게 동작하네요.

+ Recent posts