안녕리눅스 3 User Guide
  • Introduction
  • Chapter 1. 안녕 리눅스 3 \/ CentOS 7.2 차이점
  • Chapter 2. Access Control
    • 안녕 리눅스 방화벽 설정
      • 기본 설정
      • Inbound 제어
      • Outbound 제어
      • brute force attack 제어
      • User defined rule 제어
      • 특정 국가에서의 접속 제어
      • oops-firewall 실행 방법
    • Shell login Control (with PAM)
      • login 가능한 account 제한
      • login account chroot
      • Google OTP를 이용한 2 factor 인증
    • 인증 통합 (Authentification\/Authorization Intergrate)
      • Openldap
        • Master Server 설정
        • SSL 설정
        • Slave Server 설정
        • Replication 설정
        • LDAP 클라이언트 인증 연동 설정
        • LDAP data 관리
        • Sudo LDAP 연동
      • NIS
      • Active Directory
  • Chapter 3. Web control
    • httpd
    • nginx
    • lighttpd
    • PHP
    • Web Access Control
      • Apache 2.4
      • Nginx
      • lighttpd
    • Web Monitor agent
  • Chapter 4. JVM 운영
  • Chapter 5. DNS 운영
    • 기본 설정
    • 신규 도메인 설정
    • Slave DNS 구성
    • Inverse Domain 설정
    • DNSSEC 설정
    • GeoDNS 설정
    • Domain 위임
    • IDN
    • Troble Shooting
  • Chapter 6. Time Server 운영
    • Chrony
    • NTP
  • Chapter 7. VPN 운영
  • Chapter 8. SMTP 운영
  • 안녕 리눅스 White Paper
    • Disk Partition Aligment
  • 안녕 리눅스 알려진 버그
  • 안녕 리눅스 3 패키지 일람
    • [AN:core]
      • annyung-release
      • byspam
      • check-utils
      • genpasswd
      • httpd-conf
      • httpd-krisp
      • httpd-nis
      • httpd-url
      • kmod-geoip
      • l4vip
      • ldap-auth-utils
      • libchardet
      • libimginfo
      • libipcalc
      • libkrisp
      • mariadb-aes256
      • olibc
      • oops-firewall
      • perl-KRISP
      • perl-ModuleList
      • php-chardet
      • php56-chardet
      • php71-chardet
      • php-common
      • php56-common
      • php71-common
      • php-fpm-conf
      • php56-fpm-conf
      • php71-fpm-conf
      • php-geoip
      • php56-geoip
      • php71-geoip
      • php-korean
      • php56-korean
      • php71-korean
      • php-krisp
      • php56-krisp
      • php71-krisp
      • php-nis
      • php56-nis
      • php71-nis
      • php-pear-KSC5601
      • php-pear-ipcalc
      • php-pear-krisp
      • php-pear-oops-key
      • procdump
      • python-chardet
      • python-krisp
      • remount
      • utf8-profile
      • whois
      • yum-annyung
    • [AN:base]
      • apr
      • authconfig
      • bash
      • bind
      • chrony
      • coreutils
      • ctags
      • cvs
      • ecj
      • filesystem
      • GeoIP
      • gperftools
      • httpd
      • initscrtips
      • iptables
      • java-1.8.0-openjdk
      • javapacakges-tools
      • linuxdoc-tools
      • mariadb
      • memcached
      • net-tools
      • ntp
      • openssh
      • openssl
      • pam
      • php
      • procmail
      • procps-ng
      • redhat-rpm-config
      • rootfiles
      • rsyslog
      • sendmail
      • setup
      • shadow-utils
      • sudo
      • systemd
      • sysvinit-tools
      • tomcat
      • traceroute
      • unzip
      • util-linux
      • vim
      • xinted
    • [AN:xless]
    • [AN:addon]
      • authbind
      • cronolog
      • google-authenticator
      • hping3
      • httpd-fcgid
      • imap
      • jfbterm
      • jlint
      • libevent14
      • libnet
      • libnetfilter_acct
      • lighttpd
      • mhash
      • mimetex
      • mm
      • netdata
      • netperf
      • nginx
      • openvpn
      • pdnsd
      • perl-CSS-DOM
      • php-pecl-apcu
      • php56-pecl-apcu
      • php71-pecl-apcu
      • php-pecl-memcache
      • php56-pecl-memcache
      • php71-pecl-memcache
      • php-pecl-oauth
      • php56-pecl-oauth
      • php71-pecl-oauth
      • php-pecl-xdebug
      • php56-pecl-xdebug
      • php71-pecl-xdebug
      • php56
      • php71
      • proftpd
      • python-Mako
      • python-MarkupSafe
      • python-mcrypt
      • python-openpyxl
      • python-xlrd
      • re2c
      • redis
      • rudiments
      • splint
      • sqlite32
      • sqlrelay
      • tomcat-native
    • [AN:plus]
  • 안녕 리눅스 Upgrade Guide
