web服务器的构建

web服务器的构建

1.apache服务的安装与启用

apache:企业中常用的web服务,用来提供http://(超文本传输协议)
apache的安装部署

yum install httpd.x86_64 -y
systemctl start httpd								##开启apache服务
systemctl enable httpd								##设定apache服务开机启动
firewall-cmd --permanent --add-service=http			##火墙永久允许http
firewall-cmd --reload								##火墙重新加载策略
vim /var/www/html/index.html						##编辑apache默认发布文件
在文件中写入测试页hello westos

测试:
搜索对应的ip,就可以看到写的测试页内容 hello westos

在这里插入图片描述
在这里插入图片描述

2.apache的基本配置信息及部署优化方案

  • 基本配置信息:
    主配置目录: /etc/httpd/conf
    主配置文件: /etc/httpd/conf/httpd.conf
    子配置目录: /etc/httpd/conf.d
    子配置文件: /etc/httpd/conf.d/.conf
    默认发布目录: /var/www/html
    默认发布文件: index.html
    默认端口 : 80
    默认安全上下文: httpd_sys_content_t
    程序看其默认用户: apache
    apache日志: /etc/httpd/logs/
  • 修改默认端口:

修改配置文件- - ->>>重启- - ->>>修改火墙中端口- - ->>>在安全上下文中添加端口

vim /etc/httpd/conf/httpd.conf					##在其中修改下面的内容

43 Listen 8080 ##修改默认端口为8080

systemctl restart httpd							##重启apache
firewall-cmd --permanent --add-port=8080/tcp	##设置火墙中的端口
firewall-cmd --reload							##火墙重新加载策略

测试:
在修改端口之前,apache默认端口为80,搜索ip就可以看到hello westos测试页
修改端口后,直接搜索ip会显示无法连接,连接时需要加上对应端口搜索ip:8080
在这里插入图片描述
在这里插入图片描述
如果要修该端口为6666
在主配置文件中:
43 Listen 6666 ##修改默认端口为6666

systemctl restart httpd
firewall-cmd --permanent --add-port=6666/tcp	##设置火墙中的端口
firewall-cmd --reload

测试时搜索ip:6666,发现无法连接,是因为安全上下文中不包含6666端口

semanage port -a -t http_port_t -p tcp 6666		##在安全上下文中添加6666端口
semanage port -l | grep http					##安全上下文查看http端口
systemctl restart httpd

再次测试就可以看到hello westos
在这里插入图片描述
在这里插入图片描述

  • 修改默认发布目录

创建目录- - ->>>修改配置文件- - ->>>修改安全上下文(授权)
创建目录:

mkdir -p /westos/html
touch index.html  
vim index.html  					##在其中写入测试页(我写的内容是hi westos!!)

修改配置文件中的内容如下:(前面的数字为行号)

vim /etc/httpd/conf/httpd.conf		##编辑配置文件
systemctl restart httpd				##重启apache

120 DocumentRoot “/westos/html”
121
122 <Directory “/westos”>
123 Require all granted
124 </Directory
修改安全上下文:

semanage fcontext -a -t httpd_sys_content_t 'westos(/.*)?'		##修改安全上下文
restorecon -RvvF /westos										##刷新

在这里插入图片描述
**测试:**搜索ip看到的不是默认发布目录中写的hello westos测试页,而是hi westos!!
在这里插入图片描述

  • 修改默认发布文件:

默认发布文件就是访问apache时没有指定文件名称时访问的文件
这个文件可以指定多个,有访问顺序

新建发布文件:

cd /westos/html
vim westos.html			##写入测试页hey westos~~

修改主配置文件:

vim /etc/httpd/conf/httpd.conf
systemctl restart httpd

168 DirectoryIndex westos.html index.html ##当westos不存在时访问index
测试:搜索ip查看到的是文件westos.html的内容hey westos~~,而不是该目录中的默认发布文件index.html中的内容
在这里插入图片描述

3.apache的虚拟主机

在之前的操作中,我们访问apache服务器时只有一个主页,如果需要多个不同的主页,就可以设定apache的虚拟主机,它可以让我们的一台apache服务器在被访问不同域名的时候显示不同的主页
写配置文件,添加具体信息- - ->>>创建目录 添加文件内容- - ->>>添加解析

配置:

cd /etc/httpd/conf.d
vim vhost.conf
systemctl restart httpd

在这里插入图片描述
建立测试页:

mkdir -p /var/www/virtual/westos.org/{music,news}
touch /var/www/virtual/westos.org/{music,news}/index.html
vim music/index.html 										 #写入music's page
vim news/index.html											 ##写入news's page

注意:把虚拟主机文件放在/var/www下是因为这个目录已经被授权过了

用哪台主机访问就在哪台主机中添加解析:
vim /etc/hosts
在这里插入图片描述

测试:
搜索www.westos.org看到hello westos ,news.westos.org 看到news’s page(搜索对应的内容就看到对应测试页)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.apache基于ip的安全优化控制

针对主机ip设定访问的黑白名单

cd /etc/httpd/conf.d
vim vhost.conf
systemctl restart httpd

在其中写入:

  • 白名单: 只允许250主机访问,其他ip都不允许访问

