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/
需求一:安装独立的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/