카테고리 없음

Lighttpd(라이트피디, 라이티(lighty)

dev_jiwon 2023. 2. 6.

lighttpd

경량웹서버이다. youtube, wikipedia 등에서 주로 활용된다.
http://www.lighttpd.net

 

'라이트피디;라고 읽고 짧게는 '라이티'라고도 읽는다.

 

적은 자원을 사용하여 높은 성능을 내는 오픈 소스 웹 서버 어플리케이션이다. 아파치보다 적은 메모리를 사용하면서도 일반적으로 아파치보다 속도가 빠르다. (아파치에서 자주 사용되지 않는 기능들은 빠져있다.

 

lighttpd는 non-blocking I/O로 단일 프로세스에서 실행되어 가볍고 빠르다.

 

install

Linux에서 lighttpd를 설치하는 일은 매우 단순하다.
명령어 한 줄만 입력하면 되니까.

$ sudo apt install lighttpd

설치가 완료되면 자동적으로 실행된다.
수동으로 실행하고자 한다면 service 명령어를 사용할 수 있다.

$ sudo service lighttpd start

lighttpd와 관련된 설정파일은 /etc/lighttpd/ 디렉토리에 존재한다.
기본적으로는 /etc/lighttpd/lighttpd.conf 파일이 존재하며
필요에 따라 설정 파일을 추가할 수 있다.

설정 파일에는 다음과 같은 옵션들이 존재한다.

/etc/lighttpd/lighttpd.conf

# snip
server.document-root        = "/var/www/html"
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
server.errorlog             = "/var/log/lighttpd/error.log"
server.pid-file             = "/var/run/lighttpd.pid"
server.username             = "www-data"
server.groupname            = "www-data"
server.port                 = 80
# snip

이제 /var/www/html/ 디렉토리에 index.html 같은 파일을 만들어 넣고
localhost:80에 접속하면 HTML 문서를 확인할 수 있다.

원활한 관리를 위하여 /etc/lighttpd/와 /var/www/는
www-data 그룹의 멤버만 읽고 쓸 수 있도록 한다.
운영체제에 따라 이것이 default로 되어 있는 경우도 있고 root로 되어 있는 경우도 있다.

$ sudo chown www-data:www-data /etc/lighttpd
$ sudo chown www-data:www-data /var/www

CGI

CGI Common Gateway Interface
'공용 게이트웨이 인터페이스'라고 번역되며,
웹 서버와 외부 응용 프로그램 사이를 연결하는 표준 규약이다.

클라이언트가 웹 서버에 동적 웹 문서를 요청하면 웹 서버는 CGI 프로그램에 작업을 요청하고
CGI 프로그램이 응답한 데이터를 웹 서버가 클라이언트에게 전달하는 방식으로 작동된다.
HTML의 <form> 태그가 CGI 프로그램에 작업을 요청하는 부분이다.

lighttpd에서 CGI를 사용하려면 설정 파일에 관련 내용을 추가해야 한다.

/etc/lighttpd/lighttpd.conf

server.modules = {
	# snip
	"mod_cgi",
}
cgi.assign = (".cgi" => "", ".py" => "/usr/bin/python3")
alias.url += ( "/cgi-bin/" => "/var/www/cgi-bin/" )

설정을 변경한 후 lighttpd를 재시작한다.

$ sudo service lighttpd restart

그리고 CGI를 위한 디렉토리를 만들어 권한 설정을 한다.

$ mkdir /var/www/cgi-bin
$ chmod 775 /var/www/cgi-bin
$ sudo chown www-data:www-data /var/www/cgi-bin

잘 작동하는지 확인하기 위해 간단한 테스트 코드를 작성해보자.
다음 예제는 <사물인터넷을 품은 라즈베리 파이 (제이펍)>의 예제에서 따왔음을 밝힌다.

/var/www/html/login.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Login Form Example</title>
  </head>
  <body>
    <h1>Login Form Example</h1><br/>
    <form name="LoginForm" method="POST" action="/cgi-bin/login.py">
      User ID: <input type="text" name="loginid" size=10>
      Password: <input type="password" name="password" size=10>
      <br/>
      <input type="submit" name="send" value="Send">
    </form>
  </body>
</html>

 

/var/www/cgi-bin/login.py

#!/usr/bin/python3

import cgi, cgitb

# Exception handling
cgitb.enable()

# Create instance of FieldStorage
form = cgi.FieldStorage()

# Get data from fields by name
login_id = form.getvalue('loginid')
password = form.getvalue('password')

print("Content-type: text/html\n\n")
print("<html>")
print("<head>")
print("<title>Hello - Login CGI Program</title>")
print("</head>")
print("<body>")
print("<h2>Hello %s</h2>" % (login_id))
print("</body>")
print("</html>")

 

 

잘 작동하는 것을 확인할 수 있다.

 

 

 

참고

https://aroundck.tistory.com/1113

 

[server] lighttpd 란? ( 라이트피디, 라이티(lighty) )

lighttpd ( 라이트피디, 라이티(lighty) ) - '라이트피디'라고 읽고 짧게는 '라이티(lighty)' 라고도 읽는다. 공식사이트 - lightpd는 적은 자원을 사용하여 높은 성능을 내는 오픈 소스 웹 서버 어플리케이

aroundck.tistory.com

https://velog.io/@peeeeeter_j/lighttpd

 

lighttpd 설치 및 설정

youtube, wikipedia 등이 사용하고 있는 경량 웹 서버 lighttpd에서 CGI 사용해보기

velog.io

 

 

 

 

[출처] 복제해온 게시물에 대한 작성자의 삭제 요청이 있을 시 바로 삭제하겠습니다.

댓글