Linux环境下使用Apache部署Web服务
2016-03-21 12:31
931 查看
一. Apache,HTTP,Web的关系
Apache是一款软件:Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。
早期的Apache小组,现在已经成为一个拥有巨大力量的apache基金会。
他们把起家的Apache更名为httpd,也更符合其http server的特性。而Apache现在成为Apache基金会下几十种开源项目的标识。
HTTP是一种协议:
HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从Web服务器传输超文本到本地浏览器的传输协议。它可以使浏览器更加高效,使网络传输减少。
Web我们称为网页或网站:
web的本意是蜘蛛网和网的意思,在网页设计中我们称为网页的意思。现广泛译作网络、互联网等技术领域。表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)等。
简单来说:在Web Server上安装Apache(httpd)软件,Apache(httpd)使用HTTP协议,来传输网页。
二. Web Server概述
概念:基于B/S(Browser/Server)架构的Web通信。
服务端:支持HTTP协议的网页提供程序
客户端:按标记规范显示网页的浏览器程序
HTML:超文本标记语言
HTTP:超文本传输协议
WWW:万维网
URL:统一资源定位器
三 .安装软件包
[root@server ~] # yum -y install httpd httpd-manual(说明手册,可以不安装)默认网页的存储路径为/var/www/html
主要目录文件和主配置文件:
主配置文件:/etc/httpd/conf/httpd.conf
配置目录:/etc/httpd/conf.d/ (有一些参数不想写在主配置文件内,可以写在这个目录下,以.conf结尾)
网站根目录:/var/www/html
访问日志:/var/log/httpd/access_log
错误日志:/var/log/httpd/error_log
httpd服务的信息:
系统服务脚本:/etc/init.d/httpd
默认端口:TCP 80
进程名:httpd
进程所有者:apache
四. 浅析主配置文件
[root@server ~] # vim /etc/httpd/conf/httpd.conf…
ServerName www.beginner.net.cn:80
本站点的域名,默认可以不写
DocumentRoot “/var/www/html”
网站的根目录
DirectoryIndex index.html index.html.var
定义网站根目录里的首页文件
Include conf.d/*.conf
可包含其他子配置文件,可以更改
Listen 80
后面可以写端口号,也可以写IP地址。如果做基于端口的虚拟主机,要多监听端口。
User apache
指定进程的属主,默认为apache
Group apache
指定的进程属组,默认为apache
ErrorLog logs/error_log
错误日志文件的路径,在/etc/httpd目录下
CustomLog logs/access_log common
访问日志的路径,在/etc/httpd目录下
五. 实验
1)实验一:修改httpd配置文件
[root@server ~] # vim /etc/httpd/conf/httpd.conf…
ServerName www.beginner.net.cn
DirectoryIndex myfile.html
Listen 8080
DocumentRoot “/var/tmp”
…
[root@server ~] # echo “www” > /var/tmp/myfile.html
[root@server ~] # service httpd restart
[root@server ~] # curl http://www.beginner.net.cn:8080
www
2)实验二:实现用户自定义网页
思路:开启vsftpd服务,使用户可以上传或者删除自己的网页文件,把DocumentRoot 改为FTP服务上传的目录即可。[root@server ~] # yum -y install vsftpd httpd
[root@server ~] # mkdir /usr/yao
[root@server ~] # useradd -s /sbin/nologin -d /usr/yao yao
[root@server ~] # passwd yao
…
[root@server ~] # vim /etc/httpd/conf/httpd.conf
…
DocumentRoot /usr/yao
…
[root@server ~] # service httpd start
[root@server ~] # service vsftpd start
六. 虚拟主机
什么是Web虚拟主机:在同一台服务器上运行多个Web站点。
每个站点挺不是独立占用一台计算机。
虚拟主机的类型:
基于域名(FQDN):常用,提供给客户访问
基于IP地址:基本不用
基于端口:一般在内部使用,访问时需要指定端口
注意:RHEL6 与 RHEL7 的虚拟主机的搭建有点不同
1) 基于域名的虚拟主机的搭建(RHEL6)
[root@server ~] # vim /etc/httpd/conf/httpd.conf ... NameVirtualHost *:80 # 把这一行前的注释去掉,就是打开的虚拟主机。打开虚拟主机的话,前面的配置就无效了。 <VirtualHost *:80> ServerAdmin linux_yao@beginner.net.cn DocumentRoot /usr/www ServerName www.beginner.net.cn ErrorLog logs/www.beginner.net.cn-error_log CustomLog logs/www.beginner.net.cn-access_log common </VirtualHost> <VirtualHost *:80> ServerAdmin linux_yao@beginner.net.cn DocumentRoot /usr/blog ServerName blog.beginner.net.cn ErrorLog logs/blog.beginner.net.cn-error_log CustomLog logs/blog.beginner.net.cn-access_log common </VirtualHost> ... [root@server ~] # service httpd restart [root@server ~] # echo "www" > /usr/www/index.html [root@server ~] # echo "blog" > /usr/blog/index.html [root@server ~] # curl http://www.beginner.net.cn www [root@server ~] # curl http://blog.beginner.net.cn blog
2) 基于域名的虚拟主机的搭建(RHEL7)
RHEL7中,不需要打开虚拟主机。当配置文件读到<Virtualhost *:xx>的时候,会自动打开虚拟主机。 [root@server ~] # cd /etc/httpd/conf.d/ # 因为主配置文件中有一行,会读取这个目录内的所有.conf结尾的配置文件。所以把虚拟主机的配置文件放在这里,容易管理。 [root@server ~] # vim virtualhost-www.conf <VirtualHost *:80> ServerName www.beginner.net.cn DocumentRoot /usr/www ServerAdmin linux_yao@beginner.net.cn ErrorLog logs/www.beginner.net.cn-error_log CustomLog logs/www.beginner.net.cn-access_log common </VirtualHost> <Directory /usr/www> #针对网页根目录做访问控制 Require All Granted #允许所有 </Directory> [root@server ~] # vim virtualhost-blog.conf <VirtualHost *:80> ServerName blog.beginner.net.cn DocumentRoot /usr/blog ServerAdmin linux_yao@beginner.net.cn ErrorLog logs/blog.beginner.net.cn-error_log CustomLog logs/blog.beginner.net.cn-access_log common </VirtualHost> <Directory /usr/blog> Require All Granted </Directory> [root@server ~] # systemctl restart httpd.service [root@server ~] # echo "www" > /usr/www/index.html [root@server ~] # echo "blog" > /usr/blog/index.html [root@server ~] # curl http://www.beginner.net.cn www [root@server ~] # curl http://blog.beginner.net.cn blog
2) 基于端口的虚拟主机的搭建(RHEL6)
[root@server ~] # vim /etc/httpd/conf/httpd.conf ... Listen 80 Listen 8080 NameVirtualHost *:80 NameVirtualHost *:8080 <VirtualHost *:80> DocumentRoot /var/www/html #网站的根目录 ServerName www.beginner.net.cn #网站的域名 </VirtualHost> <VirtualHost *:8080> DocumentRoot /var/ftp #网站的根目录 ServerName www.beginner.net.cn #网站的域名 </VirtualHost> ... [root@server ~] # service httpd restart [root@server ~] # netstat -antpu | grep httpd # 看看是否监听了两个端口 [root@server ~] # echo "80" > /var/www/html/index.html [root@server ~] # echo "8080" > /var/ftp [root@server ~] # curl http://www.beginner.net.cn 80 [root@server ~] # curl http://www.beginner.net.cn:80 80 [root@server ~] # curl http://www.beginner.net.cn:8080 8080
2) 基于端口的虚拟主机的搭建(RHEL7)
[root@server ~] # cd /etc/httpd/conf.d/ [root@server ~] # vim virtualhost-www.conf <VirtualHost *:80> ServerName www.beginner.net.cn DocumentRoot /var/www/html ServerAdmin linux_yao@beginner.net.cn ErrorLog logs/www.beginner.net.cn-error_log CustomLog logs/www.beginner.net.cn-access_log common </VirtualHost> <Directory /var/www/html> #针对网页根目录做访问控制 Require All Granted #允许所有 </Directory> <VirtualHost *:8080> ServerName www.beginner.net.cn DocumentRoot /var/ftp ServerAdmin linux_yao@beginner.net.cn ErrorLog logs/www.beginner.net.cn-error_log CustomLog logs/www.beginner.net.cn-access_log common </VirtualHost> <Directory /usr/blog> Require All Granted </Directory> [root@server ~] # vim /etc/httpd/conf/httpd.conf ... Listen 80 Listen 8080 ... [root@server ~] # systemctl restart httpd.service [root@server ~] # netstat -antpu | grep httpd # 检查是否监听了两个端口 [root@server ~] # echo "80" > /var/www/html/index.html [root@server ~] # echo "8080" > /var/ftp [root@server ~] # curl http://www.beginner.net.cn 80 [root@server ~] # curl http://www.beginner.net.cn:80 80 [root@server ~] # curl http://www.beginner.net.cn:8080 8080
关于https的部分,稍后的博文会更新
相关文章推荐
- Apache Isis 1.4.0 发布,领域驱动开发框架
- RH436 Day3 课后总结
- Linux快速构建apache web服务器
- Awstats处理多apache日志
- 安装perl模块小窍门
- PHP+Apache在Windows 9x下的安装和配置
- Apache服务器配置全攻略
- Apache Web让JSP“动”起来
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- apache 环境下 php 的配置注意事项
- 在RedHat下安装apache jserv 1.1.2方法
- windows8.1下Apache+Php+MySQL配置步骤
- windows中PHP5.2.14以及apache2.2.16安装配置方法第1/2页
- 在Windows XP下安装Apache+MySQL+PHP环境
- 解析阿里云ubuntu12.04环境下配置Apache+PHP+PHPmyadmin+MYsql
- apache rewrite防盗链三例
- Apache 配置详解(最好的APACHE配置教程)
- Apache+php+mysql在windows下的安装与配置(图文)第1/2页
- apache rewrite_module模块使用教程