Linux---基于apache的基本配置,虚拟主机设置,自定义apache证书,搭建论坛以及squid的正反向代理
Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上 ,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。同时Apache音译为阿帕奇。
一.Apache 基本配置
1.安装http服务
配置yum源
[[email protected] ~]# vim /etc/yum.repos.d/rhel_dvd.repo
[[email protected] ~]# yum clean all ##清空缓存
[[email protected] ~]# yum install httpd -y ##安装httpd
[[email protected] ~]# cd /var/www/html
[[email protected] html]# systemctl stop firewalld ##关闭防火墙[[email protected] html]# vim index.html
在网页浏览:172.25.254.128
在网页浏览:172.25.254.128/test.html
2.端口更改
[[email protected] ~]# netstat -antlupe | grep httpd ##查询httpd监听端口
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf ##修改主配置文件
##原始监听端口为80
##将监听端口更改为8090
[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# netstat -antlupe | grep httpd ##查看监听端口信息
在网页浏览:172.25.254.128:8090/
##可以看到将端口更改后,以前在80端口上的信息也可以看到。
3.网页配置
[[email protected] html]# mkdir /westos/html -p
[[email protected] html]# cd /westos/html
[[email protected] html]# vim index.html
[[email protected] html]# vim /etc/httpd/conf/httpd.conf
[[email protected]st html]# systemctl restart httpd
在网页浏览:172.25.254.128
[[email protected] html]# vim test.html
[[email protected] html]# vim /etc/httpd/conf/httpd.conf
[[email protected] html]# systemctl restart httpd
[[email protected] html]# ls
index.html test.html
[[email protected] html]# pwd
/westos/html
[[email protected] html]# mkdir linux
[[email protected] html]# ls
index.html linux test.html
[[email protected] html]# cd linux
[[email protected] linux]# vim index.html
[[email protected] linux]# vim test.html
[[email protected] linux]# vim /etc/httpd/conf/httpd.conf
##DirectoryIndex index.html 默认主页名称
[[email protected] linux]# systemctl restart httpd
在网页浏览:172.25.254.128/linux
二、配置基于用户的身份验证
Apache 无格式文件用户身份验证
在此配置中 , 用户账户和密码存储在本地 .htpasswd 文件中。
处于安全原因 , 该文件不能保存在网站的 DocumentRoot 中 ,
而应保存在 Web 服务器不提供服务的一些目录中。
1.设定其他用户的访问限制
允许所有人访问
[[email protected] westos]# systemctl start httpd
[[email protected] westos]# systemctl stop firewalld
[[email protected] ~]# cd /var/www/html
[[email protected] html]# ls
[[email protected] html]# mkdir westos
[[email protected] html]# ls
[[email protected] html]# cd westos/
[[email protected] westos]# vim index.html
[[email protected] westos]# vim /etc/httpd/conf/httpd.conf
##修改主配置文件时要将之前添加进去的所有内容都删除,再将注释的内容还原
##优先级,谁在前,先读谁
[[email protected] westos]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos
用虚拟机网页浏览:http://172.25.254.128/westos
禁止所有人访问
[[email protected] westos]# vim /etc/httpd/conf/httpd.conf
[[email protected] westos]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos
用虚拟机网页浏览:172.25.254.128/westos
2.允许指定用户访问,且需要认证
[[email protected] westos]# cd /etc/httpd
[[email protected] httpd]# ls
[[email protected] httpd]# htpasswd -cm apacheuser admin ##-cm新建apache用户并设定密码
[[email protected] httpd]# cat apacheuser ##查看apache的用户
[[email protected] httpd]# htpasswd -cm apacheuser tom ##-cm新建apache用户并设定密码
[[email protected] httpd]# cat apacheuser
##建立了两个用户后发现现在只有一个用户,admin用户被tom用户覆盖
[[email protected] httpd]# htpasswd -m apacheuser admin ##注意添加用户时要使用-m,否则-cm会覆盖原有的用户
[[email protected] httpd]# cat apacheuser
[[email protected] httpd]# vim /etc/httpd/conf/httpd.conf
注释掉之前写的
[[email protected] httpd]# systemctl restart httpd
用真机网页浏览:172.25.254.128/westos
##需要用户和密码登录
##用admin用户和密码登录时可以看到文件内容
##用tom用户登录时,一直登录不进去
注意:用有效密码登陆后需要删除登陆密码的历史记录,否则其他用户也可以直接登录。
在配置文件中加入Require valid-user 是允许文件的所有用户登录。
三.apache的虚拟主机设置
虚拟主机允许您从一个 httpd 服务器同时为多个网站提供服务。
在本节中 , 我们将了解基于名称的虚拟主机其中多个主机名都指
向同一个 IP 地址 , 但是 Web 服务器根据用于到达站点的主机名
提供具有不同内容的不同网站。
在真机上:
[[email protected] ~]# vim /etc/hosts ##在访问主机进行域名解析
[[email protected] ~]# systemctl restart httpd ##重启http服务
可以在网页上浏览
可以看到,三个网页出现的内容都是一样的
在虚拟机上:
[[email protected] ~]# cd /etc/httpd
[[email protected] httpd]# ls
[[email protected] httpd]# cd conf.d/
[[email protected] conf.d]# ls
[[email protected] conf.d]# vim default.conf ##配置默认文件
[[email protected] conf.d]# mkdir /var/www/virtual/westos.com/news -p ##建立虚拟机主机默认发布的目录
[[email protected] conf.d]# mkdir /var/www/virtual/westos.com/music -p
[[email protected] conf.d]# vim /var/www/virtual/westos.com/news/index.html ##建立虚拟机主机默认发布的文件
[[email protected] conf.d]# vim /var/www/virtual/westos.com/music/index.html
[[email protected] conf.d]# vim news.conf
[[email protected] conf.d]# cp news.conf music.conf
[[email protected] conf.d]# vim music.conf
:%s/news/music/g ##将文件里所有的news换成music
[[email protected] conf.d]# systemctl restart httpd
在网页浏览www.westos.com
在网页浏览news.westos.com
在网页浏览music.westos.com
四.自定义自签名证书
如果加密的通信非常重要 , 而经过验证的身份不重要 , 管理员可
以通过生成 self-signed certificate 来避免与认证机构进行交互
所带来的复杂性使用 genkey 实用程序 ( 通过 crypto-utils 软件包分发 ),
生成自签名证书及其关联的私钥。为了简化起见 ,genkey 将在
“正确”的位置 (/etc/pki/tls 目录 ) 创建证书及其关联的**。
相应地 , 必须以授权用户 (root) 身份运行该实用程序。
[[email protected] ~]# cd /etc/httpd/conf.d
[[email protected] conf.d]# yum install mod_ssl crypto-utils -y
[[email protected] conf.d]# systemctl restart httpd
[[email protected] conf.d]# genkey www.westos.com ##生成证书
[[email protected] conf.d]# vim /etc/httpd/conf.d/ssl.conf ##安装证书及其私钥
[[email protected] conf.d]# systemctl restart httpd
在网页浏览:https://www.westos.com/
##可以看到看到网址前面有一个小锁
五.apache证书网页重写
在真机上:
[[email protected] ~]# vim /etc/hosts
[[email protected] ~]# systemctl restart httpd
在虚拟机上:
[[email protected] conf.d]# cp news.conf login.conf
[[email protected] conf.d]# mkdir -p /var/www/virtual/westos.com/login/
[[email protected] conf.d]# vim /var/www/virtual/westos.com/login/index.html
[[email protected] conf.d]# vim login.conf
[[email protected]ost conf.d]# systemctl restart httpd
网页浏览:login.westos.com
##输入网址是前面没有加https时也会出现前面的锁
六.php语言支持
[[email protected] conf.d]# yum install php -y[[email protected] conf.d]# vim /var/www/html/index.php ##在默认发布目录下建立文件
[[email protected] conf.d]# systemctl restart httpd ##重启http服务后,会生成/etc/httpd/conf.d/php.conf文件
[[email protected] html]# vim /etc/httpd/conf/httpd.conf
[[email protected] conf.d]# systemctl restart httpd
网页浏览:172.25.254.128
七.通用网关接口(CGI)
通用网关接口 (CGI) 是网站上放置动态内容的最简单的方法。
CGI 脚本可用于许多目的 , 但是谨慎控制使用哪个 CGI 脚本
以及允许谁添加和运行这些脚本十分重要。编写质量差的 CGI
脚本可能为外部攻击者提供了破坏网站及其内容安全性的途径。
因此 , 在 Web 服务器级别和 SELinux 策略级别 , 都存在用于限
制 CGI 脚本使用的设置.
[[email protected] ~]# cd /var/www/html
[[email protected] html]# mkdir cgi
[[email protected] html]# ls
[[email protected] html]# vim cgi/index.cgi
[[email protected] html]# chmod +x cgi/index.cgi ##给cgi一个可执行文件
[[email protected] html]# ./cgi/index.cgi ##查看运行出来可看到的结果
[[email protected] html]# cd /etc/httpd/conf.d
[[email protected] conf.d]# vim default.conf
写入:
[[email protected] conf.d]# systemctl restart httpd
网页浏览:172.25.254.128/cgi/index.cgi
##可以在网页看到运行脚本的结果
八.搭建Discuz论坛
[[email protected] ~]# systemctl start mariadb ##先下载好mariadb,再开启服务
[[email protected] ~]# systemctl start httpd
[[email protected] ~]# cd /var/www/html
[[email protected] html]# ls
下载一个Discuz_X3.2_SC_UTF8.zip论坛软件包到/var/www/html
[[email protected] html]# unzip Discuz_X3.2_SC_UTF8.zip ##解压软件包
[[email protected] html]# ls
[[email protected] html]# chmod 777 /var/www/html/upload/ -R ##要给upload一个可写权限
[[email protected] html]# yum install php-mysql -y
[[email protected] html]# systemctl restart httpd
在网页浏览:http://172.25.254.128/upload/install
注意:在安装数据库的时候要设定一个密码,否则会报错
##登录用户就可以了
九.squid正向代理
Squid cache(简称为Squid)是一个流行的*软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相关请求来提高Web服务器的速度,到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。Squid主要设计用于在Unix一类系统运行。
squid可以做代理也可以做缓存。
squid不仅可以做正向代理,又可以做反向代理。
正向代理,squid后面是客户端,客户端上网要通过Squid去上;反向代理,squid后面是服务器,服务器返回给用户数据需要走squid。
在真机上:(要保证可以上网)
[[email protected] Desktop]# yum install squid -y
[[email protected] Desktop]# vim /etc/squid/squid.conf
[[email protected] Desktop]# systemctl start squid
[[email protected] Desktop]# ping www.baidu.com
在虚拟机上的网页浏览:www.baidu.com ##设置
##可以在不能上网的虚拟机打开百度,是因为它缓存了主机上的网页。
十.squid反向代理:
在server虚拟机:IP=172.25.254.228(充当西安分客服端)
[[email protected] ~]# yum install squid -y
[[email protected] ~]# systemctl start squid
[[email protected] ~]# vim /etc/squid/squid.conf
[[email protected] ~]# systemctl restart squid
[[email protected] ~]# systemctl stop firewalld
在desktop虚拟机:(充当深圳总客服端)
[[email protected] ~]# cd /var/www/html
[[email protected] html]# vim index.html
[[email protected] html]# systemctl restart httpd
[[email protected] html]# vim /etc/httpd/conf/httpd.conf
[[email protected] html]# systemctl restart httpd
在网页浏览:http://172.25.254.228/ ##设置里关掉上一步开启的 (充当客户端)
##这样用客户端就可以看到想要看到的内容,并且快速又方便。
注意:在所有实验中,httpd服务要处于打开状态,防火墙处于关闭状态,这样在网页上才能查看到内容。