




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux操作系统项目式教程目录CONTENTS项目1初识Linux操作系统项目2Linux操作系统基础项目3用户组群和权限管理项目项目4配置和管理磁盘项目5安装软件项目6编写Shell脚本统项目7配置和管理网络系统项目8配置和管理Linux服务项目8配置和管理Linux服务任务1配置和管理Apache服务器任务2配置和管理Nginx服务器任务3配置和管理MariaDB服务器任务4搭建单机动态Web应用8.1.1Apache服务器概述ApacheHTTPServer(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,是目前世界上使用最广泛的一种Webserver。它以跨平台、高效和稳定而闻名,可以运行在几乎所有广泛使用的计算机平台上。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。Apache是用C语言开发的基于模块化设计的web应用,总体上看起来代码的可读性高于PHP代码,它的核心代码并不多,大多数的功能都被分割到各种模块中,各个模块在系统启动时按需载入。Apache支持SSL技术,支持多个虚拟主机。Apache是以进程的Prefork模式(还有基于线程的Worker模式)为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个ApacheWeb站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。8.1.2安装并设置Apache服务器1.安装Apache服务器[root@localhost~]#yuminstallhttpd-y已安装:httpd.x86_640:2.4.6-98.el7.centos.6
作为依赖被安装:apr.x86_640:1.4.8-7.el7apr-util.x86_640:1.5.2-6.el7httpd-tools.x86_640:2.4.6-98.el7.centos.6mailcap.noarch0:2.1.41-2.el7
完毕!Apache服务器需要安装的软件是httpd。2.设置防火墙和selinux[root@localhost~]#setenforce0[root@localhost~]#firewall-cmd--add-service=http--permanent//永久放行http[root@localhost~]#firewall-cmd--reload[root@localhost~]#firewall-cmd--list-servicessshdhcpv6-clientsambaftpnfsdhcphttpApache服务器使用的是http协议,防火墙需要放行http就可以了。8.1.3配置默认网站目录1.启动服务[root@localhost~]#systemctlstarthttpd启动服务后,使用浏览器输入http://服务器的IP地址并按Enter键,就可以访问Apache服务器的默认主页了,如图8-1所示。图8-1Apache服务器默认主页2.测试自己制作网页Apache的配置文件在/etc/httpd/conf文件夹下,配置文件名称是httpd.conf,打开配置文件后,观察119行[root@localhost~]#cd/etc/httpd/conf[root@localhostconf]#lshttpd.confmagic[root@localhostconf]#vihttpd.conf119DocumentRoot"/var/www/html"提示网站根目录是/var/www/html,将自己制作的网站上传到这个目录下,就可以进行访问了,可以在这个目录下制作一个简单页面,进行访问。[root@localhostconf]#echoHelloLinux>/var/www/html/index.html在/var/www/html下,制作主页index.html,写入内容“HelloLinux”,如图8-2所示。图8-2浏览自己制作的网页8.1.3配置默认网站目录3.修改默认网站目录Apache的默认网站目录是/var/www/html,因为是默认的,所以通常不够安全,可以通过修改配置文件的方法修改默认网站目录。[root@localhost~]#mkdir
–p/home/www[root@localhost~]#echoThisismyfirstApachewebsite>/home/www/myweb.html首先在/home/目录下创建www文件夹,在www文件夹中创建myweb.html,写入内容ThisismyfirstApachewebsite。[root@localhost~]#setenforce0[root@localhost~]#vihttpd.conf……119DocumentRoot"/home/www"//修改文档根目录124<Directory"/home/www">//网站数据目录的权限AllowOverrideNoneRequireallgranted</Directory>131<Directory"/home/www">OptionsIndexesFollowSymLinksAllowOverrideNoneRequireallgranted</Directory><IfModuledir_module>164DirectoryIndexmyweb.html//修改默认主页</IfModule>……[root@localhostconf]#systemctlreloadhttpd8.1.3配置默认网站目录然后取消selinux,打开httpd.conf配置文件,将119行、124行、131行中的目录位置修改为/home/www;将164行的默认主页名称修改为myweb.html,保存配置。重启服务,再使用浏览器访问,就可以访问/home/www目录下的网页了,如图8-3所示。
图8-3修改默认网站目录需要说明的是119行,定义的就是网站的根目录,131定义的是这个目录的访问权限,一般设置为<Directory"/home/www">
OptionsIndexesFollowSymLinks//该目录没有index页面时,显示目录本身AllowOverrideNone//忽略.htaccess文件
Requireallgranted//授权所有主机可以访问</Directory>8.1.4配置虚拟主机在一台Apache服务器上通常需要运行多个网站,这就需要配置服务,实现需求。在用户端看,每个网站都是一个主机,但实际上,这些网站都是在一台服务器上的,所以叫虚拟主机。Apache虚拟主机的配置方法通常有三种,分别是基于IP的、基于域名的、基于端口的。基于IP和端口的通常使用在局域网中,基于域名的通常使用在Internet上。1.基于IP地址的虚拟主机(1)给服务器配置多个IP地址[root@localhost~]#ipaddradd01devens33[root@localhost~]#ipaddr1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWNgroupdefaultqlen1000link/loopback00:00:00:00:00:00brd00:00:00:00:00:00inet/8scopehostlovalid_lftforeverpreferred_lftforeverinet6::1/128scopehostvalid_lftforeverpreferred_lftforever2:ens33:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPgroupdefaultqlen1000link/ether00:0c:29:16:b4:83brdff:ff:ff:ff:ff:ffinet00/24brd55scopeglobalens33valid_lftforeverpreferred_lftforeverinet01/32scopeglobalens33valid_lftforeverpreferred_lftforeverinet6fe80::20c:29ff:fe16:b483/64scopelinkvalid_lftforeverpreferred_lftforever8.1.4配置虚拟主机(2)创建web1和web2目录,建立主页文件[root@localhost~]#mkdir-p/home/www/web1[root@localhost~]#mkdir-p/home/www/web2[root@localhost~]#echoThisismyweb1>/home/www/web1/index.html[root@localhost~]#echoThisismyweb2>/home/www/web2/index.html(3)配置基于IP地址的虚拟主机设置/的访问权限时granted,打开/etc/httpd/conf下的httpd.conf文件,第将104行设置成Requireallgranted。102<Directory/>103AllowOverridenone104Requireallgranted105</Directory>在文件的最后加上如下代码:<Virtualhost00:80>ServerName00
DocumentRoot/home/www/web1</Virtualhost><Virtualhost01:80>
ServerName01
DocumentRoot/home/www/web2</Virtualhost>重新启动httpd服务。[root@localhostconf.d]#systemctlrestarthttpd8.1.4配置虚拟主机(4)测试配置启动浏览器,输入00可以访问/home/www/web1的index.html,如图8-4所示。
图8-4访问web1的index.html输入01可以访问/home/www/web2的index.html,如图8-5所示。
图8-5访问web2的index.html8.1.4配置虚拟主机2.基于端口的虚拟主机使用同一个IP地址,但配置不同的端口号,同样可以实现在一个Apache服务器上发布多个网站。(1)创建web1和web2目录,建立主页文件[root@localhost~]#mkdir-p/home/www/web1[root@localhost~]#mkdir-p/home/www/web2[root@localhost~]#echoThisismyweb1>/home/www/web1/index.html[root@localhost~]#echoThisismyweb2>/home/www/web2/index.html(2)配置基于端口的虚拟主机将监听的8000和8080端口加入到主配置文件中。打开/etc/httpd/conf/httpd.conf,在42行后加入以下两行。43Listen800044Listen8080在文件最后加上如下配置。<Virtualhost00:8000>ServerName00DocumentRoot/home/www/web1</Virtualhost><Virtualhost00:8080>ServerName00DocumentRoot/home/www/web2</Virtualhost>重新启动httpd服务。[root@localhostconf.d]#systemctlrestarthttpd8.1.4配置虚拟主机(3)测试配置启动浏览器,输入00:8000可以访问/home/www/web1的index.html,如图8-6所示。
图8-6访问8000端口输入01:8080可以访问/home/www/web2的index.html,如图8-7所示。
图8-7访问8080端口8.1.4配置虚拟主机3.基于域名的虚拟主机使用同一个IP地址,但配置不同的域名,同样可以在一个Apache服务器上发布多个网站,实现使用不同的域名访问多个网站的功能。(1)配置name.conf首先在conf.d目录中创建name.conf配置文件,添加如下配置。
<VirtualHost*:80>//监控服务器任意IP的80端口
ServerName//配置此网站的域名为
DocumentRoot"/home/www/web1"//虚拟主机网站目录</VirtualHost><VirtualHost*:80>//监控服务器任意IP的80端口
ServerName//配置此网站的域名为
DocumentRoot"/home/www/web2"//虚拟主机网站目录</VirtualHost>8.1.4配置虚拟主机(2)配置windows的hosts文件hosts文件时windows上提供IP地址和名称解析的文件,修改这个文件,可以实现名称和IP地址的对应关系,它的位置在C:\Windows\System32\drivers\etc,打开这个文件,在末尾处填入00//对应0000//对应00如果在当前目录下不可以修改,可以把这个文件,拷贝到桌面,修改完成后再复制到这个目录就可以了。(3)验证配置启动浏览器,输入可以浏览/web1/index.html,如图8-8所示。图8-8访问myweb1输入可以浏览/web2/index.html,如图8-9所示。
图8-9访问myweb28.1.5配置访问控制1.控制网络上的主机通过Require选项配置,可以控制网络中主机能否访问该网站,Require的语法如下。Requireallgranted
//允许所有IP访问Requirealldenied
//拒绝所有IP访问Requireipip地址
//允许某些IP访问Requirenotipip地址
//拒绝某些IP访问IP地址的书写方式也有几种,可以不加区分的写在同一行,中间用空格分开。单个IP地址//00..网络加掩码
///网络加掩码长度
///24网络
//例如,让除了/24网段用户的所有用户都可以访问/web网站<Directory"/web"><RequireAll>RequireallgrantedRequirenotip/24</RequireAll></Directory>8.1.5配置访问控制2.允许指定用户访问有些需要控制访问网站的用户,方法是建立访问网站的用户数据库文件,再修改配置文件。(1)建立用户访问数据库[root@localhost~]#useraddwebuser//添加linux用户webuser[root@localhost~]#htpasswd-c/pwdwebuser//创建pwd文件,加入webuserNewpassword://输入webuser的密码Re-typenewpassword://确认密码Addingpasswordforuserwebuser[root@localhost~]#cat/pwd//查看用户数据库文件webuser:$apr1$nwh64HF5$HdsWOYG0sLWQcCbg7mdog/(2)配置用户访问在相应的配置文件中添加认证配置,这里以name.conf中域名访问网站为例,在原来配置的基础上添加<Directory"/home/www/web1"></Directory>之间的配置<VirtualHost*:80>ServerNameDocumentRoot
"/home/www/web1"<Directory"/home/www/web1">
authname"myweb1"//认证提示名称
authtypebasic//认证类型为基础认证
authuserfile/pwd//认证文件
requirevalid-user//要求有效的用户</Directory></VirtualHost>8.1.5配置访问控制(3)验证配置启动浏览器,输入,系统提示需要输入用户名和密码,如图8-10所示,输入用户数据库中的webuser和密码就可以访问了。
图8-10提示输入用户和密码本任务注意点(1)
配置基于端口的虚拟主机时,要在主配置文件中监控相应的端口,防火墙放行相关端口。(2)
基于域名的虚拟主机一般应用于internet,基于端口的虚拟主机一般应用于局域网。任务拓展训练(1)
启动两台linux主机,配置名称为server和client。(2)
在server上安装apache服务,网站默认访问目录是/data。(3)
在server上配置基于端口的虚拟主机,端口分别是8080和8081,目录在/data下,分别是/data/web1和/data/web2。首页文件都是index.html,内容分别是hellodata1、hellodata2。(4)
在开放8080端口的虚拟主机上做访问控制,限制client端不可以访问。(5)
在物理机和client上验证配置,其中物理机可以访问默认网站和基于端口的2台虚拟主机,但client端不可以访问开放8080的虚拟主机。补充知识Apache简介
Apache(音译为阿帕奇)是世界使用排名第一的Web服务器软件。Apache起初由伊利诺伊大学香槟分校的国家超级电脑应用中心开发。此后,Apache被开放源代码团体的成员不断的发展和加强,Apache服务器拥有牢靠可信的美誉,它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。它快速、可靠并且可通过简单的API扩充,将Perl/Python等解释器编译到服务器中。
随着互联网的不断发展和普及,Web服务早已经成为人们日常生活和学习的必不可少的组成部分,只要在浏览器的地址栏中输入一个网址,就能进入网络世界,获得几乎所有想要的资源,Web服务已经成为人们工作、学习、娱乐和社交等活动的重要工具,对于绝大多数的普通用户而言,万维网(WorldWideWeb,WWW)几乎就是Web服务的代名词。Web服务提供的资源多种多样,可能是简单的文本,也可能是图片、音频和视频等多媒体数据。如今随着移动网络的迅猛发展,智能手机逐渐成为人们访问Web服务的入口,不管是浏览器还是智能手机,Web服务的基本原理都是相同的。补充知识1.Web服务的工作原理WWW是Internet上被广泛应用的一种信息服务技术,WWW采用的是客户/服务器结构,整理和储存各种WWW资源,并响应客户端软件的请求,把所需要的信息资源通过浏览器传送给用户。Web服务通常可以分为两种:静态Web服务和动态服务。Web服务也是采用典型的客户机/服务器模式,Web服务运行于TCP之上,每个网站都对应一台(或多台)Web服务,服务器中有各种资源,客户端就是用户面前的浏览器,Web服务的工作原理并不复杂,一般可分为4个步骤,即连接过程、请求过程、应答过程及关闭连接。连接过程:就是浏览器和Web服务器之间建立TCP连接的过程。请求过程:就是浏览器向Web服务器发出资源查询请求,在浏览器中输入的URL表示资源在Web服务器中的具体位置。应该答过程:就是Web服务器根据URL把相应的资源返回给浏览器,浏览器则以网页的形式把资源展示给用户。关闭连接:就是在应答过程完成之后,浏览器和Web服务器之间断开连接的过程。浏览器和Web服务器之间的一次交互也被称为一次“会话”。补充知识2.超文本传输协议(HyperTextTransferProtocol,HTTP)HTTP可以算得上是目前国际互联网基础上的一个重要组成部分,而Apache、IIS服务器是HTTP协议的服务器软件,微软的InternetExplorer和Mozilla的Firefox则是HTTP协议的客户端实现。Apacheweb服务器软件拥有以下特性:l支持最新的HTTP/1.1通信协议l拥有简单而强有力的基于文件的配置过程l支持通用网关接口l支持基于IP和基于域名的虚拟主机l支持多种方式的HTTP认证l集成Perl处理模块l集成代理服务器模块l支持实时监视服务器状态和定制服务器日志l支持服务器端包含指令(SSI)l支持安全Socket层(SSL)l提供用户会话过程的跟踪l支持FastCGIl通过第三方模块可以支持JavaServlets8.2.1Nginx服务器概述1.Nginx简介
Nginx是一个HTTP服务器,是一个使用C语言开发的高性能的HTTP服务器/反向代理服务器及电子邮件(IMAP/POP3/SMTP)代理服务器。由俄罗斯的程序设计师IgorSysoev开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定,特别适合搭建大量静态资源的并发访问服务。2.Nginx应用场景lhttp服务器Nginx是一个http服务可以独立提供http服务,可以做网页静态服务器。l虚拟主机可以实现在一台服务器虚拟出多个网站,和Apache的虚拟主机功能相同。l反向代理反向代理应该是Nginx做的最多的服务,反向代理(ReverseProxy)是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器,简单来说就是真实的服务器不能直接被外部网络访问,所以需要一台代理服务器,而代理服务器能被外部网络访问的同时又跟真实服务器在同一个网络环境,当然也可能是同一台服务器,端口不同而已。l负载均衡当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群,使用多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况,负载均衡配置一般都需要同时配置反向代理,通过反向代理跳转到负载均衡。8.2.1Nginx服务器概述3.Nginx优势l作为Web服务器,Nginx处理静态文件、索引文件,自动索引的效率非常高。l作为代理服务器,Nginx可以实现无缓存的反向代理加速,提高网站运行速度。l作为负载均衡服务器,Nginx既可以在内部直接支持Rails和PHP,也可以支持HTTP代理服务器对外进行服务,同时还支持简单的容错和利用算法进行负载均衡。l在性能方面,Nginx是专门为性能优化而开发的,实现上非常注重效率。它采用内核Poll模型,可以支持更多的并发连接,最大可以支持对5万个并发连接数的响应,而且只占用很低的内存资源。l在稳定性方面,Nginx采取了分阶段资源分配技术,使得CPU与内存的占用率非常低。Nginx官方表示,Nginx保持1万个没有活动的连接只占用2.5MB内存,因此,类似DOS这样的攻击对Nginx来说基本上是没有任何作用的。l在高可用性方面,Nginx支持热部署,启动速度特别迅速,因此可以在不间断服务的情况下,对软件版本或者配置进行升级,即使运行数月也无需重新启动,几乎可以做到7x24小时不间断地运行。8.2.2安装并运行Nginx服务1.配置网络yum源登录阿里云的镜像站地址/mirror/,点击Centos图标,如图8-11所示。
图8-11基础源图标进入之后,找到CentOS7基础源配置。wget-O/etc/yum.repos.d/CentOS-Base.repo/repo/Centos-7.repo这条命令的意思是使用wget命令将/repo/Centos-7.repo文件下载到/etc/yum.repos.d目录下,重新命名为CentOS-Base.repo。[root@localhost~]#cd/etc/yum.repos.d/[root@localhostyum.repos.d]#wget-O/etc/yum.repos.d/CentOS-Base.repo/repo/Centos-7.repo--2023-03-1115:56:36--/repo/Centos-7.repo正在解析主机
()...50,34,37,...正在连接
()|50|:443...已连接。已发出
HTTP请求,正在等待回应...200OK长度:2523(2.5K)[application/octet-stream]正在保存至:“/etc/yum.repos.d/CentOS-Base.repo”
8.2.2安装并运行Nginx服务100%[=============================================>]2,523--.-K/s用时0.03s
2023-03-1115:56:36(97.1KB/s)-已保存“/etc/yum.repos.d/CentOS-Base.repo”[2523/2523])[root@localhostyum.repos.d]#lsbakCentOS-Base.repolocal.repo接下来,在首页中点击Epel扩展源,如图8-12所示。图8-12扩展源图标进入之后,找到epel(RHEL7)。wget-O/etc/yum.repos.d/epel.repo/repo/epel-7.repo执行这条命令将Centos7的扩展源下载到/etc/yum.repos.d目录下,因为Nginx服务在扩展源里,所以需要下载这个配置。[root@localhostyum.repos.d]#wget-O/etc/yum.repos.d/epel.repo/repo/epel-7.repo--2023-03-1116:09:42--/repo/epel-7.repo正在解析主机
()...41,36,50,...正在连接
()|41|:443...已连接。已发出
HTTP请求,正在等待回应...200OK长度:664[application/octet-stream]8.2.2安装并运行Nginx服务正在保存至:“/etc/yum.repos.d/epel.repo”
100%[==================================================>]664--.-K/s用时0.008s
2023-03-1116:09:42(78.4KB/s)-已保存“/etc/yum.repos.d/epel.repo”[664/664])
[root@localhostyum.repos.d]#lsbakCentOS-Base.repoepel.repolocal.repo2.安装Nginx服务做好源配置之后,就可以使用Yum安装方法安装Nginx服务了。[root@localhostyum.repos.d]#yuminstall-ynginx已安装:nginx.x86_641:1.20.1-10.el7
作为依赖被安装:nginx-filesystem.noarch1:1.20.1-10.el7openssl11-libs.x86_641:1.1.1k-5.el7
完毕!8.2.2安装并运行Nginx服务3.启动Nginx服务[root@localhostyum.repos.d]#setenforce0[root@localhostyum.repos.d]#firewall-cmd--add-service=http--permanentsuccess[root@localhostyum.repos.d]#firewall-cmd--reloadsuccess[root@localhostyum.repos.d]#firewall-cmd--list-servicessshdhcpv6-clienthttp[root@localhostyum.repos.d]#systemctlstartnginx以上关闭了selinux,设置防火墙放行了Http服务,最后把nginx服务启动起来。4.访问Nginx默认网站在windows上,使用chrome浏览器打开地址00,即可以访问Nginx默认主页,如图8-13所示。图8-13Nginx默认主页8.2.2安装并运行Nginx服务5.修改默认主页Nginx服务默认网站目录是/usr/share/nginx/html/,进入这个目录,将自己的网站上传上来,或者修改index.html,即可以实现访问自己制作的网页。[root@localhost~]#cd/usr/share/nginx/html/[root@localhosthtml]#ls404.html50x.htmlen-USiconsimgindex.htmlnginx-logo.pngpoweredby.png[root@localhosthtml]#echoHellonginx,Welcometousenginx!>index.html再次打开地址00,即访问自己制作的页面了,如图8-14所示。图8-14修改Nginx默认主页8.2.3修改默认网站目录Nginx服务的配置文件在/etc/nginx目录下,如果要修改Nginx服务的配置,需要对此目录下的文件进行修改,其中最重要的就是Nginx的主配置文件Nginx.conf文件,如图8-15所示。
图8-15Nginx主配置文件nginx.conf配置文件分为3个部分:全局块、events块和http块。第一部分:全局块内容包括从配置文件开始到events块之间的内容,主要功能:配置运行Nginx服务器的用户(组)、允许生成的workerprocess数、进程
PID存放路径、日志存放路径和类型以及配置文件的引入等。8.2.3修改默认网站目录第二部分:events块events块主要功能:对多workprocess下的网络连接序列化、同时接收多个网络连接等功能进行开启、关闭设置,选取哪种事件驱动模型来处理连接请求,设置每个wordprocess可以同时支持的最大连接数等。第三部分:http块http块主要功能:设置代理、缓存和日志定义等绝大多数功能以及第三方模块的配置。http块也可以包括http全局块、server块。nginx.conf配置文件中第42行是在http模块的server配置下,用来定义Nginx服务默认网站目录。42root/usr/share/nginx/html;将其修改为/web,保存退出。42root/web;然后建立/web目录,在其中建立index.html文件,输入内容Thisismyweb。[root@localhostnginx]#mkdir/web[root@localhostnginx]#echoThisismyweb!>/web/index.html[root@localhostnginx]#systemctlrestartnginx重启Nginx服务后,再使用浏览器访问00(服务器IP),发现已经访问到了自己制作的页面,如图8-16所示。图8-16修改Nginx默认网站目录8.2.4配置虚拟主机1.基于域名配置虚拟主机域名虚拟主机主要使用在外网场景下,实现不同的域名,定位到一台主机的不同站点。(1)修改配置文件打开nginx.conf文件。[root@localhostnginx]#vinginx.conf在http模块的第一个server模块结束之后,添加如下内容。server{listen80;server_name;indexindex.html;root
/web1;}server{listen80;server_name;indexindex.html;root
/web2;}这里定义了两个主机,监听的都是80端口,第一个使用的域名是,网站根目录是/web1,第二个使用的域名是,网站根目录是/web2。[root@localhostnginx]#systemctlrestartnginx重新启动nginx服务,使配置文件生效。8.2.4配置虚拟主机(2)测试配置首先创建/web1和/web2目录,分别建立index.html首页文件,内容分别为thisismyweb1和thisismyweb2。[root@localhostnginx]#mkdir/web1[root@localhostnginx]#mkdir/web2[root@localhostnginx]#echothisismyweb1>/web1/index.html[root@localhostnginx]#echothisismyweb2>/web2/index.html然后在/etc/hosts文件中添加域名解析。00
00
这里将和解析成服务器的IP地址。最后使用curl命令进行测试。[root@localhostnginx]#curlthisismyweb1[root@localhostnginx]#curlthisismyweb28.2.4配置虚拟主机2.基于端口配置虚拟主机域名虚拟主机主要使用在内网场景下,实现不同的端口,定位到一台主机的不同站点。(1)修改配置文件打开nginx.conf文件,在nginx.conf的http的第一个server模块结束之后,添加如下内容server{
listen8080;
server_name00;
root/web1;}server{
listen8888;
server_name00;
root/web2;}这里定义了两个主机,监听的分别是8080端口和8888端口,监听8080端口的网站根目录是/web1,监听8888端口的网站根目录是/web2。8.2.4配置虚拟主机(2)测试配置首先防火墙放行8080、8888端口。[root@localhostnginx]#firewall-cmd--add-port=8080/tcp--permanentsuccess[root@localhostnginx]#firewall-cmd--add-port=8888/tcp--permanentsuccess重启Nginx服务。[root@localhostnginx]#systemctlrestartnginx使用curl命令测试结果。[root@localhostnginx]#curl00:8080thisismyweb1[root@localhostnginx]#curl00:8888thisismyweb28.2.5配置反向代理反向代理是指以代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给Internet上请求连接的客户端,此时代理服务器对外就表现为一个服务器。(1)修改配置文件打开nginx.conf,在默认网站的location处添加proxy_pass00:8080。38server{39listen80default_server;40listen[::]:80default_server;41server_name_;42root/web;4344#Loadconfigurationfilesforthedefaultserverblock.45include/etc/nginx/default.d/*.conf;4647location/{4849proxy_pass00:808050}8.2.5配置反向代理反向代理使用的是Server模块下的Location模块,配置后,当访问00(服务器IP)时,就不会出现/web下默认目录的内容,而是将请求代理转发到了0:81,访问结果如图8-17所示。图8-17反向代理到0:81location根据预先定义的URL匹配规则来接收用户发送的请求,根据匹配结果,将请求转发到后台服务器。location匹配规则如表8-1所示。表8-1location匹配规则符号含义=字面精准匹配,如果匹配,则跳出匹配过程(不再进行正则匹配)~开头区分大小写的正则匹配~*开头不区分大小写的正则匹配^~开头表示URL以某个常规字符串开头,理解为匹配URL路径即可/通用匹配,在没有正则表达式匹配时,任何请求都会匹配到@不是普通的location匹配,用于location内部重定向的变量
多个location配置的匹配顺序为:首先匹配“=”,其次匹配“^~”,再匹配文件location书写顺序,若没有匹配到,最后把所有请求交给通配符(“/”)。当有匹配成功时候,停止匹配,按当前匹配规则处理请求。8.2.6配置负载均衡在反向代理的基础上,使用upstream模块。打开nginx.conf配置文件,修改默认网站的location内容,并在server上方加入upstream模块,配置如下:39upstreamweb{40server00:8080;41server00:8888;42}4344server{45listen80default_server;46listen[::]:80default_server;47server_name_;48root/web;4950#Loadconfigurationfilesforthedefaultserverblock.51include/etc/nginx/default.d/*.conf;5253location/{5455proxy_passhttp://web;56}8.2.6配置负载均衡首先将55行的代理地址修改为http://web,然后在39至42行定义了upstream模块,其中的web和代理的http://web保持一致,然后在内部定义了2个server,一个是00:8080,另一个是00:8888。当访问00时,访问被代理到http://web,转发到upstreamweb中,在默认的访问策略下,轮询访问00:8080和00:8888,通过浏览器刷新可在2个服务器之间不断切换访问,如图8-18和8-19所示。图8-18首次访问0:8080图8-19刷新后访问0:8888本任务注意点(1)反向代理是将外部访问代理到内部主机,和正向代理方向相反。(2)负载均衡要基于反向代理,即首先要配置反向代理。任务拓展训练(1)启动2台linux,配置名称为Proxy和Web。(2)在Proxy上安装Nginx服务,修改默认访问目录是/data。(3)在Web上安装Apache服务,配置基于端口的虚拟主机,端口为8000和8001。(4)在Proxy上配置反向代理和负载均衡,将访问默认网站转发到Web的两个虚拟主机上,访问8000端口和访问8001端口的次数比例为2:1。补充知识Nginx与Apache性能对比Nginx和Apache是我们常用的Web服务器软件,它们可以为许多不同的服务器配置提供良好的性能,但两者适应的场景有所不同。下面简单介绍了有关Apache和Nginx的优缺点对比。1.Apache和Nginx介绍Apache(音译为阿帕奇)是目前世界使用排名第一的Web服务器软件,它可以在大多数服务器(国内服务器或海外服务器)操作系统中运行,由于其多平台和安全性被广泛使用。Apache几乎是所有流行的Linux发行版上的预安装软件,许多系统管理员也喜欢Apache的可定制性及通过加载各种模块来创建自己的服务器。Nginx(enginex)是一个高性能的HTTP和反向代理Web服务器,同时也提供了IMAP/POP3/SMTP服务。与Apache相比,它虽然起步晚,但在性能上一点不逊色,能与静态文件配合得很好,并且可执行负载均衡器和反向代理功能,非常适用于现代网络。补充知识2.Apache和Nginx的优缺点对比(1)连接和请求处理Nginx拥有优秀的架构设计,包括模块化设计、事件驱动架构、请求的多阶段异步处理、管理进程与多工作进程设计等,这意味着它可以在有可用资源时一次处理多个请求,预计一次有数千次的连接,性能优越。相反,Apache通过多个多处理模块(MPM)一次处理一个事件,该mpm_prefork模块是一个常见的模块,它会为每个事件生成子进程,并且一次只处理一个连接。(2)静态与动态内容的请求处理Nginx通常不能以原生方式处理动态内容,它需将其发送到外部处理器(比如缓存),然后等待返回,再将内容进行移动,在动态内容请求处理时可能比不上Apache,但在静态资源处理上,Nginx性能会更好。(3)配置服务器Nginx与Apache之间一个明显的区别在于如何配置每个服务器。Nginx采用集中式方式,这意味着用户无法在一个主文件之外配置服务器,不需要处理请求来检查每个目录中的配置文件,缩短了请求处理时间,具有更高的性能。Apache允许通过放置在Web目录树中的特殊文件来分散管理配置,该特殊文件通常称为.htaccess文件,它发出请求时,Apache将检查文件路径的每个元素,这种分散方法能够使WordPress等内容管理系统(CMS)在Apache服务器上提供良好的性能。8.3.1MariaDB概述数据库是按照数据结构来组织、存储和管理数据的仓库,表现为磁盘上的一个文件,而MySQL、Oracle、MariaDB等都是数据库管理系统(DBMS)。MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区维护,采用GPL授权许可。MariaDB问世的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。Mariadb由MySQL的创始人MichaelWidenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQLAB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入了Oracle的手中。8.3.2安装并运行MariaDB服务1.安装MariaDB[root@localhostyum.repos.d]#yuminstall-ymariadbmariadb-server已安装:mariadb.x86_641:5.5.60-1.el7_5mariadb-server.x86_641:5.5.60-1.el7_5
作为依赖被安装:perl-Compress-Raw-Bzip2.x86_640:2.061-3.el7perl-Compress-Raw-Zlib.x86_641:2.061-4.el7perl-DBD-MySQL.x86_640:4.023-6.el7perl-DBI.x86_640:1.627-4.el7perl-Data-Dumper.x86_640:2.145-3.el7perl-IO-Compress.noarch0:2.061-2.el7perl-Net-Daemon.noarch0:0.48-5.el7perl-PlRPC.noarch0:0.2020-14.el7
完毕!MariaDB采用C/S架构,其中MariaDB是客户端,MariaDB-Server是服务端。8.3.2安装并运行MariaDB服务2.启动MariaDB[root@localhost~]#systemctlstartmariadb[root@localhost~]#netstat-ntlpActiveInternetconnections(onlyservers)ProtoRecv-QSend-Q
LocalAddress
ForeignAddressStatePID/Programnametcp
0
0
:3306:*LISTEN18681/mysqld启动Mariadb后查看端口,发现Mariadb服务端口是3306。8.3.3MariaDB基础运维1.初始化数据库密码[root@localhost~]#mysqlWelcometotheMariaDBmonitor.Commandsendwith;or\g.YourMariaDBconnectionidis2Serverversion:5.5.60-MariaDBMariaDBServerCopyright(c)2000,2018,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>在命令行中使用mysql就登录到了Mariadb服务器上,这样是不安全的,需要为数据库管理系统配置一个密码,使用的命令是mysql_secure_installation,这条命令是可以使用Tab键补齐的。[root@localhost~]#mysql_secure_installationNOTE:RUNNINGALLPARTSOFTHISSCRIPTISRECOMMENDEDFORALLMariaDB8.3.3MariaDB基础运维SERVERSINPRODUCTIONUSE!PLEASEREADEACHSTEPCAREFULLY!InordertologintoMariaDBtosecureit,we'llneedthecurrentpasswordfortherootuser.Ifyou'vejustinstalledMariaDB,andyouhaven'tsettherootpasswordyet,thepasswordwillbeblank,soyoushouldjustpressenterhere.Entercurrentpasswordforroot(enterfornone):OK,successfullyusedpassword,movingon...SettingtherootpasswordensuresthatnobodycanlogintotheMariaDBrootuserwithouttheproperauthorisation.Setrootpassword?[Y/n]yNewpassword:Re-enternewpassword:Passwordupdatedsuccessfully!Reloadingprivilegetables.....Success!Bydefault,aMariaDBinstallationhasananonymoususer,allowinganyonetologintoMariaDBwithouthavingtohaveauseraccountcreatedforthem.Thisisintendedonlyfortesting,andtomaketheinstallationgoabitsmoother.Youshouldremovethembeforemovingintoaproductionenvironment.Removeanonymoususers?[Y/n]y...Success!Normally,rootshouldonlybeallowedtoconnectfrom'localhost'.Thisensuresthatsomeonecannotguessattherootpasswordfromthenetwork.Disallowrootloginremotely?[Y/n]y...Success!8.3.3MariaDB基础运维...Success!Bydefault,MariaDBcomeswithadatabasenamed'test'thatanyonecanaccess.Thisisalsointendedonlyfortesting,andshouldberemovedbeforemovingintoaproductionenvironment.
Removetestdatabaseandaccesstoit?[Y/n]y-Droppingtestdatabase......Success!-Removingprivilegesontestdatabase......Success!Reloadingtheprivilegetableswillensurethatallchangesmadesofarwilltakeeffectimmediately.Reloadprivilegetablesnow?[Y/n]y...Success!Cleaningup...Alldone!Ifyou'vecompletedalloftheabovesteps,yourMariaDBinstallationshouldnowbesecure.ThanksforusingMariaDB!8.3.3MariaDB基础运维使用mysql_secure_installation命令后,系统提示输入当前密码,因为当前没有密码,回车即可,接下来当出现如下内容。Setrootpassword?[Y/n]yNewpassword:Re-enternewpassword:询问是否输入密码,输入y确认,然后输入两次密码。然后提示是否删除匿名用户,输入y删除。Removeanonymoususers?[Y/n]y接下来询问是否禁止用户在远端登录,输入y,所有用户就不能使用网络登录到此数据库了,如果希望用户可以从网络上登录,这处要选择n。Disallowrootloginremotely?[Y/n]y然后询问是否删除test数据库,如不使用测试数据库可以输入y删除。Removetestdatabaseandaccesstoit?[Y/n]y最后询问是否加载特权表,输入y确认。Reloadprivilegetablesnow?[Y/n]y8.3.3MariaDB基础运维2.登录MariaDB数据库当初始化了数据库的密码后,就可以使用这个密码登录了。(1)登录本机MariaDB[root@localhost~]#mysql-uroot-pEnterpassword:WelcometotheMariaDBmonitor.Commandsendwith;or\g.YourMariaDBconnectionidis12Serverversion:5.5.60-MariaDBMariaDBServerCopyright(c)2000,2018,Oracle,MariaDBCorporationAbandothers.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.MariaDB[(none)]>登录到本机Mariadb服务使用mysql-uroot-p提示输入密码,输入初始化中设置的密码就可以登录了。这里的-uroot代表用户是root用户。输入-p回车提示输入密码,也可以在-p的后边直接写上密码,但不建议这么做,因为不安全。8.3.3MariaDB基础运维(2)登录到远端MariaDB[root@localhost~]#mysql-uroot-p-hEnterpassword:MariaDB[(none)]>登录到远程的Mariadb服务器只主需要加上-h参数,然后在后边加上远程的IP地址,这里以本机地址模拟远程主机。登录远程主机的前提是在初始化的时候没有禁止远程登录,否则是不能登录到远程MariaDB服务器的。3.使用数据库和表登录到MariaDB后,就可以进行数据库和表的基本操作了。(1)查看数据库。MariaDB[(none)]>showdatabases;+---------------------------+|Database
|+---------------------------+|information_schema
||mysql
||performance_schema|+---------------------------+使用showdatabases;可以查看本数据库管理系统中管理的所有数据库,在命令结束后要使用“;”结束。8.3.3MariaDB基础运维(2)使用某个数据库MariaDB[(none)]>usemysql;ReadingtableinformationforcompletionoftableandcolumnnamesYoucanturnoffthisfeaturetogetaquickerstartupwith-ADatabasechanged使用“usemysql;”即可使用mysql这个数据库了。(3)查看数据表使用showtables;命令可以查看当前mysql数据库中所有表。MariaDB[mysql]>showtables;+---------------------------+|Table
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- CJ/T 106-1999城市生活垃圾产量计算及预测方法
- 幼儿园结构面试题及答案
- 系统分析师考试核心考点总结试题及答案
- 社会工作者的理论知识与实习结合试题及答案
- 医院护理安全试题及答案
- 社会工作中的状态评估技术中级社会工作者考试试题及答案
- 坑塘承包合同协议书
- 协调pmc管理制度
- 工作稳定测试题库及答案
- 机加工厂设备管理制度
- 合成生物学行业未来三年发展洞察及预测分析报告
- JJF 2168-2024 盐雾试验箱校准规范
- 新概念英语第二册-lesson-77-A-Successful-Operation
- 取髂骨植骨术后护理
- 中医推拿治疗儿童近视
- 社区服务中心突发事件应急预案
- 5.5 跨学科实践:制作望远镜教学设计八年级物理上册(人教版2024)
- 国家职业技术技能标准 6-30-05-05 挖掘铲运和桩工机械司机 人社厅发20235号
- 《电力系统继电保护》考试复习题库(附答案)
- 文化遗产概览学习通超星期末考试答案章节答案2024年
- 中石油加油站改造工程施工方案
评论
0/150
提交评论