Lighttpd 搭建 Web 服务器

2023-05-16

背景:
      公司项目用到了lighttpd,由于自己没有接触过,所以做下记录。

简介:
      Lighttpd 是一个德国人领导的开源Web服务器软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的web server环境。具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。支持FastCGI, CGI, Auth, 输出压缩(output compress), URL重写, Alias等重要功能,而Apache之所以流行,很大程度也是因为功能丰富,在lighttpd上很多功能都有相应的实现了。

安装:
环境:Ubuntu 11
下载安装:


apt-get install lighttpd  

配置文件在:/etc/lighttpd/lighttpd.conf

View Code

#指定要装载的模块
server.modules = (
        "mod_access",
        "mod_alias",
        "mod_compress",
        "mod_redirect",
#       "mod_rewrite",
)
#fastcgi的配置
#fastcgi.server = ( ".php" => ((
#                    "host" => "127.0.0.1",
#                    "port" => "9000",
#                 )))

fastcgi.server = ( ".php" => ((
                    "socket" => "/tmp/php.socket",
                 )))
#设置网页服务器的根目录。配置文件必需指定该参数
server.document-root        = "/var/www"
#设置上传目录。缺省为 /var/tmp 
server.upload-dirs          = ( "/var/cache/lighttpd/uploads" )
# 设置错误日志文件的路径
server.errorlog             = "/var/log/lighttpd/error.log"
# 设置Lighttpd进程的路径
server.pid-file             = "/var/run/lighttpd.pid"
#指定可以运行服务器的用户名和组名,要求lighttp以root权限启动。
server.username             = "www-data"
server.groupname            = "www-data"
#默认读取的文件,index.lighttpd.html 是安装默认的文件,按照顺序来查找执行。
index-file.names            = ( "index.php", "index.html",
                                "index.htm", "default.htm",
                               " index.lighttpd.html","a.html")

url.access-deny             = ( "~", ".inc" )
# 禁止访问通过扩展的文件的某些类型的源
static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
server.port = 80
server.bind = "192.168.200.201"

## Use ipv6 if available
#include_shell "/usr/share/lighttpd/use-ipv6.pl"
#为目录列表设置编码
dir-listing.encoding        = "utf-8"
#启用或则禁用目录列表
server.dir-listing          = "disable"

compress.cache-dir          = "/var/cache/lighttpd/compress/"
compress.filetype           = ( "application/x-javascript", "text/css", "text/html", "text/plain" )

#虚拟主机1
$HTTP["host"] == "bbs.db2.com" {
server.name = "bbs.db2.com"
server.document-root = "/var/www/db2/"
accesslog.filename = "/var/www/db2/access.log"
accesslog.format = "%{X-Forwarded-For}i %v %u %t \"%r\" %s %b \"%{User-Agent}i\" \"%{Referer}i\""
}
#虚拟主机2
$HTTP["host"] == "bbs.abc.com" {
server.name = "bbs.abc.com"
server.document-root = "/var/www/abc/"
accesslog.filename = "/var/www/abc/access.log"
}
#虚拟主机3
$HTTP["host"] == "bbs.xyz.com" {
server.name = "bbs.xyz.com"
server.document-root = "/var/www/xyz/"
accesslog.filename = "/var/www/xyz/access.log"
}


include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell "/usr/share/lighttpd/include-conf-enabled.pl"  

 

安装完毕之后,做浏览器里面输入:服务器ip地址,会出现“Index of /”的列表(server.dir-listing = "enable"),点 index.lighttpd.html 文件,直接加载了该html文件的内容。这个文件刚好是在参数 server.document-root 指定的目录中。要是server.dir-listing = "disable"的话,直接输入ip则会出现404报错,需要输入ip+index.lighttpd.html才行。
自己可以创建一个html文件,如a.html放到server.document-root指定的目录中,再修改 index-file.names 参数,让a.html包含进去,再重启lighttpd,会让a.html展示出来。
到此,lighttpd基本功能已经成功安装。

使用:

1:多虚拟主机的配置:
1个IP地址配置多个域名,即1个IP多各域名。
首先,需要修改host名称,如:


