apache的http的常用安装配置

需求一:安装独立的web站点

服务端配置文件:

/etc/httpd/conf/httpd.conf

/etc/httpd/conf.d/*.conf

默认首页文件:index.html

http网站文档的默认根目录:/var/www/html

URL(Uniform  Resouce Locator,统一资源定位器)网址的基本组成:

http://服务器地址[:端口号]/目录/文件名

具体配置:

[root@zhuhaiyan ~]# yum -y install httpd

[root@zhuhaiyan ~]# cd /var/www/html/

[root@zhuhaiyan html]# cat index.html 
ttttt
[root@zhuhaiyan html]# systemctl restart httpd
[root@zhuhaiyan html]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

[root@zhuhaiyan ~]# curl http://192.168.4.11
ttttt


需求二:虚拟Web主机的部署

虚拟主机平台

同一套httpd平台上跑很多个网站

多个域名---不同的网页内容

网页目录由<virtualHost>区段配置定义

多个虚拟主机站点的典型设置(/etc/httpd/conf.d/*.conf)

<VirtualHost *:80>
       ServerName  网站1的FQDN
       DocumentRoot  网站1的网页根目录
</VirtualHost>
<VirtualHost *:80>
       ServerName  网站2的FQDN
       DocumentRoot   网站2的网页根目录
</VirtualHost>

具体的配置

部署网页文档

[root@zhuhaiyan ~]# mkdir /var/www/virtual
[root@zhuhaiyan ~]# useradd zhu
[root@zhuhaiyan ~]# setfacl -m u:zhu:rwx /var/www/virtual/
[root@zhuhaiyan ~]# cd /var/www/virtual/
[root@zhuhaiyan virtual]# echo I am a virtual one! > index.html

[root@zhuhaiyan ~]# cd /etc/httpd/conf.d/
配置虚拟主机http://www0.example.com/

[root@zhuhaiyan ~]# cd /etc/httpd/conf.d/
[root@zhuhaiyan conf.d]# vim /etc/httpd/conf.d/01-www0.conf

<VirtualHost  *:80>
        ServerName  www0.example.com
        DocumentRoot  /var/www/virtual
</VirtualHost>

[root@zhuhaiyan conf.d]#  systemctl  restart  httpd
[root@zhuhaiyan ~]# curl http://www0.example.com/
I am a virtual one!

完善原始站点 http://zhuhaiyan.example.com

[root@zhuhaiyan ~]# cd /etc/httpd/conf.d/
[root@zhuhaiyan conf.d]# vim 00-default.conf

<VirtualHost  *:80>
        ServerName  zhuhaiyan.example.com
        DocumentRoot  /var/www/html
</VirtualHost>

[root@zhuhaiyan conf.d]# systemctl restart httpd

[root@zhuhaiyan conf.d]# curl http://zhuhaiyan.example.com/
ttttt

需求三:配置网页内容访问


配置Web内容的访问控制需要添加Directory区段。

<Directory  "父目录路径">
     Require  all  denied                                  //上层目录拒绝任何访问
</Directory>
<Directory  "子目录1路径">
     Require  all  granted                             //子目录1允许任何访问
</Directory>
<Directory  "子目录2路径">
     Require  ip  IP或网段地址 .. ..                     //子目录2允许少数客户机
</Directory>

部署网页子目录及文档

[root@zhuhaiyan ~]# cd /var/www/html/private/
[root@zhuhaiyan private]# echo 'Private Site' > index.html

[root@zhuhaiyan private]# vim  /etc/httpd/conf.d/00-default.conf

<VirtualHost  *:80>
        ServerName  zhuhaiyan.example.com
        DocumentRoot  /var/www/html
</VirtualHost>
<Directory  "/var/www/html/private">
        Require  ip  127.0.0.1  ::1  192.168.4.11
</Directory>
 

[root@pc01 ~]# curl http://zhuhaiyan.example.com/private/
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /private/
on this server.</p>
</body></html>

[root@pc01 ~]# curl http://zhuhaiyan.example.com/
ttttt
[root@zhuhaiyan  ~]# curl http://zhuhaiyan.example.com/private/
Private Site


使用自定义web根目录

建立网页目录

[root@zhuhaiyan ~]# mkdir /webroot
[root@zhuhaiyan ~]# cd /webroot/
[root@zhuhaiyan webroot]# echo "自定义的web网页" > index.html
调整虚拟站点的配置

[root@zhuhaiyan webroot]# vim /etc/httpd/conf.d/00-default.conf 

<VirtualHost  *:80>
        ServerName  zhuhaiyan.example.com
        DocumentRoot  /webroot
</VirtualHost>
<Directory "/webroot">
        Require all granted
</Directory>

[root@zhuhaiyan webroot]# systemctl restart httpd
[root@zhuhaiyan webroot]# chcon -R --reference=/var/www /webroot/
[root@zhuhaiyan webroot]# ls -Z /webroot/index.html 
-rwxrwxrwx. root root system_u:object_r:httpd_sys_content_t:s0 /webroot/index.html
[root@zhuhaiyan webroot]# systemctl restart httpd
[root@zhuhaiyan webroot]# curl http://zhuhaiyan.example.com
自定义的web网页

需求五:部署并测试WSGI站点

为httpd增加对python网页程序的支持,可以安装mod_wsgi模块。

部署动态网页文档

创建动态网页文档

部署webinfo.wsgi网页程序

[root@server0 ~]# mkdir  /var/www/webapp0

[root@server0 ~]# cd /var/www/webapp0
[root@server0 webapp0]# vim webinfo.wsgi

安装mod_wsgi模块软件包
[root@server0 ~]# yum  -y  install  mod_wsgi

 

为新虚拟主机建立配置

[root@server0 ~]# vim  /etc/httpd/conf.d/02-webapp0.conf
Listen  8909
<VirtualHost *:8909>
        DocumentRoot  /var/www/webapp0
        ServerName  webapp0.example.com
        WSGIScriptAlias  /  /var/www/webapp0/webinfo.wsgi
</VirtualHost>

调整SELinux策略,允许Web服务使用8909端口
列出当前许可的Web端口:

[root@server0 ~]# semanage  port  -l  |  grep  ^http_port
http_port_t           tcp      80, 81, 443, 488, 8008, 8009, 8443, 9000

添加新的Web端口:

[root@server0 ~]# semanage  port  -a  -t  http_port_t  -p  tcp  8909

确认配置结果:
[root@server0 ~]# semanage  port  -l  |  grep  ^http_port
http_port_t           tcp      8909, 80, 81, 443, 488, 8008, 8009, 8443, 9000

重启系统服务httpd

[root@server0 ~]# systemctl  restart  httpd
[root@server0 ~]# netstat  -antpu  |  grep  httpd          //确认已监听8909端口
tcp6       0      0 :::443                  :::*                    LISTEN      2477/httpd          
tcp6       0      0 :::8909                 :::*                    LISTEN      2477/httpd          
tcp6       0      0 :::80                   :::*                    LISTEN      2477/httpd   

步骤三:测试动态网页效果

使用elinks或firefox访问此动态站点http://webapp0.example.com:8909/。
多刷新访问几次,每次看到的是动态网页内容,内容并不固定。
[root@desktop0 ~]# elinks  -dump  http://webapp0.example.com:8909/
   UNIX EPOCH time is now: 1480184916.52                      //第1次访问
[root@desktop0 ~]# elinks  -dump  http://webapp0.example.com:8909/
   UNIX EPOCH time is now: 1480184919.21                      //第2次访问
[root@desktop0 ~]# elinks  -dump  http://webapp0.example.com:8909/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值