什么是apache?

APACHE就是一个网络服务器,这个服务器侦听一个TCP端口,一般是80,对端口收到的命令进行解释,然后提交一些结果。Apache是专门用来提供HTTP服务的,以及相关配置的(例如虚拟主机等)。


apache与nginx的区别

apache 稳定;同步阻塞模式(前面的人有优先权等待的人,后面的人被阻塞)
nginx 高效;异步非阻塞模式(前面的人和后面的人可以同时访问)


apache基本配置

1、清理实验环境:

rpm -e httpd php php-mysql
rm -fr /var/www/
![这里写图片描述](https://img-blog.csdn.net/20180531175422456?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmdrYW5h/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

2、安装apache:

yum install httpd -y   //安装
systemctl start httpd  //开启http服务
systemctl stop firewalld //关闭防火墙
netstat -antlupe | grep httpd //查看httpd的端口
vim /var/www/html/index.html  //默认发布文件编辑,其中,/var/www/html为默认发布目录hello world  //内容



文件index.html内容(其中<h1>是改变字体大小的):

浏览器测试:看到的内容就是/var/www/html/index.html的内容


修改端口后的查询方式

vim /etc/httpd/conf/httpd.conf //编辑配置文件listen 8080;  //将原来的80改为现在的8080;
systemctl restart httpd  //重启服务



浏览器查询(这里的端口已经不是默认的了,需要指定端口):

将端口恢复至80,不要影响后面的实验;


重新指定默认发布目录

[root@foundation174 html]# mkdir /westos/html -p //建立新的目录
[root@foundation174 html]# cd /westos/html/
[root@foundation174 html]# pwd  //查询当前目录
/westos/html
[root@foundation174 html]# vim index.html  //编辑文件内容
[root@foundation174 html]# vim /etc/httpd/conf/httpd.conf //编辑配置文件在119行附近,重新修改目录:121 DocumentRoot "/westos/html" //修改默认发布目录122 <Directory "/westos">123         require all granted124 </Directory>
[root@foundation182 html]# systemctl restart httpd //重启服务

编辑配置文件的内容:

指定默认发布目录/westos/html后,编辑发布文件index.html:

浏览器查询:


重新指定默认发布文件

vim /etc/httpd/conf/httpd.conf //编辑配置文件121 DocumentRoot "/westos/html"122 <Directory "/westos/html/linux">123         DirectoryIndex index.html124 </Directory>125 <Directory "/westos">126         require all granted127         DirectoryIndex index.html128 </Directory>
systemctl restart httpd //重启服务

配置文件编写内容:


指定发布文件/westos/html/linux/index.html 内容:

浏览器查询:(linux目录里2个文件:index.html和test.html,因为指定的文件为index.html,所以不会显示test.html的内容)


基于ip的访问控制

[root@desktop ~]# systemctl start httpd  //开启httpd服务
[root@desktop ~]# systemctl stop firewalld //关闭火墙
[root@desktop ~]# vim /etc/httpd/conf/httpd.conf //编辑配置文件,恢复默认发布目录;恢复默认发布目录为/var/www/html
119 DocumentRoot "/var/www/html"
120
121 #DocumentRoot "/westos/html"
[root@desktop ~]# systemctl restart httpd //重启服务
[root@desktop ~]# cd /var/www/html/
[root@desktop html]# mkdir westos
[root@desktop html]# ls
index.html  test.html  westos
[root@desktop html]# cd westos/



[root@desktop ~]# vim /etc/httpd/conf/httpd.conf//编辑文件:对某些ip进行访问控制;122 <Directory "/var/www/html/westos">123         Order Allow,Deny    //先读取白名单的内容,后读取黑名单的内容124         Allow from All   //白名单:允许所有ip进行访问125         Deny from 172.25.254.74 //黑名单,禁止ip为172.25.254.74进行访问;126 </Directory>
[root@desktop ~]# systemctl restart httpd //重启服务

配置文件编辑内容:

用ip为172.25.254.74的主机浏览器进行访问:(被拒绝)

[root@desktop ~]# vim /etc/httpd/conf/httpd.conf
122 <Directory "/var/www/html/westos">
123         Order Deny,Allow  //先读取黑名单的内容,后读取白名单的内容
124         Allow from 172.25.254.74 //只允许ip为172.25.254.74主机进行访问
125         Deny from ALL  //禁止所有用户进行访问
126 </Directory>
[root@desktop ~]# systemctl restart httpd //重启服务

配置文件编辑:

用ip为172.25.254.74的主机浏览器进行访问:(允许)


基于用户的访问控制

A:指定单个用户进行访问
准备实验环境:注释刚刚ip的设定

[root@desktop httpd]# htpasswd -cm apacheuser tom  //修改tom的密码
New password:
Re-type new password:
Adding password for user tom
[root@desktop httpd]# htpasswd -m apacheuser admin //加上-c会覆盖之前的内容
New password:
Re-type new password:
Adding password for user admin
[root@desktop httpd]# cat apacheuser  //查看用户及密码信息
tom:$apr1$JI/YD8Pi$RnrExjesN/s.8tPjOfnmO.
admin:$apr1$UsLV8vRU$cqTY/f.YHS5g5XC127Tix/
[root@desktop ~]# vim /etc/httpd/conf/httpd.conf //编辑配置文件
129 <Directory "/var/www/html/westos">
130         AuthUserFile /var/www/html/westos/apacheuser  //指定文件,这里的文件是apacheuser的绝对路径
131         AuthName "Please input your name and your passwd!!"  //网页提示语
132         AuthType basic  //基本认证(认证类型)
133         Require user admin   //指定用户
[root@desktop ~]# systemctl restart httpd  //重启服务




配置文件/etc/httpd/conf/httpd.conf内容:

浏览器查询(会出现一个用户登录认证界面):

现在我们输入admin(刚刚指定可以登录的用户)和密码:是可以看到内容的

那么输入tom(其余用户)和密码:是不能登陆成功的

B:指定文件的所有用户

[root@desktop ~]# vim /etc/httpd/conf/httpd.conf  //编辑配置文件
129 <Directory "/var/www/html/westos">
130         AuthUserFile /etc/httpd/apacheuser
131         AuthName "Please input your name and your passwd!!"
132         AuthType basic
134         Require valid-user  //所有apacheuser文件中存在的所有用户
[root@desktop ~]# systemctl restart httpd  //重启服务

文件内容:

浏览器查询(所有用户都试一遍),当然都可以看见内容了;


用一个ip发布多个节点的测试页

本次实验用真机进行浏览器访问测试(浏览器在哪台主机,ip就是这台主机的ip)

1、首先完成本地解析:

vim /etc/hosts  //本地解析文件172.25.254.174 www.westos.com music.westos.com news.westos.com



2、在虚拟机desktop完成以下操作(完成apache配置的主机):

[root@desktop conf.d]# vim /etc/httpd/conf.d/default.conf //编辑默认网页发布的文件1 <VirtualHost _default_:80>2         DocumentRoot /var/www/html 3         CustomLog "logs/defult.log" combined 4 </VirtualHost>


[root@desktop conf.d]# mkdir /var/www/virtual/westos.com/news -p  //建立文件
[root@desktop conf.d]# mkdir /var/www/virtual/westos.com/music -p
[root@desktop conf.d]# cd /var/www/virtual/westos.com
[root@desktop westos.com]# cd news
[root@desktop news]# vim index.html  //编辑news.westos.com发布内容编辑内容:我是:/var/www/virtual/westos.com/news/index.html
[root@desktop westos.com]# cd music
[root@desktop news]# vim index.html //编辑music.westos.com发布内容编辑内容:我是:/var/www/virtual/westos.com/music/index.html



[root@desktop conf.d]# vim news.conf //编辑news.westos.com发布内容1 <VirtualHost *:80>2         ServerName news.westos.com  3         DocumentRoot "/var/www/virtual/westos.com/news/"4         CustomLog "logs/news.log" combined5 </VirtualHost>6 <Directory "/var/www/virtual/westos.com/news/">7         Require all granted8 </Directory>

[root@desktop conf.d]# cp new.conf music.conf //复制一份
[root@desktop conf.d]# vim music.conf //更改所有的news为music :%s/news/music/g
[root@desktop conf.d]# systemctl restart httpd  //重启




浏览器(配置本地解析的那台主机的浏览器)测试:



如果三个域名出现各自的文件,那么操作成功;


自定义自签名证书

[root@desktop ~]# yum install mod_ssl -y
[root@desktop ~]# yum install crypto-utils.x86_64 -y
[root@desktop ~]# genkey www.westos.com //执行此命令后进入自定义设置界面




执行genkey www.westos.com 后进入自定义设置界面:




完成之后,进入选择:

接下来,谈些自定义信息:

完成一系列设置之后,替换证书和密钥:

[root@desktop ~]# vim /etc/httpd/conf.d/ssl.conf  //安装证书及其私钥     100 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt107 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key
[root@desktop ~]# systemctl restart httpd  //重启服务

密钥和证书的地址,可以在genkey命令后面找到;

编辑替换原来的证书和密钥:



打开浏览器,输入 https://www.westos.com(点击锁的样式,看证书是否是自定义的;)




查询证书,会发现,证书信息是自己定义的:


网页重写
在真机的地址解析添加:在172.25.254.174后面添加login.westos.com

//在虚拟机完成以下操作:
[root@desktop conf.d]# cp new.conf login.conf
[root@desktop conf.d]# mkdir -p /var/www/virtual/westos.com/login/
[root@desktop conf.d]# vim /var/www/virtual/westos.com/login/index.html编辑内容:我是:/var/www/virtual/westos.com/login/index.html
[root@desktop conf.d]# vim login.conf1 <VirtualHost *:443>              //建立一个虚拟主机2         ServerName login.westos.com3         DocumentRoot "/var/www/virtual/westos.com/login/"4         CustomLog "logs/login.log" combined5         SSLEngine on                 //功能开启6         SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt7         SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key8 </VirtualHost>9 <Directory "/var/www/virtual/westos.com/login/">10         Require all granted11 </Directory>12 <VirtualHost *:80>      //自动转换13         ServerName login.westos.com14         RewriteEngine on15         RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301] //^(/.*)$客户主机在浏览器所写入的字符; https://%{HTTP_HOST}$1 客户主机在浏览器所写入的内容去掉协议的部分;redirect=301 代表临时转换16 </VirtualHost>
[root@desktop conf.d]# systemctl restart httpd  //重启服务

/etc/httpd/conf.d/login.conf 的内容:

/var/www/virtual/westos.com/login/index.html的内容:

浏览器查询,输入域名login.westos.com


php语言支持

[root@desktop html]# yum install php -y  //安装软件
[root@desktop html]# vim index.php  //编辑php类型文本1 <?php2         phpinfo();3 ?>
[root@desktop html]# vim /etc/http/conf/httpd.conf  //在配置文件将php添加在html之前,让系统访问180     DirectoryIndex index.php index.html
[root@desktop html]# systemctl restart httpd  //重启服务


文件index.php内容:

配置文件编辑(调整顺序,在配置文件将php添加在html之前,让系统先于php访问):

浏览器查询:


cgi

[root@desktop conf.d]# cd /var/www/html
[root@desktop html]# mkdir cgi  新建目录
[root@desktop html]# vim cgi/index.cgi  //编辑cgi脚本1 #!/usr/bin/perl2 print "Content-type: text/html\n\n";3 print `date`;   //显示日期


[root@desktop html]# ll cgi/index.cgi
-rw-r--r-- 1 root root 67 May 27 02:13 cgi/index.cgi
[root@desktop html]# chmod +x cgi/index.cgi  //赋予可执行权限
[root@desktop html]# ./cgi/index.cgi  //执行脚本
Content-type: text/htmlSun May 27 02:14:16 EDT 2018


[root@desktop html]# cd /etc/httpd/conf.d
[root@desktop conf.d]# vim default.conf                   1 <VirtualHost _default_:80>2         DocumentRoot /var/www/html3         CustomLog "logs/defult.log" combined4 </VirtualHost>5 <Directory "/var/www/html/cgi">6         Options +ExecCGI7         AddHandler cgi-script .cgi8         DirectoryIndex index.cgi9 </Directory>
[root@desktop conf.d]# systemctl restart httpd




浏览器查询,输入172.25.254.174/cgi,会看到浏览器显示的是编写的脚本执行结果


squid正向代理

确保有一台主机可以上网(真机),另一台主机想要上网必须通过有网的主机缓存在虚拟机里设置网络,确保虚拟机可以连接到网络;
yum install squid -y
vim /etc/sysconfig/nework-scripts/ifcfg-eth0GATE=172.25.254.74DNS1=114.114.114.114
systemctl restart network
vim /etc/squid/squid.conf56 http_access allow all  62 cache_dir ufs /var/spool/squid 100 16 256 //取消这行的注释
systemctl start squid 输入百度的网址,测试可以看到网页,但是真实访问的不是真实的网页,而是172.25.254.114这台主机的缓存;

浏览器设置网络代理:

preferences–>Advanced–>Network–>Settings–>Manual proxy configuration
HTTP Proxy: 172.25.254.74 (可以上网的主机) Port:3128
选中 use this proxy server for all protocols 这一项;


squid反向代理
实现了两次加速;

实验需要2个主机:
主机作为服务端,相当于深圳;server作为中介,相当于西安;
主机(服务端):设置好httpd服务

server:yum install squid -y //安装squid;systemctl stop firewalld //关闭火墙vim /etc/squid/suqid.conf 56 http_access allow all59 http_port 80 vhost vport  //虚拟主机和虚拟端口60 cache_peer 172.25.254.114 parent 80 0 proxy-only //通过80端口缓存自己没有的东西systemctl start squid

打开浏览器,关闭网络代理:preferences–>Advanced–>Network–>Settings–>No Proxy
在desktop(客户端)浏览器中查询ip:172.25.254.247(server),可以看到apache的发布内容;

基于Linux下的apache Web 服务相关推荐

  1. linux 怎么配置apache,在Linux下配置Apache Web服务

    <在Linux下配置Apache Web服务>由会员分享,可在线阅读,更多相关<在Linux下配置Apache Web服务(10页珍藏版)>请在人人文库网上搜索. 1.在Lin ...

  2. linux下搭建基本web服务

    服务端配置: 1.安装一个可以提供Web功能软件 [root@server0 ~]# yum -y install httpd 2.启动httpd服务 [root@server0 ~]# system ...

  3. Linux下配置Apache虚拟主机(基于IP地址)

    Linux下配置Apache虚拟主机(基于IP地址) 一.虚拟主机 虚拟主机,又称虚拟服务器,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术.虚拟主机之间完全独立,并可 ...

  4. Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站

    Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站 Linux 常用命令ls -l 以长格式显示-a 显示.. 和 .-A 不显示 . 和 ..-d ...

  5. Linux下搭建Apache服务器

    Linux下搭建Apache服务器(完整版) 什么是Apache? Apache Licence是著名的非盈利开源组织Apache采用的协议.该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权, ...

  6. LINUX下的APACHE的配置

    今天写一下LINUX下的APACHE的配置方法. APACHE是作为WEB服务器的.它的优点在于用缓存方式来加快网页的搜索速度. APACHE缺省只支持静态网页 LINUX下有APACHE的RPM包 ...

  7. linux下安装apache与php;Apache+PHP+MySQL配置攻略

    1.apache   在如下页面下载apache的for Linux 的源码包    http://www.apache.org/dist/httpd/;   存至/home/xx目录,xx是自建文件 ...

  8. linux隐藏版本信息,Linux下隐藏Apache版本号信息

    利用linux搭建服务器的时候,如何隐藏自己Apache的版本号呢?或者连Apache名字直接隐藏,让别有用心的不知道自己网站用的是什么web服务器?至于为什么隐藏版本号,因为网上有很多教程都是关于A ...

  9. 轻松实现基于Heartbeat的高可用web服务集群

    高可用集群就是为了保证某项服务能够时时在线,我们可以通过几个9来衡量一个高可用集群提供服务的稳定性,例如5个9的高可用集群必须保证服务一年在线的时间占99.999%,也就是说一年的时间中仅允许服务电线 ...

  10. 在Linux下进行Apache+tomcat整合

    今天为大家介绍如何在Linux下进行Apache+tomcat整合,虚拟机版本是Redhat5,ip地址为192.168.1.12,实验步骤如下: 一 安装Jdk 二 安装Apache 三 安装tom ...

最新文章

  1. R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter、分组颜色配置)实战
  2. Oracle Database Appliance ODA开箱视频
  3. Linux 初始root密码设置
  4. osg渲染到纹理技术(二)
  5. 田亮:坚信大数据的变革力量
  6. Numpy.where()
  7. INCEPTION 编译过程报错 make[2]: * [sql/CMakeFiles/sql.dir/sql_yacc.cc.o] Error
  8. python从入门到放弃pdf下载-《Python3从入门到放弃》视频教程
  9. 移动端拖拽(模块化开发,触摸事件,webpack)
  10. 对计算机网络的认识400字,对计算机网络的初步认识
  11. Vulnhub_Noob
  12. rsync --exclude或者--exclude-from的路径问题
  13. UE4 关闭屏幕显示信息响应
  14. 在线CAD平台,MxCAD云图 2021.01.20更新,在线CAD软件
  15. 高精度地图,从入门到入行
  16. Hadoop随堂练习
  17. python趣味入门——写几个常玩的游戏
  18. 工程制图计算机考试题库,工程制图—考试题库及答案(106页)-原创力文档
  19. Android框架之路——聊天Demo实现
  20. 【C++】vector模拟实现

热门文章

  1. 孪生再世代表数字几_正文 第六百一十七章 原来是孪生姐妹?
  2. 爬虫需谨慎,你不知道的爬虫与反爬虫套路!
  3. java 工具类_16 个有用的的Java工具类(小结)
  4. linux硬盘的两个分区合并_linux新加硬盘合并
  5. matlab实现退化模型,数字图像处理Matlab退化模型示例(example0507).docx
  6. 用爬虫抓取新浪微博粉丝
  7. 2021年真正还能够用的一键制作词云图网站
  8. 攻防世界_moile
  9. Visual Studio安装以及增加工具集C盘占用问题
  10. 中科大计算机电子信息,中国科学技术大学电子工程与信息科学系