基于linux下apache服务的部署,linuxapache部署
基于linux下apache服务的部署,linuxapache部署
######################1.apache服务简介#######################################
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部。
http 软件提供超文本传输协议
apache 同步阻塞模式 稳定(用于认证)
ndinx 异步非阻塞模式 高效(用于浏览)
apache服务:
http服务的默认端口为80
http中的默认文件为index.html;浏览器中http后的’/’=/var/www/html(默认目录);ftp后的’/’=/var/ftp
######################2.安装apache服务##########################################################3
yum install httpd -y ##安装 apache 服务软件包:
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# netstat -antlupe | grep httpd
tcp6 0 0 :::80 :::* LISTEN 0 27316 1679/httpd
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# ls
[root@localhost html]# vim index.html
h1是字体设置,放大加粗
[root@localhost html]# cat index.html
hello
浏览器:172.25.254.119
[root@localhost html]# vim test.html
[root@localhost html]# cat test.html
test
浏览器:172.25.254.119/test.html
################################3,http服务基本配置修改############################################
配置文件/etc/httpd/conf/httpd.conf
################(1)服务端口修改:
[root@localhost html]# vim /etc/httpd/conf/httpd.conf ##更改端口为8011
42 Listen 8011
[root@localhost html]# systemctl restart httpd ##重启
[root@localhost html]# netstat -antlupe | grep httpd ##查看端口
浏览器:172.25.254.119 ##会报错(需要修改防火墙支持端口)
[root@localhost html]# vim /etc/httpd/conf/httpd.conf ##改回原来端口80
Listen 80
[root@localhost html]# systemctl restart httpd
浏览器测试:
直接输入ip时默认端口为80,不能查看到内容,输入ip:8011时可以查看到内容。
##########2.更改默认发布目录
[root@node1 html]# vim /etc/httpd/conf/httpd.conf
修改端口为原端口80
[root@node1 html]# systemctl restart httpd
[root@node1 html]# mkdir /westos/html -p #建立目录/westos和之下的/html
[root@node1 html]# cd /westos/html
[root@node1 html]# vim index.html #编辑默认发布文件
[root@node1 html]# vim /etc/httpd/conf/httpd.conf
[root@node1 html]# systemctl restart httpd
在网页浏览:172.25.254.128
#############3.更改默认发布文件
vim /westos/html/test.html
vim /etc/httpd/conf/httpd.conf
编写:
DocumentRoot "/westos/html"
<Directory "/westos">
require all granted
DirectoryIndex test.html
</Directory>
[root@localhost html]# systemctl restart httpd
验证:浏览器:172.25.254.128 显示test's page
#############4.添加发布目录及文件
mkdir /westos/html/linux
vim /westos/html/linux/index.html
写入index's page
vim /westos/html/linux/test.html
写入test's page
验证:浏览器:172.25.254.107/linux,显示test's page
vim /etc/httpd/conf/httpd.conf #将/westos/html下的目录/linux也设置为可访问的目录以及里面的文件
验证:浏览器:172.25.254.107/linux ,显示index’s page
##################4.访问权限控制#############################################################
1.基于ip访问方式
[root@localhost ~]# cd /var/www/html/
[root@localhost html]# mkdir westos
[root@localhost html]# ls
index.html test.html westos
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
打开119 DocumentRoot "/var/www/html"
注释120 DocumentRoot "/westos/html"
121 <Directory "/var/www/html/westos">
122 Order Allow,Deny ##先读Allow后读Deny
123 Allow from All ##都可以
124 Deny from 172.25.254.71 ##不可以
125 </Directory>
##除了 172.25.254.71 登陆不成功,其余的都可以
[root@localhost html]# systemctl restart httpd
浏览器分别输入:172.25.254.119 ##登陆成功
172.25.254.71 ##登录失败
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
修改主配置文件/etc/httpd/conf/httpd.conf
浏览器:172.25.254.119
浏览器:172.25.254.71
[root@localhost html]# vim /etc/httpd/conf/httpd.conf
121 <Directory "/var/www/html/westos">
122 Order Deny,Allow ##先读deny,后读allow
123 Allow from 172.25.254.119 ##唯一一个可以
124 Deny from All ##不可以
125 </Directory>
[root@localhost html]# systemctl restart httpd
浏览器:172.25.254.119
172.25.254.71
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
浏览器:172.25.254.119
浏览器:172.25.254.71 ,就不可以得到结果
###########2.基于用户的访问控制
[root@localhost westos]# cd /etc/httpd
[root@localhost httpd]# ls
[root@localhost httpd]# htpasswd -cm apacheuser admin ##-cm新建apache用户并设定密码
[root@localhost httpd]# cat apacheuser ##查看apache的用户
[root@localhost httpd]# htpasswd -cm apacheuser tom ##-cm新建apache用户并设定密码
[root@localhost httpd]# cat apacheuser
##建立了两个用户后发现现在只有一个用户,admin用户被tom用户覆盖
[root@localhost httpd]# htpasswd -m apacheuser admin ##注意添加用户时要使用-m,否则-cm会覆盖原有的用户
[root@localhost httpd]# cat apacheuser
[root@localhost httpd]# vim /etc/httpd/conf/httpd.conf
注释掉之前写的
[root@localhost httpd]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos,需要用户和密码登录
##用admin用户和密码登录时可以看到文件内容
注意:用有效密码登陆后需要删除登陆密码的历史记录,否则其他用户也可以直接登录。
在配置文件中加入Require valid-user 是允许文件的所有用户登录。
###############5.apache的虚拟主机设置###########################################
虚拟主机允许您从一个 httpd 服务器同时为多个网站提供服务。在本节中 , 我们将了解基于名称的虚拟主机其中多个
主机名都指向同一个 IP 地址 , 但是 Web 服务器根据用于到达站点的主机名提供具有不同内容的不同网站。
在真机上:
[root@foundation68 ~]# vim /etc/hosts ##在访问主机进行域名解析
[root@foundation68 ~]# systemctl restart httpd ##重启http服务
可以在网页上浏览
可以看到,三个网页出现的内容都是一样的
在虚拟机上:
[root@localhost ~]# cd /etc/httpd
[root@localhost httpd]# ls
[root@localhost httpd]# cd conf.d/
[root@localhost conf.d]# ls
[root@localhost conf.d]# vim default.conf ##配置默认文件
[root@localhost conf.d]# mkdir /var/www/virtual/westos.com/news -p ##建立虚拟机主机默认发布的目录
[root@localhost conf.d]# mkdir /var/www/virtual/westos.com/music -p
[root@localhost conf.d]# vim /var/www/virtual/westos.com/news/index.html ##建立虚拟机主机默认发布的文件
[root@localhost conf.d]# vim /var/www/virtual/westos.com/music/index.html
[root@localhost conf.d]# vim news.conf
[root@localhost conf.d]# cp news.conf music.conf
[root@localhost conf.d]# vim music.conf
:%s/news/music/g ##将文件里所有的news换成music
[root@localhost conf.d]# systemctl restart httpd
在网页浏览www.westos.com
在网页浏览news.westos.com
在网页浏览music.westos.com
################6.自定义自签名证书###############################################
如果加密的通信非常重要,而经过验证的身份不重要,管理员可以通过生成 self-signed certificate 来避免与认证机构进行交互所带来的复杂性。使用 genkey 实用程序(通过 crypto-utils 软件包分发),生成自签名证书及其关联的私钥。为了简化起见,genkey 将在“正确”的位置( etc/pki/tls 目录)创建证书及其关联的密钥。相应地,必须以授权用户(root)身份运行该实用程序。
[root@localhost ~]# cd /etc/httpd/conf.d
[root@localhost conf.d]# yum install mod_ssl crypto-utils -y
[root@localhost conf.d]# systemctl restart httpd
[root@localhost conf.d]# genkey www.westos.com ##生成证书
[root@localhost conf.d]# vim /etc/httpd/conf.d/ssl.conf ##安装证书及其私钥
[root@localhost conf.d]# systemctl restart httpd
在网页浏览:https://www.westos.com/
##可以看到看到网址前面有一个小锁
########################7.apache证书网页重写############################################################
在真机上:
[root@foundation68 ~]# vim /etc/hosts
[root@foundation68 ~]# systemctl restart httpd
在虚拟机上:
[root@localhost conf.d]# cp news.conf login.conf
[root@localhost conf.d]# mkdir -p /var/www/virtual/westos.com/login/
[root@localhost conf.d]# vim /var/www/virtual/westos.com/login/index.html
[root@localhost conf.d]# vim login.conf
[root@localhost conf.d]# systemctl restart httpd
网页浏览:login.westos.com
##输入网址是前面没有加https时也会出现前面的锁
##########################8.php语言支持######################################
HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。https协议需要到ca申请证书,一般免费证书很少,需要交费。而http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议http和https使用的是完全不同的连接方式用的端口也不一样,前者是80,后者是443。http的连接很简单,是无状态的。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议 要比http协议安全。[root@node1 ~]# cd /var/www/html
[root@node1 html]# yum install php -y #下载php
[root@node1 html]# vim index.php #编写默认访问文件
- 1
- 2
- 3
文件内容如下:
[root@node1 html]# vim /etc/httpd/conf/httpd.conf #修改默认首先访问index.php
- 1
文件内容如下:
[root@node1 html]# systemctl restart httpd
- 1
在浏览器测试,可以看到php页面:
#####################9.通用网关接口(CGI)#########################################
通用网关接口 (CGI) 是网站上放置动态内容的最简单的方法。
CGI 脚本可用于许多目的 , 但是谨慎控制使用哪个 CGI 脚本
以及允许谁添加和运行这些脚本十分重要。编写质量差的 CGI
脚本可能为外部攻击者提供了破坏网站及其内容安全性的途径。
因此 , 在 Web 服务器级别和 SELinux 策略级别 , 都存在用于限
制 CGI 脚本使用的设置.
[root@localhost ~]# cd /var/www/html
[root@localhost html]# mkdir cgi
[root@localhost html]# ls
[root@localhost html]# vim cgi/index.cgi
[root@localhost html]# chmod +x cgi/index.cgi ##给cgi一个可执行文件
[root@localhost html]# ./cgi/index.cgi ##查看运行出来可看到的结果
[root@localhost html]# cd /etc/httpd/conf.d
[root@localhost conf.d]# vim default.conf
[root@localhost conf.d]# systemctl restart httpd
网页浏览:172.25.254.128/cgi/index.cgi
可以在网页看到运行脚本的结果
#########################10、搭建Discuz论坛#####################################
[root@localhost ~]# systemctl start mariadb ##先下载好mariadb,再开启服务
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# cd /var/www/html
[root@localhost html]# ls
下载一个Discuz_X3.2_SC_UTF8.zip论坛软件包到/var/www/html
[root@localhost html]# unzip Discuz_X3.2_SC_UTF8.zip ##解压软件包
[root@localhost html]# ls
[root@localhost html]# chmod 777 /var/www/html/upload/ -R ##要给upload一个可写权限
[root@localhost html]# yum install php-mysql -y
[root@localhost html]# systemctl restart httpd
在网页浏览:http://172.25.254.128/upload/install
注意:在安装数据库的时候要设定一个密码,否则会报错
登录用户
####################11.squid正向代理################################################
Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的
用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域
名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
squid可以做代理也可以做缓存。
squid不仅可以做正向代理,又可以做反向代理。
正向代理,squid后面是客户端,客户端上网要通过Squid去上;反向代理,squid后面是服务器,服务器返回给用户数据需
要走squid。
在真机上:(要保证可以上网)
[root@foundation68 Desktop]# yum install squid -y
[root@foundation68 Desktop]# vim /etc/squid/squid.conf
[root@foundation68 Desktop]# systemctl start squid
[root@foundation68 Desktop]# ping www.baidu.com
在虚拟机上的网页浏览:www.baidu.com ##设置
##可以在不能上网的虚拟机打开百度,是因为它缓存了主机上的网页。
###################12.squid反向代理#######################################
在server虚拟机:IP=172.25.254.228(充当西安分客服端)
[root@xian ~]# yum install squid -y
[root@xian ~]# systemctl start squid
[root@xian ~]# vim /etc/squid/squid.conf
[root@xian ~]# systemctl restart squid
[root@xian ~]# systemctl stop firewalld
在desktop虚拟机:(充当深圳总客服端)
[root@shenzhen ~]# cd /var/www/html
[root@shenzhen html]# vim index.html
[root@shenzhen html]# systemctl restart httpd
[root@shenzhen html]# vim /etc/httpd/conf/httpd.conf
[root@shenzhen html]# systemctl restart httpd
在网页浏览:http://172.25.254.228/ ##设置里关掉上一步开启的 (充当客户端)
##这样用客户端就可以看到想要看到的内容,并且快速又方便。
注意:在所有实验中,httpd服务要处于打开状态,防火墙处于关闭状态,这样在网页上才能查看到内容。
评论暂时关闭