vi /etc/hosts
192.168.220.201 bbs.abc.com --添加
192.168.220.201 bbs.xyz.com --添加  

改完之后,需要重启networking 才能生效。
接着,在/etc/lighttpd/lighttpd.conf 配置文件中添加虚拟主机:


$HTTP["host"] == "bbs.db2.com" {
server.name = "bbs.db2.com"
server.document-root = "/var/www/db2/"
accesslog.filename = "/var/www/db2/access.log"
accesslog.format = "%{X-Forwarded-For}i %v %u %t \"%r\" %s %b \"%{User-Agent}i\" \"%{Referer}i\""
}

$HTTP["host"] == "bbs.abc.com" {
server.name = "bbs.abc.com"
server.document-root = "/var/www/abc/"
accesslog.filename = "/var/www/abc/access.log"
}

$HTTP["host"] == "bbs.xyz.com" {
server.name = "bbs.xyz.com"
server.document-root = "/var/www/xyz/"
accesslog.filename = "/var/www/xyz/access.log"
}  

再在/var/www/的目录下创建 db2,abc,xyz目录,把之前写的a.html放入到这些目录中。
最后,在浏览器里面输入bbs.db2.com,bbs.xyz.com,bbs.abc.com 看看什么效果。

当然上面的虚拟主机可以单独写一个文件,再在include 到 lighttpd.conf 中。

2,lighttpd 支持 PHP,即 lighttpd + php-fpm

 安装:


apt-get install php5-fpm php5  

 确保 /etc/php5/fpm/php.ini 中的cgi.fix_pathinfo=1


cd /etc/lighttpd/conf-available/
cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf
  

vi 15-fastcgi-php.conf  

fastcgi.server += ( ".php" =>
        ((
                "bin-path" => "/usr/bin/php-cgi",
                "socket" => "/tmp/php.socket",
                "max-procs" => 1,
                "bin-environment" => (
                        "PHP_FCGI_CHILDREN" => "4",
                        "PHP_FCGI_MAX_REQUESTS" => "10000"
                ),
                "bin-copy-environment" => (
                        "PATH", "SHELL", "USER"
                ),
                "broken-scriptfilename" => "enable"
        ))
)  

开启lighttpd 的 fastcgi 配置,执行:


lighttpd-enable-mod fastcgi
lighttpd-enable-mod fastcgi-php  

出现2个软链接:
ls -l /etc/lighttpd/conf-enabled
lrwxrwxrwx 1 root root 33 Nov 14 04:52 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
lrwxrwxrwx 1 root root 37 Nov 14 04:52 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

修改/etc/lighttpd/lighttpd.conf 配置:添加


fastcgi.server = ( ".php" => ((
                    "host" => "127.0.0.1",
                    "port" => "9000",
                 )))  

重启lighttpd


/etc/init.d/lighttpd force-reload  

最后写一个php页面:index.php ,该文件放到/var/www/xyz/目录下面。
在index-file.names配置文件中的index-file.names选项里添加该php文件。注:index-file.names 选项里当有多个文件时,会按照文件的顺序来去查找页面。


<?php
phpinfo();
?>  

现在可以在浏览器里面输入查看页面了。
上面的是通过TCP进行通信链接的,端口是9000
netstat -ap | grep php
tcp        0      0 localhost:9000          *:*                     LISTEN      1288/php-fpm.conf
或则:
netstat -ntl | grep 9000

那么通过套接字如何进行呢?

1,修改/etc/php5/fpm/pool.d/www.conf文件,把
listen = 127.0.0.1:9000
改成
listen = /tmp/php.socket
2,修改/etc/lighttpd/lighttpd.conf文件,把
fastcgi.server = ( ".php" => ((
                    "host" => "127.0.0.1",
                    "port" => "9000",

                 )))
改成
fastcgi.server = ( ".php" => ((
                    "socket" => "/tmp/php.socket",
                 )))

最后重启php和lighttpd:
/etc/init.d/php5-fpm restart
/etc/init.d/lighttpd restart

赶紧在浏览器里面输入地址看看是否OK。

 