Powered by GitBook
On this page
  • 1. 개요
  • 2. lighttpd 설정 파일
  • 3. SSL 설정 및 HTTP2 protocol 지원
  • 4. 안녕에서 제공하는 기능 및 추가 모듈
  • 5. PHP 연동
  • 6. JAVA(tomcat)/Python/Perl/CGI 연동
  • 6.1. tomcat
  • 6.2. python django
  • 6.3. perl
  • 6.3.1. fastcgi 연동
  • 6.3.2. CGI 연동
  • 6.4. CGI 연동
  • 7. lighttpd 구동

Was this helpful?

  1. Chapter 3. Web control

lighttpd

PreviousnginxNextPHP

Last updated 5 years ago

Was this helpful?

목차 1. 개요 2. lighttpd 설정 파일 3. SSL 설정 및 HTTP2 protocol 지원 4. 안녕에서 제공하는 기능 및 추가 모듈 5. PHP 연동 6. JAVA(tomcat)/Python/Perl 연동 7. lighttpd 구동

1. 개요

안녕 리눅스의 는 1.4 branch를 제공 합니다.

를 사용하는 것 보다 를 사용하는 것을 권고 합니다.

는 1.4 branch는 현재 7여년 동안 개발이 정체되어 있고 새로운 기술들이 반영되어진 2.0이 아직 출시 단계에도 이르지 못한 상황이므로, 동일하게 single thread model인 를 선택하는 것이 더 좋습니다.

2. lighttpd 설정 파일

  [root@an3 ~]$ tree /etc
  /etc
  ├── lighttpd
  │   ├── autoindex.conf
  │   ├── conf.d
  │   │   ├── Default.conf
  │   │   ├── README
  │   │   └── vhost.conf
  │   ├── lighttpd.conf
  │   └── mime.conf
  ├── logrotate.d
  │   └── lighttpd
  └── sysconfig
      ├── lighttpd
      └── lighttpd-monitor
  • /etc/lighttpd/lighttpd.conf 는 동작에 필요한 최소한의 설정만을 가지고 있습니다. 수정하지 않도록 합니다..

  • /etc/lighttpd/conf.d에 사용자 설정을 추가/변경 하도록 합니다. lighttpd.conf의 설정을 변경하고자 한다면, 이곳에서 설정을 하면 overwrite가 됩니다.

  • /etc/logroate.d/lighttpd파일에 log rotate 설정이 있습니다.

  • /etc/sysconfig/lighttpd 파일에 lighttpd 구동을 위한 설정이 있습니다.

3. SSL 설정 및 HTTP2 protocol 지원

설정 파일의 예제는 다음과 같습니다.

  $SERVER["socket"] == ":443" {
      ssl.engine             = "enable"
      ssl.use-sslv2          = "disable"
      ssl.use-sslv3          = "disable"
      ssl.honor-cipher-order = "enable"
      ssl.cipher-list = "ECDH+AESGCM:ECDH+AES256:ECDH+AES128:ECDH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL"
      ssl.pemfile = "/etc/pki/lighttpd/annyung-sample.org.pem"
      ssl.ca-file = "/etc/pki/lighttpd/startssl-sub.class2.server.ca.sha2.pem"
  }

먼저 구동시에 key 암호를 물어보기 때문에, 암호를 제거한 key file을 생성 합니다.

  [root@an3 ~]$ openssl rsa -in annyung-sample.org.key -out annyung-sample.org.decrypt.key
  [root@an3 ~] cat annyung-sample.org.decrypt.key annyung-sample.org.crt > annyung-sample.org.pem

chain 인증서가 여러개 일 경우, 인증서 pem 파일(여기서는 annyung-sample.org.pem)에 합치면 됩니다.

4. 안녕에서 제공하는 기능 및 추가 모듈

  1. include 지시자에 astrik를 사용할 수 있습니다. 파일이 존재하지 않아도 error가 발생하지 않습니다.

    include "conf.d/*.conf"
  2. Apache style의 KeepAlive reponse header를 지원합니다.

    Connection: Keep-Alive
    Keep-Alive: timeout=60, max=1000
  3. 404 error page를 URL로 지정할 있습니다. 이는 외부 404 page를 지정할 경우에 200으로 처리되는 문제를 해결하기 위하여 patch 되었습니다.

  4. TCP backlog를 변경할 수 있습니다. (기존은 코드에 1024로 hard coding 되어 있습니다.)

    server.backlog = 1024
  5. mod_dirlisting 의 기능이 향상 되었습니다.

    • dir-listing.gallery

      • listing시 image 파일이 존재하면 <img> tag로 출력

      • 파일 이름이 cover 또는 preview-000 형식일 경우, cover mode로 출력

    • dir-listing.encoding

      • 문서의 charset을 <meta> tag로 지정

    • dir-listing.html-lang

      • <html lang="VALUE">

    • dir-listing.urlencode

      • listing file link를 urlencode 하여 출력 (기본값: enable)

    • dir-listing.external-js

      • 외부 javascript url을 삽입

  6. 3rd party module

