************************9.Apache*********************
互联网主流架构
lamp = linux apache mysql php
lnmp = linux nginx mysql php
若要使用 html cgi jsp asp 等闭源网页编辑软件
需使用翻译软件 tomcat jboss
##1.Apache基本配置##
安装apache软件包: httpd httpd-manual(手册插件)
查看监听端口: netstat -antlpe | grep httpd

wKioL1hIDDzBN6taAAA-cx0f-8I822.png 


##2.Apache简单配置##
主配置文件:/etc/httpd/conf/httpd.conf
1.默认主页名称 DirectoryIndex

在默认发布目录下/var/www/html目录中,在test文件中写入自定义内容

wKiom1hIDE6iUibJAAAUsQmsC3g911.png 

文件的顺序表示服务访问的顺序,从前到后直到访问到存在的文件

wKioL1hIDFvy0OvzAAA0zcb8CtI440.png 

网页测试

wKiom1hIDGvSHBf-AAAS5Lfyn80236.png
2.默认端口 Listen

修改配置文件

wKioL1hIDHnDdVNoAAAKXdd-wkg143.png 

网页测试,修改默认端口后,直接访问ip访问不到网页

wKioL1hIDQ6gvfeGAABKGi7vb98633.png 

必须在ip后加上修改后的端口才可以访问到

wKioL1hIDR-BPZ5LAAAWkZ1e0xA656.png
3.默认发布目录 DocumentRoot

建立目录/www/myweb,在目录里写入主页内容以供测试

wKioL1hIDUXjwhNhAAAqsv63RDc408.pngwKiom1hIDTOQwwT4AAAKMvGzvqY886.png 

 

修改配置文件

wKiom1hIDWPDTGpYAABSfkVGV1s386.png 

网页测试

wKiom1hIDYqRYtPGAAAUbz8UqSA285.png
注:若开启了selinux需更改目录安全上下文
使用 semanage fcontext -a -t httpd_sys_content_t “/directory(/.*)?” 更改安全上下文
使用 restorecon -RvvF /directory 重新加载安全上下文
4.更改默认发布目录权限
1)基于ip

wKioL1hIDZ7QcQJiAABaWUWydTQ845.png 

用主机ip为172.25.254.8进行网页测试时,只能看到apache的测试页,看不到默认发布目录里的内容

wKiom1hIDfjRzZ43AABTBS6Fpa8630.png
2)基于用户

添加用户,并制定密码

wKioL1hIDg6D34YsAAB3C2hDbp0219.png
限制用户

wKioL1hIDh2SgKw1AAB0DM5oBgo936.png
b.不限制用户

wKioL1hIDjDTohNdAAB06GBtRiw569.png 

只有拥有正确匹配的用户名和密码,而且没有被限制的用户才可访问网页

wKiom1hIDkCgIAhcAABMciFonnU479.png
以上更改都需要重启服务才可生效
##2.虚拟主机##
虚拟主机允许您从一个httpd服务器同时为多个网站提供服务基于名称的虚拟主机是其中多个主机名都指向同一个IP地址,但是Web服务器根据用于到达站点的主机名提供具有不同内容的不同网站。

1./etc/httpd/conf.d目录下

编辑默认主页配置文件 vim default.conf

wKiom1hIDlGBiRaQAAB0ZOMTjHI786.png 

编辑news主页配置文件 vim news.conf

wKioL1hIDmCBj0r2AAB-QVqPMNM913.png 

编辑 music主页配置文件 vim music.conf

wKiom1hIDm7RiY92AAB7S0RJY9s473.png 

2.在默认发布目录下,建立虚拟主机的目录

wKiom1hIDv-QOXdgAAB3EGwDuNE988.png 

wKiom1hIDxDgKg-PAAAPTB01zjk429.png 

wKioL1hIDx7BirBmAAAMr27NH74189.png 

3.网页测试主机添加host记录 vim /etc/hosts

wKioL1hIDynglo7UAAATi8RkBdI915.png 

网页测试

wKiom1hIDz_CSHvbAAAWZaquShg046.png 

wKioL1hID07R_C4EAAAXgIHja9Q730.png 

wKiom1hID1uifZZbAAAYZGDoRoE756.png
##3.https##
客户拿到的是公钥,用于加密认证。 服务器解密,减轻服务器压力
1.安装软件 mod_ssl 和用于生成签名证书的 crypto-utils软件包
2.调用genkey,生成签名证书

wKioL1hID26CzJnuAAFYFieAEF4040.png 

具体生成步骤如下:

记录生成的证书和关联的私钥的生成位置

wKioL1hID3jBLBLtAACWw8l2xR0280.png 

继续使用对话框,并选择合适的密钥大小

wKiom1hID4SBzTsEAAAsvyWtWh0961.png 

在生成随机数时比较慢,敲键盘和移动鼠标可以加速

wKiom1hID56CxmFOAAB6w2yvYic933.png 

拒绝向认证机构(CA)发送证书请求(CSR)

wKioL1hID6ygwoL8AABUxCflacg413.png 

wKioL1hID7_g5yIgAADuKvfy00o995.png 

