Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩展,将Perl/Python等解释器编译到服务器中
Apache 对Linux的支持相当完美。Apache有多种产品,可以支持SSL技术,支持多个虚拟主机。Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,市场占有率达60%左右。世界上很多著名的网站如Amazon、Yahoo!、W3 Consortium、Financial Times等都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面
Apache
的基础信息
主配置目录
/etc/httpd/conf
主配置文件
/etc/httpd/conf/httpd.conf
子配置目录
/etc/httpd/conf.d/
默认发布目录
index.html
默认端口
80
默认安全上下文
httpd_sys_content_t
程序开启默认用户
apache
apache日志
/etc/httpd/logs/*
安装 Apache
getenforce
查看selinux
关闭
yum install httpd -y
安装 http
yum install httpd-manual -y
安装 http 手册
systemctl start httpd
开启 http
systemctl enable httpd
开机自启 http
firewall-cmd --permanent --add-service=http
添加 http 服务
firewall-cmd --reload
加载
firewall-cmd --list-all
查看所有列表
cd /var/www/html
切换到 /var/www/html 目录,该目录是安装 http 后由系统自动生成的目录,里面主要存放网页内容
vim /var/www/html/index.html
编辑 index.html 文件
cat /var/www/html/index.html
查看内容
http://172.25.254.130
输入 web 服务器 ip 查看内容
修改默认端口
默认访问端口为 80
vim /etc/httpd/conf/httpd.conf
编辑 httpd.conf 配置文件
Listen 8080
firewall-cmd --permanent --add-port=8080/tcp
添加 tcp 端口为 8080
http://172.25.254.130:8080
需要输入端口号,默认端口号已被修改
http://172.25.254.130:8080/manual/
手册
修改默认发布文件
访问apache时没有指定文件名时默认访问的文件,这个文件可以指定多个,有访问顺序
vim /etc/httpd/conf/httpd.conf
Listen 80
默认端口修改为初始值
DirectoryIndex westos index.html
当 westos不存在时 ,访问 index.html
http://172.25.254.130
自动跳转到 /westos 目录下
vim /etc/httpd/conf/httpd.conf
DirectoryIndex index.html
修改回初始值
http://172.25.254.130
回到原始目录下
修改默认发布目录
vim /etc/httpd/conf/httpd.conf
DocumentRoot "/westos/html"
文件默认访问目录
Require all granted
允许所有来源访问
注意:常见访问控制指令
Require all granted
允许所有来源访问
Require all denied
拒绝所有来源访问
Require expr expression
允许表达式为true时访问
Require ip 10 172.20 192.168.2
允许特定IP段访问,多个段之前用空格隔开,每个段使用开头几项表示
Require host westos.com
只允许来自域名westos.com的主机访问注释原始默认发布目录
vim /westos/html
cat /westos/html
http://172.25.254.130
发布目录已被修改
访问控制
mkdir /var/www/html/westos
vim mkdir /var/www/html/westos/index.html
cat mkdir /var/www/html/westos/index.html
vim /etc/httpd/conf/httpd.conf
Order Allow,Deny
执行命令
Allow from all
允许所有通过
Deny from 172.25.254.30
拒绝172.25.254.30
172.25.254.130测试访问
正常访问
172.25.254.30测试访问
权限未开,禁止访问
指定用户访问
htppasswd -cm westosuser admin
第一创建 admin 用户 -cm参数
htpasswd -m westosuser admin1
第二次创建 admin1 用户 -m参数(如果使用 -cm 参数,替换原先 admin)
cat westosuser
账户及加密密码
vim /etc/httpd/conf/httpd.conf
AuthUserFile /etc/httpd/conf/westosuser
配置文件
AuthType basic
基础类型
Require user admin
允许 admin
http://172.25.254.130
admin
123
浏览器提示是否记录账户密码
正常访问
http://172.25.254.130
admin1
123
权限不够,禁止访问
vim /etc/httpd/conf/httpd.conf
Require valid-user
允许所有账户通过
http://172.25.254.130
admin1
123
浏览器提示是否记录账户密码
权限开放,正常访问
Apache的虚拟主机
一台Apache主机开多个站点
vim /etc/hosts
172.25.254.130 www.westos.com news.westos.com music.westos.com
本地地址解析
vim /etc/httpd/conf.d/default.conf
虚拟主机端口80
DocumentRoot /var/www/html
文件默认访问目录
Customlog logs/default.log combined
日志存放地址
vim /etc/httpd/conf.d/music.conf
虚拟主机端口80
ServerName music.westos.com
服务器名称
DocumentRoot /var/www/virtual/music/html
文件默认访问目录
Customlog logs/music.log combined
日志存放地址
类型:混合
Require all granted
允许所有来源访问
vim /etc/httpd/conf.d/new.conf
虚拟主机端口80
ServerName news.westos.com
在这里插入代码片
服务器名称
DocumentRoot /var/www/virtual/news/html
文件默认访问目录
Customlog logs/news.log combined
日志存放地址
类型:混合
Require all granted
允许所有来源访问
vim /var/www/virtual/music/html/index.html
cat /var/www/virtual/music/html/index.html
http://music.westos.com
正常访问
vim /var/www/virtual/news/html/index.html
cat /var/www/virtual/news/html/index.html
http://news.westos.com
php
+ cgi
vim /var/www/html/index.php
phpinfo();
?>
yum install php -y
systemctl restart httpd
172.25.254.130/index.php
mkdir /var/www/html/cgi
创建 cgi 目录
vim /var/www/html/cgi/index.cgi
编辑 index.cgi
chmod 775 /var/www/html/cgi/index.cgi
修改权限(脚本需要可执行权限)
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print date;
172.25.254.130/cgi/index.cgi
显示内容为源代码
vim /etc/httpd/conf.d/default.conf
添加cgi可执行脚本命令
options +ExecCGI
AddHandler cgi-script .cgi
systemctl restart httpd
172.25.254.130/cgi/index.cgi
显示动态命令
Apache
的 ssl
yum install mod_ssl -y
安装ssl
systemctl restart httpd
https://172.25.254.130
使用https访问
https://172.25.254.130
可以访问,正常显示
自签名证书
yum install mod_ssl -y
安装 ssl
yum install cypto-utils -y
安装 cypto-utils
genkey www.westos.com
生成证书
选择
NO
,不发送证书
Next
密钥大小
证书介绍
系统生成证书
vim /etc/httpd/conf.d/ssl.conf
SSLCertificateFile /etc/pki/tls/certs/www/westos.com.crt
SSLCertificateKeyFile /etc/pki/tls/private/www/westos.com.key
systemctl restart httpd
验证
网页重写
cp news.conf login.conf
vim login.conf
mkdir -p /var/www/virtual/login/html
vim /var/www/virtual/login/html/index.html
cat /var/www/virtual/login/htmlindex.html
systemctl restart httpd
vim login conf
systemctl restart httpd
vim /etc/hosts
login.westos.com
强制跳转到 https 加密网页下
注意:
^(/.*)$表示客户在浏览器中输入的所有字符
$1表示^(/.*)$的值
redirect=301表示转换为永久
%(HTTP_HOST)表示客户请求主机
php
+ wsgi
yum install php -y
yum install mod_wsgi -y
mkdir /var/www/wsgi
vim /var/www/wsgi/script.wsgi
cat /var/www/wsgi/script.wsgi
vim /etc/hosts
172.25.254.130 www.westoswsgi.com
vim /etc/httpd/conf.d/default.conf
ServerName www.westoswsgi.com
WSGIScriptAlias / /var/www/wsgi/script.wsgi
systemcrl restart httpd
www.westoswsgi.com
脚本被执行