5. PHP 연동

  server.module         += ("mod_fastcgi")
  fastcgi.debug          = 0
  fastcgi.map-extension  = ( ".kldp" => ".php" )
  fastcgi.server         = (
      ".php" => (
          (
            "host" => "127.0.0.1",
            "port" => 9000,
            "broken-scriptfilename" => "enable",
            "allow-x-send-file" => "enable"
          )
      )
  )

lighttpd 문서상, TCP가 아닌 unix domain soecket으로도 fastcgi 연결이 가능하다고 되어 있으나, 실상은 동작하지 않는다. 그러므로 PHP-FPM을 lighttpd와 연동을 하려면 PHP-FPM의 listen을 TCP로 설정해야 한다.

6. JAVA(tomcat)/Python/Perl/CGI 연동

6.1. tomcat

  • proxy module을 이용 (ajp 지원 안함)

  •    server.module         += ("mod_proxy")
    
       $HTTP["host"] == "annyung-sample.org" {
           $HTTP["url"] =~ "^/srv/" {
               proxy.server = (
                   "" => (
                       "tomcat" => (
                           "host" => "127.0.0.1",
                           "port" => 8080,
                           "fix-redirects" => 1
                       )
                   )
               )
           }
        }

6.2. python django

  • PHP와 동일하게 fastcgi 로 연결합니다. 아래 dango fastcgi 문서에 lighttpd 연동 예제가 포함 되어 있습니다.

6.3. perl

6.3.1. fastcgi 연동

  • lighttpd 설정은 PHP나 Python django와 동일하게 하면 됩니다.

6.3.2. CGI 연동

  • 6.4. CGI 연동을 참조 하십시오.

6.4. CGI 연동

    server.module      += ("mod_cgi")
    server.breakagelog  = "/var/log/lighttpd/breakage.log"
    cgi.assign = (
        ".pl"  => "/usr/bin/perl",
        ".py"  => "/usr/bin/python",
        ".cgi" => "/usr/bin/perl"
    )

7. lighttpd 구동

간단한 lighttpd control 방법에 대하여 기술 합니다.

  • 부팅시 lighttpd 시작하도록 설정

    [root@an3 ~]$ service lighttpd enable
    [root@an3 ~]$ # 또는
    [root@an3 ~]$ ntsysv-systemd
  • 부팅시 lighttpd 시작 하지 않도록 설정

    [root@an3 ~]$ service lighttpd disable
    [root@an3 ~]$ # 또는
    [root@an3 ~]$ ntsysv-systemd
  • lighttpd 시작

    [root@an3 ~]$ service lighttpd start
  • lighttpd 정지

    [root@an3 ~]$ service lighttpd stop
  • lighttpd 재시작

    [root@an3 ~]$ service lighttpd restart
  • lighttpd 상태 보기

    [root@an3 ~]$ service lighttpd status

/etc/sysconfig/lighttpd-monitor 는 /usr/sbin/lighttpd-monitor 명령을 실행하는데 필요한 옵션값들이 설정 되어 있습니다. 이에 관련해서는 문서에서 기술 합니다.

의 인증서는 다음과 같이 생성을 하면 됩니다.

다음 key file과 crt 파일을 합쳐서 에서 사용할 인증서를 생성 합니다.

1.4 branch는 spdy와 http2를 지원하지 않습니다.

참조

참조

- 디렉토리별 traffic 전송량 표시

- URI 문자셋 보정 (apache mod_url의 lighttpd 버전)

- network 접근 제한 고도화

- NIS 인증 모듈

- IP 관련 Geo data를 환경 변수로 생성. 링크 문서 참조

를 tomcat 에 연동.

문서에서 perl fastcgi wrapper 부분을 참조 하십시오.

참조

lighttpd
lighttpd
nginx
lighttpd
nginx
3.5 Web Monitor agent
lighttpd
lighttpd
lighttpd
http://redmine.lighttpd.net/issues/1221
http://redmine.lighttpd.net/issues/1284
mod_throttlestatus
mod_url
mod_net_access
mod_auth_nis
mod_krisp
http://annyung-sample.org/srv/
django를 fastcgi로 띄우는 구동
http://nginxlibrary.com/perl-fastcgi/
http://redmine.lighttpd.net/projects/1/wiki/docs_modcgi