为服务器提供合适的身份。Common Name必须与服务器的主机全名完全匹配。
(注意,任何逗号都应使用前导反斜线[\]进行转义)

wKiom1hID9ax-aC-AADhiJd32HA645.png 


3.修改配置文件 /etc/httpd/conf.d/ssl.conf

wKiom1hID-nBFe_8AAA28O0JimA999.png 

wKioL1hID_eiHK6XAAA7s02GAwo221.png 

网页测试,可以看到自己添加的证书内容

wKioL1hIEAXQVvNGAACYm-8cYpg937.png 

##配置虚拟主机的https服务##

/etc/httpd/conf.d 目录下

muisc和news虚拟主机配置文件进行修改。添加模块

wKiom1hShizhpv9rAACT51j0TPo543.png 

测试

wKioL1hShjbCA2EKAAAWqKhiXr0486.png 

##4.网页重写 ##

把所有80端口的请求全部重定向由https来处理

/etc/httpd/conf.d 目录下

muisc和news虚拟主机配置文件进行修改例如:

<Virtualhost *:80>

ServerName www0.example.com

RewriteEngine on

RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [redirect=301]

</Virtualhost>

wKiom1hShkHCGg5DAABUwGOhSkQ210.png 

当你输入music.westos.com时自动访问的是https://music.westos.com

wKioL1hShkuC4p2yAAAWqKhiXr0351.png 

## 5.php ##

安装 yum install php

编写在默认发布目录下编写php测试页 vim index.php

wKioL1hShlfjBxLuAAAQA2Up-EU233.png 

修改 /etc/httpd/conf/httpd.conf 使其访问测试页

wKiom1hShmHjMWxjAAArtTg4r5s262.png 

重启服务

测试

wKiom1hShmyz8H8fAAB_ahZro_0016.png 

## 6.CGI ##

通用网关接口(CGI)是网站上放置动态内容的最简单的方法。CGI脚本可用于许多目

,但是谨慎控制使用哪个CGI脚本以及允许谁添加和运行这些脚本十分重要。编写质量差的CGI

脚本可能为外部***者提供了破坏网站及其内容安全性的途径。因此,在Web服务器级别和

SELinux策略级别,都存在用于限制CGI脚本使用的设置。

1.在默认发布目录/etc/www/html下建立cgi目录,并在目录下建立index.cgi 编写主页内容,并给index.cgi添加执行权限

wKioL1hShnex9Y84AAAiEer0fYw896.png 

可用perl index.cgi 测试主页内容

wKiom1hShoLzyxeGAAAscORZ1tc961.png 

2.修改/etc/httpd/conf.d/default.conf

wKioL1hShoyzKitvAAA45wca8cQ673.png 

3.重启服务

4.测试

wKiom1hShpfwRZvcAAAbek-MP6A904.png
注:
1.内容模板可访问 www.westos.com/manual 查看到
2.若开启了selinux需更改目录安全上下文
使用 semanage fcontext -a -t httpd_sys_script_exec_t “/var/www/html/cgi/(/.*)?” 更改安全上下文
使用 restorecon -RvvF /directory 重新加载安全上下文
使用ls -Zd查看安全上下文

## 7.搭建论坛 ##
1.安装mariadb-server 和php-mysql 并开启mariadb服务
2.在 /etc/my.cnf 的【mysqld】添加 skip-networking =1参数,关闭端口
3.使用mysql_secure_installation执行安全性配置
4.在默认发布目录下下载Discuz安装包,按readme里面的提示完成安装

wKioL1hShqqjZ9NTAAAtDLGnw7g392.png 

wKiom1hShrqDQQ9cAACMEBO8b7M161.pngwKioL1hShsSgLCVzAABpySTx8-s098.png 

 

wKioL1hShtLDdhhEAACTahyVHlk822.png

##9.squid.缓存代理服务##
1.正向解析 ---从内网访问外网(×××)
安装服务 squid
配置 /etc/squid/squid.conf

wKiom1hShyHQNRQxAAAUf7BAjnM983.png

wKioL1hShyGTtMrkAAAr2eXmyDI929.png

 

重启服务
实验前提
web_xx 主机是双网卡主机,一个内网的ip,一个外网的ip。
mail_westos 主机是单网卡主机 具有一个内网的ip
在双网卡主机上配置squid服务
测试

直接访问依旧访问不到

wKiom1hShzChffKwAAAh18yg5mk322.png 

需要进行如下设置

wKioL1hSh1Ox_Yb2AACaFVxHq2M131.png

wKioL1hSh1OiXde0AACptdPs_IQ284.png

 

重新测试,就可以访问了

wKiom1hSh2LRe11VAAAXcrr41c4594.png

2.反向解析
普通反向解析
配置 /etc/squid/squid.conf,添加如下内容

wKioL1hSh7jwPp9wAABBdy9GSoc285.png

重启服务
测试,恢复以上测试设置,可以直接访问

wKioL1hSh3HyLeAyAAAXcrr41c4406.png
轮询
配置 /etc/squid/squid.conf

wKiom1hSh3ugr7WVAACmJ883d90569.png
重启服务
测试 ,一次访问172.25.254.37 一次访问172.25.254.36

wKioL1hSh4ehT6Z-AAAXcrr41c4267.png