基于Linux下的apache Web 服务
什么是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 服务相关推荐
- linux 怎么配置apache,在Linux下配置Apache Web服务
<在Linux下配置Apache Web服务>由会员分享,可在线阅读,更多相关<在Linux下配置Apache Web服务(10页珍藏版)>请在人人文库网上搜索. 1.在Lin ...
- linux下搭建基本web服务
服务端配置: 1.安装一个可以提供Web功能软件 [root@server0 ~]# yum -y install httpd 2.启动httpd服务 [root@server0 ~]# system ...
- Linux下配置Apache虚拟主机(基于IP地址)
Linux下配置Apache虚拟主机(基于IP地址) 一.虚拟主机 虚拟主机,又称虚拟服务器,是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术.虚拟主机之间完全独立,并可 ...
- Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站
Linux常用命令下,以及再CentOS7下搭建apache网站服务,以及同一服务器上搭建第二个网站 Linux 常用命令ls -l 以长格式显示-a 显示.. 和 .-A 不显示 . 和 ..-d ...
- Linux下搭建Apache服务器
Linux下搭建Apache服务器(完整版) 什么是Apache? Apache Licence是著名的非盈利开源组织Apache采用的协议.该协议和BSD类似,同样鼓励代码共享和尊重原作者的著作权, ...
- LINUX下的APACHE的配置
今天写一下LINUX下的APACHE的配置方法. APACHE是作为WEB服务器的.它的优点在于用缓存方式来加快网页的搜索速度. APACHE缺省只支持静态网页 LINUX下有APACHE的RPM包 ...
- linux下安装apache与php;Apache+PHP+MySQL配置攻略
1.apache 在如下页面下载apache的for Linux 的源码包 http://www.apache.org/dist/httpd/; 存至/home/xx目录,xx是自建文件 ...
- linux隐藏版本信息,Linux下隐藏Apache版本号信息
利用linux搭建服务器的时候,如何隐藏自己Apache的版本号呢?或者连Apache名字直接隐藏,让别有用心的不知道自己网站用的是什么web服务器?至于为什么隐藏版本号,因为网上有很多教程都是关于A ...
- 轻松实现基于Heartbeat的高可用web服务集群
高可用集群就是为了保证某项服务能够时时在线,我们可以通过几个9来衡量一个高可用集群提供服务的稳定性,例如5个9的高可用集群必须保证服务一年在线的时间占99.999%,也就是说一年的时间中仅允许服务电线 ...
- 在Linux下进行Apache+tomcat整合
今天为大家介绍如何在Linux下进行Apache+tomcat整合,虚拟机版本是Redhat5,ip地址为192.168.1.12,实验步骤如下: 一 安装Jdk 二 安装Apache 三 安装tom ...
最新文章
- R语言使用ggplot2包的快速可视化函数qplot绘制分组箱图(jitter、分组颜色配置)实战
- Oracle Database Appliance ODA开箱视频
- Linux 初始root密码设置
- osg渲染到纹理技术(二)
- 田亮:坚信大数据的变革力量
- Numpy.where()
- INCEPTION 编译过程报错 make[2]: * [sql/CMakeFiles/sql.dir/sql_yacc.cc.o] Error
- python从入门到放弃pdf下载-《Python3从入门到放弃》视频教程
- 移动端拖拽(模块化开发,触摸事件,webpack)
- 对计算机网络的认识400字,对计算机网络的初步认识
- Vulnhub_Noob
- rsync --exclude或者--exclude-from的路径问题
- UE4 关闭屏幕显示信息响应
- 在线CAD平台,MxCAD云图 2021.01.20更新,在线CAD软件
- 高精度地图,从入门到入行
- Hadoop随堂练习
- python趣味入门——写几个常玩的游戏
- 工程制图计算机考试题库,工程制图—考试题库及答案(106页)-原创力文档
- Android框架之路——聊天Demo实现
- 【C++】vector模拟实现
热门文章
- 孪生再世代表数字几_正文 第六百一十七章 原来是孪生姐妹?
- 爬虫需谨慎,你不知道的爬虫与反爬虫套路!
- java 工具类_16 个有用的的Java工具类(小结)
- linux硬盘的两个分区合并_linux新加硬盘合并
- matlab实现退化模型,数字图像处理Matlab退化模型示例(example0507).docx
- 用爬虫抓取新浪微博粉丝
- 2021年真正还能够用的一键制作词云图网站
- 攻防世界_moile
- Visual Studio安装以及增加工具集C盘占用问题
- 中科大计算机电子信息,中国科学技术大学电子工程与信息科学系