配置Lighttpd Web服务器使用NFS共享静态文件
Lighttpd Web 服务器负责通过 HTTP 或 HTTPS 协议提供对静态内容的访问。在此示例中,我将安装并使用 Lighttpd Web 服务器,并将 DocumentRoot 设置为挂载在 /var/www/static 上的 vm05:/exports/static。您只需在IP 地址为192.168.1.10的vm01上键入以下命令。
配置 NFS 客户端
使用yum 命令安装所需的 NFS 客户端包:
# yum groupinstall "Network file system client"
或者
# yum install nfs-utils nfs4-acl-tools
打开 NFSv4 客户端服务:
# chkconfig rpcbind on
# chkconfig rpcidmapd on
# chkconfig nfslock on
/etc/idmapd.conf nfs 客户端配置
编辑/etc/idmapd.conf,输入:
# vi /etc/idmapd.conf
确保按照NFS服务器域名设置:
Domain = example.com [Mapping] Nobody-User = nobody Nobody-Group = nobody
保存并关闭文件。启动所有 nfs 客户端服务,输入:
# /sbin/service rpcbind start
# /sbin/service rpcidmapd start
# /sbin/service nfslock start
创建用户帐户
我将仅以 apache 用户身份运行 Lighttpd Web 服务器。要添加 Linux 用户帐户,请输入:
# /usr/sbin/groupadd -g 48 apache
# /usr/sbin/useradd -s /sbin/nologin -g 48 -u 48 -M -d /var/www apache
# /usr/bin/passwd -l apache
挂载文件系统
键入以下命令:
# showmout -e vm05
示例输出:
Export list for v.txvip1: /exports/html 192.168.1.10,192.168.1.11 /exports/static 192.168.1.10,192.168.1.11
在 /var/www/static 上挂载 /exports/static nfs 文件系统,输入:
在 /var/www/static 上挂载 /exports/static nfs 文件系统,输入:
# mkdir /var/www/static
# /bin/mount -t nfs4 -orsize=32768,wsize=32768,intr,hard,proto=tcp,sync vm05:/exports/static /var/www/static/
# mkdir /var/www/static
使用 /etc/fstab 挂载 NFS 文件系统
编辑 /etc/fstab,输入:
# vi /etc/fstab
附加条目,输入:
vm05:/exports/static /var/www/static nfs4 orsize=32768,wsize=32768,intr,hard,proto=tcp,sync
保存并关闭文件。确保 netfs 服务已打开:
# chkconfig netfs on
最后,验证 apache 用户是否可以看到文件,输入:
请注意,由于安全策略,root 用户或任何其他用户可能无法查看 /var/www/html。这是默认设置,只有名为 apache 的 lighttpd 用户必须访问 DocumentRoot。
# su - apache
$ ls /var/www/static/
$ exit
#
安装 Lighttpd Web 服务器
打开 EPEL repo并安装 lighttpd 网络服务器:
# yum install lighttpd
示例输出:
Loaded plugins: rhnplugin Setting up Install Process Resolving Dependencies --> Running transaction check ---> Package lighttpd.x86_64 0:1.4.28-3.el6 will be installed --> Finished Dependency Resolution Dependencies Resolved ========================================================================== Package Arch Version Repository Size ========================================================================== Installing: lighttpd x86_64 1.4.28-3.el6 epel 328 k Transaction Summary ========================================================================== Install 1 Package(s) Total download size: 328 k Installed size: 878 k Is this ok [y/N]: y Downloading Packages: lighttpd-1.4.28-3.el6.x86_64.rpm | 328 kB 00:00 Running rpm_check_debug Running Transaction Test Transaction Test Succeeded Running Transaction Installing : lighttpd-1.4.28-3.el6.x86_64 1/1 Installed: lighttpd.x86_64 0:1.4.28-3.el6 Complete!
配置 Lighttpd Web 服务器
编辑/etc/lighttpd/lighttpd.conf,输入:
附加以下配置:
# mv /etc/lighttpd/lighttpd.{conf,default.bak}
# vi /etc/lighttpd/lighttpd.conf
## Static config for http://static.example.com server.modules = ( "mod_expire", "mod_access", "mod_accesslog", "mod_setenv", "mod_extforward" ) server.errorlog = "/var/log/lighttpd/error.log" accesslog.filename = "/var/log/lighttpd/access.log" index-file.names = ( "index.html", "index.htm", "default.htm" ) server.tag = "lighttpd" server.network-backend = "linux-sendfile" ## allow lan only communication ## server.port = "80" server.bind = "192.168.1.10" server.document-root = "/var/www/static" server.pid-file = "/var/run/lighttpd.pid" server.username = "apache" server.groupname = "apache" ## all static assets are cached for 30days ## $HTTP["url"] =~ "^/" { expire.url = ( "" => "access 30 days" ) } ### Log real client ips on backend ### ### 192.168.1.{1,2} == nginx resverse proxy server ## extforward.headers = ("X-Forwarded-For") extforward.forwarder = ( "192.168.1.1" => "trust", "192.168.1.2" => "trust" ) ## ## mimetype mapping ## include "conf.d/mime.conf"
保存并关闭文件。
配置 iptables 以允许访问 Web 服务器
编辑 /etc/sysconfig/iptables。添加以下行,确保它们出现在 INPUT 链的最终 LOG 和 DROP 行之前:
## allow only access from lan ## -A INPUT -m state --state NEW -p tcp -s 192.168.1.0/24 --dport 80 -j ACCEPT
保存并关闭文件。重新启动iptables服务,输入:
# /sbin/service iptables restart
# /sbin/iptables -L -v -n
开启Lighttpd:
启动Lighttpd Web服务器,输入:
# chkconfig lighttpd on
# service lighttpd start
测试一下
启动网络浏览器并输入:
http://192.168.1.10/