这里只是简单的介绍了lighttpd的一些功能,还有很多功能没有写出来,如:跳转等。后期当自己遇到的时候再学再完善笔记。

参考:
http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ConfigurationOptions
http://www.howtoforge.com/installing-lighttpd-with-php5-php-fpm-and-mysql-support-on-ubuntu-12.10
http://i.linuxtoy.org/docs/guide/ch23s03.html


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Lighttpd 搭建 Web 服务器 的相关文章

  • 如何使用Python获取请求中响应的原始内容?

    尝试获取HTTP响应内容的原始数据requests在Python中 我有兴趣通过另一个渠道转发响应 这意味着理想情况下内容应该尽可能原始 这样做的好方法是什么 After requests get 您可以使用r content提取原始字节类
  • 如何在 C# Windows 应用程序中引用网站用户控件?

    我在 Windows C 应用程序中有一个解决方案 其中我也有一个网站 在网站中我有 1 个用户控件 现在我希望在同一解决方案的其他 C 项目中使用用户控件 怎么做 那是不可能的 您必须为 Windows 应用程序重新创建它 您可以重用的是
  • 如何访问随机网站? - Python

    如何生成随机但有效的网站链接 无论语言如何 事实上 它生成的网站语言越多样化越好 我一直在使用其他人网页上的脚本来做到这一点 我怎样才能不依赖这些随机站点转发脚本并制作自己的脚本 我一直这样做 import webbrowser from
  • Spring MVC Web 应用程序 - 从属性启用/禁用控制器

    我有一个在 Tomcat 中运行的 Web 应用程序 并使用 Spring MVC 来定义控制器和映射 我有以下课程 Controller api test public class TestController RequestMappin
  • 如何检测访问者使用的是HTTP/2还是SPDY?

    我正在寻找一个可以检测访问者的浏览器是否启用了 SPDY 或 HTTP 2 的脚本 就像是this https www ist http2 aktiviert de 理论上 一次nextHopProtocol降落在资源计时 https w3
  • css位置固定根本不起作用

    我正在寻找一个页脚类型的东西布莱克霍利网站 http www blakehawley com它有一些不同的链接等 它应该是横幅样式 我的意思是它应该停留在底部并被修复 div 是 菜单 这是我的 HTML
  • 使用 ruby​​ on Rails 向静态网站添加功能

    我是 ruby on Rails 的新手 我有一个包含很多静态页面的网站 我想向网站添加一些动态页面 我将在 ruby on Rails 中开发这些页面 当用户单击静态页面之一上的按钮之一时 将触发这些页面提供的功能 我想我将把动态页面放在
  • 构建网站翻译文件

    我在建立网站时多次遇到这个问题 我将以使用 PHP 和 Laravel 为例进行解释 但这个问题在多个平台中都很常见 这已经在几个问题中得到了解决 post1 https stackoverflow com questions 317854
  • 最长和最短的 HTML 字符实体名称是什么? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 管子周围有
  • IIS 6 网站根目录与应用程序?解决Url()?

    IIS 6 ASP NET 3 5 C NET 我们遇到一个问题 即同一组文件的行为会有所不同 具体取决于它是根 IIS 网站还是 IIS 网站下的应用程序 使用生成的网址解析网址 http msdn microsoft com en us
  • URL中的gs_upl是什么意思?

    在任何谷歌搜索 URL 中 gs upl 是什么意思 例如 那么 gs upl 1045l1663l0l3648l4l4l0l0l0l0l258l682l0 3 1l4l0 在这里意味着什么 从构建的脚本gs upl j 我找到 funct
  • 使用 hg 存储库作为网站

    这与我的安全问题有些相关here https stackoverflow com questions 2361626 security deny access to hg via mod rewrite 对实时网站使用 hg Mercuri
  • 从 Unity WebGL 调用 Angular2 函数

    目前 我正在使用 Angular2 版本 2 1 2 和 Unity 可视化工具 使用 Unity 5 5 构建 我需要做的是从 Unity 到 Angular2 进行通信 我正在使用类似于下面的代码 public void GetBill
  • 使用节点http代理转发http代理

    我正在使用 node http proxy 库来创建转发代理服务器 我最终计划使用一些中间件来动态修改 html 代码 这就是我的代理服务器代码的样子 var httpProxy require http proxy httpProxy c
  • 对同一域发出 get 请求,出现 CORS 错误

    在浏览器扩展中 这是我的 ajax 调用 var xhr new XMLHttpRequest xhr open GET window location href true xhr responseType arraybuffer xhr
  • asp.NET 2.0网站无法访问App_Code中的类

    将我的网站部署到服务器后 我在访问课程时遇到问题 请注意 这是一个网络Site不是网络应用 错误是 编译器错误消息 CS0246 找不到类型或命名空间名称 Order 是否缺少 using 指令或程序集引用 版本信息 Microsoft N
  • 在 Tomcat 上部署 Java Web 项目,无需 WAR 或 EAR

    我有一个 Java Web 项目 Struts Spring 在我的本地主机上完美运行 我必须将其部署在我的网站上 但虚拟主机提供的 Tomcat Manager 界面显示 由于安全原因 它无法上传 WAR 文件 当联系技术支持时 我被告知
  • Firebase Auth - 最近登录多长时间

    我有一个个人资料选项卡 用户可以在其中按编辑并编辑他们的个人资料 我只想在必要时才需要他们的密码 所以想知道用户登录的时间是多少毫秒 这使得它不是最近登录 其中firebase会抛出错误 auth requires recent login
  • IIS 8 HTTPS/需要 SSL 导致超时错误

    尝试通过 IIS 8 通过 SSL 发布网站 但出现超时错误 任何帮助表示赞赏 采取的步骤 已验证该网站可以通过 HTTP 访问 http xxx xxx xxx xxx有效 此时使用 IP 地址 如果重要的话 IIS gt 服务器证书 g
  • Lighttpd 和 cgi python

    我正在尝试通过 lighttpd 执行一些 python 脚本 但是当我尝试运行它时 我只得到一个要求我下载的空白文件 lighttpd conf server modules mod access mod alias mod access

