Linux——HTTP服务

来源:互联网 发布:大数据交易交易的是啥 编辑:程序博客网 时间:2024/06/06 08:34

从今天开始就要讲到服务的搭建了,首先是HTTP服务

#############安装http服务#############
1.安装httpd
2.开启并且设置开机自启动
3.安装hpptd-manual                    ##因为HTTP服务的配置文件是没有man文档的,所以需要下载一个
4.关闭防火墙
需要另外下载一个安装包来解释主配置文件(htppd-manual)

要说http,就必须要说一下搭载这个服务的服务apache服务

######################
####### apache #######
######################
#1.apache
企业中常用的web服务,用来提供http://(超文本传输协议)
#2.apache的安装部署
yum install httpd -y
yum install htppd-manual -y
systemctl start httpd
systemctl enable httpd
systemctl stop firewalld
systemctl disable firewalld
#测试    http://172.25.254.38
#    http://172.25.254.38/manual
#3.apache的基础信息
#主配置文件目录:    /etc/httpd/conf/
#主配置文件:    /etc/httpd/conf/httpd.conf
#子配置目录:    /etc/httpd/conf.d/
#子配置文件:    /etc/httpd/conf.d/*.conf(所有conf结尾的都是子配置文件)
#默认发布目录:    /var/www/html
#默认发布文件:    index.html
#默认端口:     80
#默认安全上下文:    httpd_sys_content_t
#程序开启默认用户:    apache
#apache日志:    /etc/httpd/logs/
清空浏览器缓存:    ctrl+shift+del
修改默认端口
#查看端口:    ss -anutlpe | grep httpd(这条命令很重要!!!)


vim /etc/httpd/conf/httpd.conf
43行     Listen 8080    ##修改默认端口为8080修改完成之后一定要重启服务
修改默认发布文件
什么是发布文件,在/var/www/html下创建一个名为index.html    在里面写入一个语句,随便写什么,访问这个网站的时候就会访问到默认的那个发布文件中


#默认发布文件就是apache时没有指定文件名称时默认访问的文件,这个文件可以指定多个,有访问顺序
vim /etc/httpd/conf/httpd.conf
164行    DirectoryIdex index.html test.html    ##当index.html不存在时访问test.html


修改默认发布目录:
120 DocumentRoot "/www/html"
121 <Directory "/www/">
122         Require all granted
123 </Directory>

重启服务
#修改安全上下文!!!


#4.apache的虚拟主机
先把之前进行的修改改回来
combined(整合型的四种日志都放在一起)


vim /etc/httpd/conf.d/adefault.conf(这里要写a开头的,因为后面有一个c开头的配置文件,系统在读取的时候是按照ASCII码读取的,所以不写a的话系统会优先读取开头为c的文件)
  1 <VirtualHost _default_:80>    
  2         DocumentRoot "/var/www/html"
  3         CustomLog "logs/www.westos.com.log" combined
  4 </VirtualHost>


vim /etc/httpd/conf.d/linux.conf
  1 <VirtualHost *:80>
  2         ServerName linux.westos.com        #指定站点网址
  3         DocumentRoot "/var/www/virtual/linux.westos.com/html/"            #站点默认发布目录
  4         CustomLog "logs/linux.westos.com.logs" combined                #站点日志combined(整合型的四种日志都放在一起)
  5 </VirtualHost>
  6 <Directory "/var/www/virtual/linux.westos.com/html">
  7         require all granted
  8 </Directory>



vim /etc/httpd/conf.d/c.conf
  1 <VirtualHost *:80>
  2         ServerName c.westos.com
  3         DocumentRoot "/var/www/virtual/c.westos.com/html/"
  4         CustomLog "logs/c.westos.com.logs" combined
  5 </VirtualHost>
  6 <Directory "/var/www/virtual/c.westos.com/html">
  7         require all granted
  8 </Directory>


测试
测试主机中做好本地解析(告诉系统你将要访问的地址IP是多少)
vim /etc/hosts


172.25.254.38 站点网址都写上去


#清空浏览器缓存: ctrl+shift+del!!!(一定要记得这个)
#5.apache内部的访问控制
1.针对与主机的访问控制
在/etc/http/conf.d/下的一个子配置文件中添加(最好default,因为不需要做解析)
<Directory "var/www/html/test">
    Order deny,allow    #列表读取顺序,后读取的列表会覆盖先读取的内容
    Allow from 172.25.254.44
    Deny from all
</Directory>


mkdir /var/www/html/test
2.用户方式的访问控制
最好在default做,因为没有servername,不需要做解析
htpasswd -cm /etc/httpd/userpass admin(虚拟用户,可有可无)
htpasswd -m /etc/httpd/userpass admin1
当你再次创建密码时,一定要把c去掉,不然就会将以前的记录都覆盖掉
<Directory "/var/www/html/admin">
    AuthUserFile /etc/httpd/userpass    #指定一个认证文件
    AuthName(用户可在提示页面看到显示的信息) "Please input your name and passwd"
    AuthType basic(方式为基本,就是输入用户名密码就能登陆)        #认证方式
    Require user admin(这个目录只允许admin一个用户访问)
    Required valid-user(有效的用户都可以)两个写一个就可以了
</Directory>


mkdir /var/www/html/admin
vim /var/www/html/admin/index.html


#6.apache支持的语言
1.html
2.php
vim /var/www/html/index.php
<?php
    phpinfo();
?>


yum install php -y
systemctl restart httpd
测试
172.25.254.138/index.php

3.cgi
mkdir -p /var/www/html/cgi
semanager fcontent -l | grep http
semanager fcontent -a -t httpd_sys_script_exex_t '/var/www/html/cgi(/.*)?'
restorecon -RvvF /var/www/html.cgi
vim /var/www/html/cgi/index.cgi(内容在man里面可以找到)


#!/usr/bin/perl
print "Content-type:text/html\n\n";
print `date`;

chmod +x /var/www/html/cgi/index.cgi
/var/www/html/cgi/index.cgi    #执行下脚本确保脚本运行正常

vim adefatul.conf
<Directort "/var/www/html/cgi">
    options +ExecCGI
    AddHandler cgi-script .cgi
</Directory>

systecctl restart httpd

#7.https
作用 保护数据传送至服务端时不被破解


ss -antlupe |grep 443 (https使用的是443端口)
yum install mod_ssl -y    #安装443端口
yum install crypto-utils -y #制作网络安全证书的服务
genkey www.westos.com

乱动鼠标或者敲键盘都可以

这个是选择是否发送至官方授权,选择No


vim /etc/httpd/conf.d/ssl.conf
101 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt
109 SSLCertificateKeyFile /etc/pki/tls/privats/www.westos.com.key


访问的时候一定要开头输入https,不然的话登陆不上去。

点击下载之后就可以访问到这个地址的内容了

#8.设定https虚拟主机并设定网络服务器

但是用户输入网址的时候不会将前面的https也输入进去的,所以就需要填加一个配置文件,将http的开头自动转换为https

<VirtualHost *:80>
       ServerName login.westos.com
       RewriteEngine on
       RewriteRule ^(/.*)$ https://%{HTTP_HOST}$1 [red    irect=301]
</VirtualHost>


^(/.*)$        ##客户在浏览器地址栏中输入的所有字符
https://    ##强制客户加密访问
%{HTTP HOST}$1    ##客户请求访问的主机
$1        ##"$1"标示^(/.*)$的值
[redirect=301]    ##临时重写     302永久转换