web服务器---Apache内容介绍

    xiaoxiao2022-07-15  167

    apache

    1.相关名词介绍 1)什么是Web服务器? Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档, 也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。目前最主流的三个Web服务器是Apache 、Nginx、 IIS。加粗样式 2)什么是Apache? Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它可以运行在几乎所有广泛使用的计算机平台上。 3)Apache与Httpd的区别是什么? httpd是Apache超文本传输协议(HTTP)服务器的主程序。在早期的http server就叫做apache,到了http server 2.0以后就改名为httpd了。 4)WWW、HTTP、HTTPS、HTML分别是什么? WWW:WWW是环球信息网的缩写,(亦作“Web”、“WWW”、“‘W3’”,英文全称为“World Wide Web”),中文名字为“万维网”,"环球网"等,常简称为Web。 分为Web客户端和Web服务器程序。 WWW可以让Web客户端(常用浏览器)访问浏览Web服务器上的页面。 是一个由许多互相链接的超文本组成的系统,通过互联网访问。在这个系统中,每个有用的事物,称为一样“资源”;并且由一个全局“统一资源标识符”(URI)标识;这些资源通过超文本传输协议(Hypertext Transfer Protocol)传送给用户,而后者通过点击链接来获得资源。 HTTP:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hypertext),这成为了HTTP超文本传输协议标准架构的发展根基。 HTTPS:HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 或 Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。 HTML:超文本标记语言(HyperText Markup Language )。网页的本质就是超级文本标记语言,通过结合使用其他的Web技术(如:脚本语言、公共网关接口、组件等),可以创造出功能强大的网页。因而,超级文本标记语言是万维网(Web)编程的基础,也就是说万维网是建立在超文本基础之上的。超级文本标记语言之所以称为超文本标记语言,是因为文本中包含了所谓“超级链接”点。 5)http与https的区别是什么? 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息。HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP协议不适合传输一些敏感信息,比如信用卡号、密码等。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS。为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。 HTTPS和HTTP的区别主要为以下四点: 一、https协议需要到ca申请证书,一般免费证书很少,需要交费。 二、http是超文本传输协议,信息是明文传输,https 则是具有安全性的ssl加密传输协议。 三、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。 四、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

    1.apchece

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

    2.apache的安装部署

    yum install httpd -y ##apache软件 yum install httpd-manual ##apache的手册 systemctl start httpd systemctl enable httpd firewall-cmd --list-all ##列出火墙信息 firewall-cmd --permanent --add-service=http ##永久允许http firewall-cmd --reload ##火墙从新加载策略

    /var/www/html ##apache的/目录,默认发布目录 /var/www/html/index.html ##apache的默认发布文件 vim /var/www/html/index.html <h1> hello world </h1> :wq

    #测试 http://172.25.254.100 http://172.25.254.100/manual

    3.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/*

    1)修改默认端口:

    vim /etc/httpd/conf/httpd.conf 43 Listen 8080 ##修改默认端口为8080

    修改为下图

    重启httpd,查看端口 此时在真机的浏览器 输入172.25.254.111(相当于172.25.254.111:80)此时找不到 输入172.25.254.111:8080此时还找不到 因为只是修改了默认端口,火墙并不允许这个端口通过,在火墙中添加这个端口

    firewall-cmd --permanent --add-port=8080/tcp firewall-cmd --reload

    再查看

    2)修改默认发布文件: 默认发布文件就是访问apache时没有指定文件名称时默认访问的文件 3)修改配置文件 重启httpd 然后测试 这个文件可以指定多个,有访问顺序

    vim /etc/httpd/conf/httpd.conf 164 DirectoryIndex index.html test.html ##当index.html不存在时访问test.html

    当第一个文件存在时,先访问第一个文件 第一个文件不存在时,访问第二个 4)修改默认发布目录

    cd /var/www/html 默认发布目录 mkdir -p /www/html vim /www/html/index.html

    vim /etc/httpd/conf/httpd.conf

    搜/Doc 复制一行,注释掉原来的

    /var/www/html----->/www/html

    加入:

    <Directory "/westos/html"> Require all granted </Directory> systemctl restart httpd

    输入172.25.254.113/index.html 访问不到 查看selinux状态 setenforce 0 输入172.25.254.113 可以访问

    ls -Zd /var/www/html ls -Zd /westos/html

    是因为安全上下文的问题,那么给这个目录可以通过selinux的安全上下文

    semanage fcontext -a -t httpd_sys_content_t '/westos/html(/.*)?' restorecon -RvvF /westos/html Getenforce

    输入172.25.254.113

    4.apache的虚拟主机

    vim /etc/httpd/conf.d/adefault.conf DocumentRoot “/var/www/html” CustomLog “logs/www.westos.com.log” combined

    vim /etc/httpd/conf.d/linux.conf <VirtualHost *:80> ServerName linux.westos.com #指定站点名称 DocumentRoot “/var/www/virtual/linux.westos.com/html/” #站点默认发布目录 CustomLog “logs/linux.westos.com.logs” combined #站点日志combined标示四种日志的集合 <Directory “/var/www/virtual/linux.westos.com/html/”> Require all granted

    vim /etc/httpd/conf.d/c.conf <VirtualHost *:80> ServerName c.westos.com DocumentRoot “/var/www/virtual/c.westos.com/html/” CustomLog “logs/c.westos.com.logs” combined <Directory “/var/www/virtual/c.westos.com/html/”> Require all granted

    测试: 在测试主机中作好本地解析 vim /etc/hosts 172.25.254.100 c.westos.com …

    5.apache内部的访问控制

    1.针对与主机的访问控制 5 <Directory “/var/www/html/test”> 6 Order deny,allow ##列表读取顺序,后读取的列表会覆盖限度去内容的重复部分 7 Allow from 172.25.254.44 8 Deny from all 9

    2.用户方式的访问控制

    htpasswd -cm /etc/httpd/userpass admin htpasswd -m /etc/httpd/userpass admin1

    vim adefault.conf 10 <Directory “/var/www/html/admin”> 11 AuthUserFile /etc/httpd/userpass 12 AuthName “Please input your name and password” 13 AuthType basic 14 #Require user admin 15 Require valid-user 16

    6.apache支持的语言

    1.html 2.php vim /var/www/html/index.php

    <?php phpinfo(); ?>

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

    3.cgi mkdir -p /var/www/html/cgi semanager fcontent -a -t httpd_sys_script_exec_t ‘/var/www/html/cgi(/.*)?’ restorecon -RvvF /var/www/html/cgi/ vim /var/www/html/cgi/index.cgi #!/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 17 <Directory “/var/www/html/cgi”> 18 Options +ExecCGI 19 AddHandler cgi-script .cgi 20

    systemctl restart httpd

    4.wsgi yum install mod_wsgi -y vim /var/www/html/cgi/westos.wsgi #!/usr/bin/env python import time

    def application (environ, start_response): response_body = ‘UNIX EPOCH time is now: %s\n’ % time.time() status = ‘200 OK’ response_headers = [(‘Content-Type’, ‘text/plain’), (‘Content-Length’, ‘1’), (‘Content-Length’, str(len(response_body)))] start_response(status, response_headers) return [response_body]

    vim /etc/httpd/conf.d/adefault.conf DocumentRoot “/var/www/html” WSGIScriptAlias /WSGI /var/www/html/cgi/script.wsgi

    systemctl restart httpd

    测试: http://172.25.254.100/WSGI

    7.https

    yum install mod_ssl -y yum install crypto-utils -y

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

    8设定https虚拟主机并设定网页重写

    1 <VirtualHost *:443> 2 ServerName login.westos.com 3 DocumentRoot /var/www/html/virtual/login.westos.com/html 4 CustomLog “logs/login.logs” combined 5 SSLEngine on 6 SSLCertificateFile /etc/pki/tls/certs/www.westos.com.crt 7 SSLCertificateKeyFile /etc/pki/tls/private/www.westos.com.key 8 9 <Directory “/var/www/html/virtual/login.westos.com/html”> 10 Require all granted 11 12 <VirtualHost :80> 13 ServerName login.westos.com 14 RewriteEngine On 15 RewriteRule ^(/.)$ https://%{HTTP_HOST}$1 [redirect=301] 16

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

    最新回复(0)