Apache服务器部署
背景
百度百科:Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
Nginx:Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。
可以使用curl -I(大写i)选项仅查看响应头部信息,我们来看一看国内知名网站部署的服务器类型:
更详细的对比:请看这篇文章
Apache的部署安装 yum install httpd -y ##apache软件 yum install httpd-manual ##apache的手册 systemctl start httpd systemctl enable httpd firewall-cmd --list-all ##列出火墙信息 firewall-cmd --permanent --add-service=http ##永久允许http firewall-cmd --reload ##火墙从新加载策略 /var/www/html ##apache的/目录,默认发布目录 /var/www/html/index.html ##apache的默认发布文件 vim /var/www/html/index.html ##写默认发布文件内容 <h1> hello world </h1>实验结果:
在浏览器输入
httpd配置文件的查看
rpm -ql httpd ##查看安装文件路径 rpm -qc httpd ##查看配置文件名称 rpm -qd httpd ##查看帮助文件 修改Apache默认配置我们在修改之前,首先要确保selinux开启:enforcing。
修改默认端口查看默认端口:netstat -antlupe | grep httpd
修改之前,先查看已有的端口:通过命令semanage port -l | grep http查看
修改没有的端口
1 对于一些非常用端口。比如666,先检测是否占用,netstat -antlupe |grep 666
2 然后修改配置文件改为666端口
默认发布文件就是访问apache时没有指定文件名称时默认访问的文件。这个文件可以指定多个,有访问顺序。
1 在默认发布目录下创建文件vim /var/www/html/test.html写入一个html基本页面。
2 修改主配置文件
vim /etc/httpd/conf/httpd.conf 164 DirectoryIndex index.html test.html ##第164行 ##当index.html不存在时访问test.html当我们删掉index.html的时候,重启服务后发现,默认发布文件已经改变:
1 在主配置文件中添加:
DocumentRoot "/westos/html" <Directory "/westos/html"> ##授权,还需要做授权(rht7之后),否则不能访问。 Require all granted </Directory>虚拟主机apache是什么呢?
简单的说虚拟主机apache就是在apache服务器上配置多个虚拟主机,从而把一个服务器提供多站点的服务实现。
虚拟主机apache是在一台服务器上运行多个网站,每个虚拟主机都可以绑定独立的域名并为这些域名可以指定单独的目录,访问这些域名的时候apache 会打开对应目录里面的东西。
用通俗的话来说就是对同一个服务器上的不同目录进行访问。
更详细的介绍:这篇文章
如何配置虚拟主机1 进入子配置文件目录,/etc/httpd/conf.d/ 这里的内容基本上都是子配置文件,必须以.conf结尾,主配置文件中有说明。
2 在这里建立一个虚拟机文件 vhost.conf
3 创建对应的发布目录:
mkdir /var/www/vhost/news -p mkdir /var/www/vhost/video -p在对应的发布目录写对应的发布文件:记得要写成默认 index.html 因为是主配置文件中指定过的。
4 浏览器在哪里就在那里做本地解析(真机) 在真机中写入对应ip 的域名
5 测试
这里楼主也在配置虚拟机站点的时候出现了错误,所以写一个排错思路给大家分析错误原因。
排错思路: 1 先在客户端进行ping 对应域名,能ping通说明客户端没错,否则检查/etc/hosts 2 服务端是否授权vhost.conf 3 服务端的主配置文件 4 服务端的发布文件名,是否为默认发布文件 5 火墙是否有影响? Apache内部的访问控制 基于IP在主配置文件中
写入: <Directory "/var/www/html/test"> Order deny,allow ##列表读取顺序,后读取的列表会覆盖限度去内容的重复部分 Allow from 172.25.254.44 Deny from all </Directory>作为白名单用户:
1 需要在/etc/httpd/下创建,目的是方便管理。
htpasswd -cm .apache_auth admin c 创建 m md5 加密 可以--help看参数 .是隐藏文件 当已经创建好文件后,只用-m就行,不然会覆盖之前内容: htpasswd -m .apache_auth mac3 完成后重启服务。
4 输入ip,测试,发现需要登录才能访问,输入刚刚的用户和密码即可。
注意:因为浏览器有缓存记录,所以需要清理缓存,火狐浏览器默认是Ctrl+shift+Del
Apache支持的语言众多:html,php,python,perl等。
php1 首先需要下载安装php:yum install php -y
2 写一个php脚本:
3 修改httpd的主配置文件,在默认发布文件中添加index.php,因为按照顺序读取,所以要写道最前面。
CGI(Common Gateway Interface) 是WWW技术中最重要的技术之一,有着不可替代的重要地位。CGI是外部应用程序(CGI程序)与WEB服务器之间的接口标准,是在CGI程序和Web服务器之间传递信息的过程。CGI规范允许Web服务器执行外部程序,并将它们的输出发送给Web浏览器,CGI将Web的一组简单的静态超媒体文档变成一个完整的新的交互式媒体。
实验步骤:
1 我们可以打开apache官方手册查看:对应cgi示例
3 对脚本加执行权限chmod +x /var/www/html/cgi/index.cgi
4 要在子配置文件中对其授权服务————在web可执行脚本,我们可以在官方手册上找到。