RHCE---第三天:Web服务器
一、WWW简介
-
Web网络服务也叫WWW(World Wide Web 全球信息广播)万维网服务,一般是指能够让用户通过浏览器访问到互联网中文档等资源的服务
-
Web 网络服务是一种被动访问的服务程序,即只有接收到互联网中其他主机发出的请求后才会响应,最终用于提供服务程序的 Web 服务器会通过 HTTP(超文本传输协议)或HTTPS(安全超文本传输协议)把请求的内容传送给用户,如图:
1、常见Web服务程序介绍:
- Windows系统中默认Web服务程序是I I S(Internet Information Services),这是一款图形化的网站管理工具,IIS程序不光能提供Web网站服务,还能够提供FTP、NMTP、SMTP等服务功能,但只能在Windows系统中使用
2004 年 10 月 4 日,为俄罗斯知名门户站点而开发的 Web 服务程序 Nginx 横空出世。Nginx程序作为一款轻量级的网站服务软件,因其稳定性和丰富的功能而快速占领服务器市场,但Nginx 最被认可的还当是低系统资源占用、内存少且并发能力强,因此得到了国内诸如新浪、网易、腾讯等门户站的青睐
Apache------取自美国印第安人土著语Apache,寓意着拥有高超的作战策略和无穷的耐性,由于其跨平台和安全性广泛被认可且拥有快速、可靠、简单的API扩展。目前拥有很高的Web服务软件市场占用率,全球使用最多的Web服务软件,开源、跨平台(可运行于Unix,linux,windows中)
2、服务器主机
- 网站是由域名、网页源程序和主机空间组成的,其中主机空间则是用于存放网页源代码并能够将网页内容展示给用户,虽然本小节与Apache服务没有直接关系,但如果您想要在互联网中搭建网站并被顺利访问,主机空间一定不能选错
-
虚拟主机:在一台服务器中分出一定的磁盘空间供用户放置网站、存放数据等,仅提供基础的网站访问、数据存放与传输流量功能,能够极大的降低用户费用,也几乎不需要管理员维护除网站数据以外的服务,适合小型网站
-
VPS(Virtual Private Server):在一台服务器中利用OpenVZ、Xen或KVM等虚拟化技术模拟出多个"主机",每个主机都有独立的IP地址、操作系统,实现不同VPS之间磁盘空间、内存、CPU资源、进程与系统配置间的完全隔离,管理员可自由使用分配到的主机中的所有资源,所以需要有一定的维护系统的能力,适合小型网站
-
云服务器(ECS):是一种整合了计算、存储、网络,能够做到弹性伸缩的计算服务,其使用起来与VPS几乎一样,但差别是云服务器建立在一组集群服务器中,每个服务器都会保存一个主机的镜像(备份),大大的提升了安全稳定性,另外还具备了灵活性与扩展性,用户只需按使用量付费的即可,适合大中小型网站。
-
独立服务器:这台服务器仅提供给您使用,详细来讲又可以区分为租用方式与托管方式
- 租用方式:用户只需将硬件配置要求告知IDC服务商,服务器硬件设备由机房负责维护,运维管理员一般需要自行安装相应的软件并部署网站服务,租期可以为月、季、年,减轻了用户初期对硬件设备的投入,适合大中型网站。
- 托管方式:用户需要自行购置服务器后交给IDC服务供应商的机房进行管理(缴纳管理服务费用),用户对服务器硬件配置有完全的控制权,自主性强,但需要自行维护、修理服务器硬件设备,适合大中型网站。
- 另外有必要提醒,选择主机空间供应商时请一定要注意看口碑,综合分析再决定购买,某些供应商会有限制功能、强制添加广告、隐藏扣费或强制扣费等恶劣行为,一定一定不要上当!
3、主要数据
- 服务器所提供的最主要数据是超文本标记语言(Hyper Text Markup Language,HTML)、多媒体文件(图片、影像、声音、文字等,都属于多媒体或称为超媒体),HTML只是一些纯文本数据,通过所谓的标记来规范所要显示的数据格式
4、浏览器
- 客户端收到服务器的数据之后需要软件解析服务器所提供的数据,最后将效果呈现在用户的屏幕上。
- 那么著名的浏览器就有内建在Windows操作系统内的IE浏览器(淘汰)和Microsoft Edge,还有Firefox浏览器和Google的chrome浏览器
5、网址及HTTP简介
- web服务器提供的这些数据大部分都是文件,那么我们需要在服务器端先将数据文件写好,并且放置在某个特殊的目录下面,这个目录就是我们整个网站的首页,在redhat中,这个目录默认在 /var/www/html 。
- 浏览器是通过你在地址栏中输入你所需要的网址来取得这个目录的数据的
URL
-
Uniform Resource Locator,统一资源定位符,对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址
-
网址格式:
<协议>://<主机或主机名>[:port]/<目录资源,路径>
** -
协议::http、https、ftp等
-
主机地址或者主机名:主机地址就是服务器在因特网所在的IP地址。如果是主机名的话,那么就需要域名解析了
-
端口号(port):http为80,https为443 (IANA:互联网数字分配机构)
- 0-1023:永久地分配给固定的应用程序使用
- 1024-41951:注册端口,但要求不是特别严格,分配给程序注册为某应用使用
- 41952-60000:客户端程序随机使用的端口,动态端口,或私有端口
二、部署Nginx
dart
[root@server ~]# setenforce 0
[root@server ~]# systemctl stop firewalld
[root@server ~]# systemctl disable firewalld
[root@server ~]# yum install nginx -y
[root@server ~]# nginx -V # 查看版本,编译器、配置参数等信息
[root@server ~]# systemctl start nginx # 启动httpd
[root@server ~]# systemctl enable nginx # 设置开机启动
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
[root@server ~]# systemctl status nginx # 查看状态,q键退出查看
[root@server ~]# ps -ef | grep nginx # 查看进程
root 1690 1 0 13:57 ? 00:00:00 nginx: master process /usr/sbin/nginx
nginx 1691 1690 0 13:57 ? 00:00:00 nginx: worker process
nginx 1692 1690 0 13:57 ? 00:00:00 nginx: worker process
root 1726 1510 0 14:00 pts/0 00:00:00 grep --color=auto nginx
# 测试,Windows中打开浏览器输入服务器IP地址
1、常用命令
systemctl系列
dart
systemctl start nginx # 启动服务
systemcctl restart nginx # 重启服务
systemctl enable nginx # 开机启动
systemctl stop nginx # 停止服务
systemctl disable nginx # 取消开机启动
systemctl status nginx # 查看状态
nginx自带命令
dart
nginx # 启动nginx
nginx restart # 重启服务
nginx -s reload # 重新加载配置文件
nginx -s stop # 强行停止服务
nginx -s quit # 优雅停止服务,即所有请求处理完后退出服务
nginx -v # 查看版本号
nginx -t # 检查配置文件的语法错误,无错返回ok
nginx配置文件
dart
[root@server ~]# cd /etc/nginx # 服务目录(主配置目录
[root@server nginx]# yum install tree -y
[root@server nginx]# tree
.
├── conf.d # 子配置文件目录
├── default.d
├── fastcgi.conf
├── fastcgi.conf.default
├── fastcgi_params
├── fastcgi_params.default
├── koi-utf # KOI8-R 编码(俄语)转换的映射文件
├── koi-win # # KOI8-R 编码(俄语)转换的映射文件
├── mime.types # 配置支持的媒体类型
├── mime.types.default # 样例文件
├── nginx.conf # 主配置文件
├── nginx.conf.default # 样例文件
├── scgi_params
├── scgi_params.default
├── uwsgi_params
├── uwsgi_params.default
└── win-utf # KOI8-R 编码(俄语)转换的映射文件
2 directories, 15 files
网页默认目录:/usr/share/nginx/html
访问日志:/var/log/nginx/access.log
错误日志:/var/log/nginx/error.log
2、实验操作
实验1( 快速搭建网站)
dart
[root@server ~]# yum install nginx -y
echo "welcome to www.openlab.com" > /usr/share/nginx/html/index.html # 写入网页数据
[root@server ~]# systemctl restart nginx
# 打开windows中打开火狐浏览器输入主机IP测试
或者通过curl命令查看网站的网页数据,验证网站是否能访问
dart
[root@server ~]# curl 127.0.0.1
welcome to www.openlab.com
实验2(替换网页目录)
dart
[root@server ~]# yum install nginx -y
# 新建网页存储目录
[root@server ~]# mkdir -p /www/sxhkt # 网页存储目录不能放在/root下
# 使用xftp将windows端的sxhkt文件夹中的数据上传到Linux端的/www/sxhkt目录内
[root@server ~]# vim /etc/nginx/nginx.conf
# 定位第42行,修改如下:
root /www/sxhkt;
[root@server ~]# systemctl restart nginx # 重启服务
# 测试:打开windows端浏览器输入服务端IP地址
实验3(内网穿透)
- 搭建网站使用花生壳的内网穿透实现公网访问
第一步:准备工作
dart
# 恢复快照
[root@server ~]# setenforce 0
[root@server ~]# systemctl stop firewalld
[root@server ~]# systemctl disable firewalld
[root@server ~]# yum install nginx -y
[root@server ~]# systemctl start nginx
[root@server ~]# systemctl enable nginx
第二步:搭建网站
dart
# 新建网页存储目录
[root@server ~]# mkdir /www/zy
# 使用xftp将zy网站数据上传到linux的/www/zy目录中
[root@server ~]# vim /etc/nginx/nginx.conf
# server端中启用location模块
server {
listen 80;
listen [::]:80;
server_name _;
location / {
root /www/zy;
index index.html index.htm;
}
[root@server ~]# systemctl restart nginx # 重启服务
第三步:使用花生壳进行内网穿透
注册,登录,完成身份证的实名认证
dart
# 内网穿透第一步
# 创建内网映射,如下:
# 应用名称:自定
# 映射类型:https
# 外网域名:系统指定,不能更改
# 外网端口:443,默认
# 内网主机:本机linux服务的IP地址
# 内网端口:本地linux端的http端口,默认80
dart
# 内网穿透第二步,linux系统安装花生壳客户端
# 下载客户端,选择应用平台为RedHat ,"点击复制"
dart
# 客户端下载:
[root@server ~]# yum install net-tools -y # 安装网络工具包可以使用netstat
[root@server ~]# wget "https://dl.oray.com/hsk/linux/phddns_5.2.0_amd64.rpm" -O phddns_5.2.0_amd64.rpm
# 客户端安装
[root@server ~]# rpm -ivh phddns_5.2.0_amd64.rpm
# 启动
[root@server ~]# phddns start
# 复制下图"右下角的网址"
# 重新打开浏览器,输入http://b.oray.com,完成账户登录,激活
登录激活后花生壳的管理平台效果:
点击绿色公网域名访问网站:https://40a09234i8.imdo.co/
最后能通过公网域名访问网址就说明实验成功。
大家有什么问题可以在评论区与我讨论~