随机推荐

  • 使用Jmeter输出错误响应结果到日志

    性能测试过程中 xff0c 我们经常需要知道高并发性能测试情况下 xff0c 系统报错 xff0c 返回的结果是什么 xff0c 帮助开发具体定位问题 一 操作步骤 xff1a 正确响应结果 我们可以自定义断言语句 xff0c 自动判断断言
  • 控制台报错 index:0,size:0

    源代码 xff1a service实现类 xff1a String select sql 61 34 select cguid case isrz when 1 then 39 PASS 39 when 0 then 39 FAIL 39
  • Ubuntu11.04上tftp服务的配置

    Ubuntu11 04 上tftp 服务的配置 2011 06 17 15 01 以前ubuntu 版本上的tftp 已经配置很多遍了 xff0c 详情可以参见 xff1a www mcuos com thread 646 1 2 html
  • 九套常规报表模型(转)

    九套常规报表模型 我们可以通过九大报表模型的组合 xff0c 快速完成大多数报表的设计 这九大模型分别为 xff1a 列表 分组 主从 嵌套 交叉 图形 套打 分栏 填报 本文将重点对这九大模型的特征及适用范围进行阐述 1 列表 列表是报表
  • 利用for循环打印实心棱形和空心棱形

    一 要求 xff1a 提示用户输入棱形的行数 xff0c 比如输入5时 xff0c 打印如下实心棱形和空心棱形 xff08 由于排版问题 xff0c 可能显示会有变形 xff09 xff1a 二 分析 xff1a A 图形是上下对称的 B
  • Faiss教程:GPU

    Fassi通过CUDA支持GPU xff0c 要求3 5以上算力 xff0c float16要求CUDA7 5 43 通过index gpu to cpu可以将索引从GPU复制到CPU xff0c index cpu to gpu 和 in
  • 浏览器的强缓存与弱缓存

    在浏览器众多缓存中的HTTP缓存可能很多人对这个的概念并没有很清晰 xff0c 每个人都知道进入一次网页之后再刷新一次页面 xff0c 加载速度会比首次加载快非常多 xff0c 每个人都知道这是浏览器缓存的magic xff0c 但是对此背
  • 密钥协商(密钥交换)机制的讲解

    国标文件涉及密钥协商算法的函数 生成密钥协商参数并输出计算会话密钥产生协商数据并且计算会话密钥 密钥协商 xff08 交换 xff09 算法及其原理 密钥交换 协商目的 密钥协商机制 是 xff1a xff08 在身份认证 的前提下 xff
  • 基于牛客网Js v8引擎提供的读/写方法做的调试页面

    项目地址 正直秋招季 xff0c 对找工作的人来说 xff0c 牛客网肯定不陌生 xff0c 现在很多大型互联网公司的在线笔试都是在牛客网上面进行的 xff08 好像有打广告的嫌疑 xff09 Js有那么多的操作数据结构的api xff0c
  • 本地调试spark报org.apache.hadoop.io.nativeio.NativeIO$Windows.createFile...

    本地调试spark xff0c saveAsText 报错 org apache hadoop io nativeio NativeIO Windows createFileWithMode0 Ljava lang String xff1b
  • Element表格分页数据选择+全选所有完善批量操作

    后台管理系统中的列表页面 xff0c 一般都会有对列表数据进行批量操作的功能 xff0c 例如 xff1a 批量删除 批量删除等 之前项目中只是简单的用到Element框架中常规的属性 事件 在一次机缘巧合下 xff0c 了解到一个公司内部
  • idea本地调试web报“There is no configured/running web-servers found! Please, run any web-config”...

    为什么80 的码农都做不了架构师 xff1f gt gt gt 本文永久更新地址 xff1a https my oschina net bysu blog 3051091 1 按照网上的各种配置 如下图 还是不行 2 网上还说要先run才行
  • Visual Studio Code语言设置为中文

    1 Visual Studio Code下载安装 https code visualstudio com 2 语言设置 2 1 快捷键 Windows Linux 快捷键是 xff1a ctrl 43 shift 43 p macOS 快捷
  • 查看zookeeper注册中心是否有注册服务

    为什么80 的码农都做不了架构师 xff1f gt gt gt 查看zookeeper注册中心是否有注册服务可以在服务器上看 xff0c 也可以在dubboadmin看哦 1 在服务器上看 xff1a 1 xff09 查找zookeeper
  • matplotlib 设置图形大小时 figsize 与 dpi 的关系

    matplotlib 中设置图形大小的语句如下 xff1a fig 61 plt figure figsize 61 a b dpi 61 dpi 其中 xff1a figsize 设置图形的大小 xff0c a 为图形的宽 xff0c b
  • iOS- SQLite3的基本使用

    iOS 简单说说iOS移动客户端SQLite3的基本使用 1 为什么要使用SQLite3 xff1f 大量数据需要存储 管理数据 xff0c 存储数据 SQLite是一种关系型数据库 xff08 也是目前移动客户端的主流数据库 xff09
  • Daily Scrum: 2012/12/8

    成员角色今天工作明天计划王安然PM Dev已请假 xff0c 开会 继续开会 黄杨PM Dev已收拾skynet的小问题并且通过测试 xff08 312 xff09 xff0c 编写武器项cracker xff08 313 xff09 完成
  • 【Python】控制鼠标点击

    from pymouse import PyMouse m 61 PyMouse a 61 m position 获取当前坐标的位置 print a m move 50 500 鼠标移动到 x y 位置 a 61 m position pr
  • C++ 标准程序库std::string 详解

    现在一般不再使用传统的char 而选用C 43 43 标准程序库中的string类 xff0c 是因为string标准程序和char 比较起来 xff0c 不必担心内存是否足够 字符串长度 等等 xff0c 而且作为一个类出现 xff0c
  • Lighttpd 搭建 Web 服务器

    背景 xff1a 公司项目用到了lighttpd xff0c 由于自己没有接触过 xff0c 所以做下记录 简介 xff1a Lighttpd 是一个德国人领导的开源Web服务器软件 xff0c 其根本的目的是提供一个专门针对高性能网站 x