什么是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. cached过高导致内存溢出 java head space
  2. mysql 5.7.14编译安装_源码编译安装mysql-5.7.14-阿里云开发者社区
  3. Eclipse创建java webproject配置Tomacat和JDK
  4. 110. Balanced Binary Tree
  5. mysql sqlsugar_【开源框架】SqlSugarRepository 全库ORM 正式发布
  6. 这几天关心加密的人很多
  7. MSSQL2005 活动进程等待类型说明
  8. python入门安装
  9. linux+shell+解压命令,linux shell解压命令
  10. FFmpeg编解码ADPCM_*格式音频
  11. 打开虚拟机 电脑自动重启解决办法
  12. Unity 2D人物移动实现
  13. Selection dont contain a main type
  14. 为什么招聘单位都要求你有ITIL证书,你知道吗?
  15. 使用浏览器访问服务器端页面
  16. ubuntu 14.04开机出现错误“Error found when loading /root/.profile”解决(root用户登录时才会出现)
  17. 【VIOLA】三岁筱兮: 一喷一醒然,再接再砺乃
  18. mpos判断条件由接口返回
  19. 经典CNN结构之AlexNet 复兴号角
  20. (附源码)计算机毕业设计SSM基于web的图书借阅管理系统

热门文章

  1. 蓝屏代码stop:0X000000EA(0X85E286B8,0X8635F210,0XF7A53CBC,0X00000001)NV4_DISP是什么意思?
  2. walsh64码 matlab,实验7 Walsh码及单用户CDMA系统直接序列扩频仿真
  3. Wireshark抓包详细分析
  4. XCTF_MOBILE16_boomshakalaka-3
  5. cocos 添加遮罩后白屏_Cocos2dx3.2 Crazy Tetris 由于遮罩引起的部分手机白屏
  6. 动态数据的表格页面展示
  7. C语言习题带答案和解析
  8. PageRank实践-博客园用户PageRank排名
  9. prisma1.0实践
  10. windows10搜索卡死(有出现Cortana的请看这篇文章)