<Directory “/var/www/html”>
19 Order deny,allow
20 Allow from 172.25.70.250
21 Deny from all
22 </Directory
在这里插入图片描述

  • 黑名单: 不允许250主机访问,其他ip都可以访问

18 <Directory “/var/www/html”>
19 Order allow,deny
20 Allow from all
21 Deny from 172.25.70.250
22 </Directory
在这里插入图片描述

order的意义:如果是设置白名单,应该先读取deny,再读取allow,如果先读取allow再读取deny,deny里面的all会把allow里面设定的主机覆盖

5.apache基于认证的访问控制

设定登陆用户,并且给用户授权。只有经过授权的用户输入正确的密码才可以访问apache主页,增加了安全性

cd /etc/httpd/
htpasswd -cm .htpassfile admin			##建立admin用户并给admin用户添加密码
htpasswd -m .htpassfile admin1			##建立admin1用户并给admin1用户添加密码

在这里插入图片描述

cd /etc/httpd/conf.d
vim vhost.conf						##编辑配置文件
systemctl restart httpd				##重启apache

在其中写入:
18 <Directory “/var/www/html”>
22 AuthUserFile /etc/httpd/.htpassfile ##用户认证文件
23 Authtype basic ##认证类型
24 AuthName “Please input username and password” ##用户认证提示信息
25 Require user admin ##只允许认证文件中admin用户访问
26 Require valid-user ##认证用户,认证文件中所有用户都可以通过
27 </Directory
注意:25 26行不能同时存在,根据需要选择一行写入
测试:
- 当只允许admin用户通过时
在这里插入图片描述
在这里插入图片描述
- 当认证用户,认证文件中所有用户都可以通过时
在这里插入图片描述
在这里插入图片描述

6.apache的语言支持- - -php&per&python

在apache的主页中,一般我们默认看到的语言是html(超文本标记语言),而apache其实支持一些其他的语言,需要我们经过设定才能生效

-php

cd /var/www/html
vim index.php

在其中写入:
在这里插入图片描述

yum install php -y
systemctl restart httpd 

测试:ip/index.php 看到测试页
在这里插入图片描述
在这里插入图片描述

-(per)cgi

cd /var/www/html
mkdir cgi
semanage fcontext -a -t httpd_sys_script_exec_t "/var/www/html/cgi(/.*)?"	##设定安全上下文
restorecon -RvvF /var/www/html/cgi											##刷新
ls -Zd /var/www/html/cgi
touch index.cgi
vim index.cgi
chmod +x index.cgi															##修改权限

在其中写入:
在这里插入图片描述
修改配置文件

cd /etc/httpd/conf.d
vim vhost.conf						##编辑配置文件

在其中写入:
在这里插入图片描述

systemctl restart httpd 
./index.cgi

在这里插入图片描述

测试:ip/cgi/index.cgi 可以看到date信息
在这里插入图片描述

-python

yum search wsgi
yum install mod_wsgi.x86_64 -y
cd /var/www/html					##要将script.wsgi下载到此目录中
chmod +x script.wsgi				##设定权限

修改配置文件:

cd /etc/httpd/conf.d
vim vhost.conf						##编辑配置文件

在其中写入:
在这里插入图片描述

systemctl restart httpd

在这里插入图片描述
测试:ip/WSGI 可以看到UNIX EPOCH time is now: 1573888673.95
在这里插入图片描述

7.https的证书设定

在这里插入图片描述
如何设定https证书:

yum install mod_ssl -y
netstat -antlupe | grep httpd										##查看http端口
firewall-cmd --permanent --add-port=443/tcp							##添加443端口
firewall-cmd --reload												##重新加载
systemctl restart httpd				##重启服务后搜索https://172.25.70.50发现时无法访问的,需要手动添加证书
yum install crypto-utils -y
genkey www.westos.org												##添加加密认证key
vim /etc/httpd/conf.d/ssl.conf										##在其中添加证书和密钥信息
101 SSLCertificateFile /etc/pki/tls/certs/www.westos.org.crt		##证书
109 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.org.key	##密钥
systemctl restart httpd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:
搜索htttps://172.25.70.50,无法访问,需要手动添加证书
在这里插入图片描述
在这里插入图片描述
获取完成后就可访问了
在这里插入图片描述

8.利用网页重写规则优化https的访问

vim /etc/httpd/conf.d/vhost.conf			##在其中写入:
 30 <VirtualHost *:443>
 31         ServerName login.westos.org
 32         DocumentRoot /var/www/virtual/westos.org/login
 33         CustomLog logs/login.log combined
 34         SSLEngine on
 35         SSLCertificateFile /etc/pki/tls/certs/www.westos.org.crt
 36         SSLCertificateKeyFile /etc/pki/tls/private/www.westos.org.key
 37 </VirtualHost>

cd /var/www/virtual/
mkdir login
vim index.html								##在测试页中写login's page

vim /etc/httpd/conf.d/vhost.conf			##在其中写入:
 24 <VirtualHost *:80>
 25         ServerName login.westos.org
 26         RewriteEngine on
 27         RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1
 28 </VirtualHost>
systemctl restart httpd						##重启apache

在这里插入图片描述
测试:
在客户主机中添加解析

vim /etc/hosts
172.25.70.50 	login.westos.com

在这里插入图片描述
访问http://login.westos.com 会自动跳转到https://login.westos.com实现网页数据加密传输
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值