rhce:web服务器

web服务器简介

服务器端:此处使用 nginx 提供 web 服务, RPM 包获取: http://nginx.org/packages/
/etc/nginx/
├── conf.d #子配置文件目录
├── default.d
├── fastcgi.conf
├── fastcgi.conf.default
├── fastcgi_params #用以翻译nginx的变量供php识别
├── fastcgi_params.default
├── koi-utf
├── koi-win
├── mime.types #用以配置支持的媒体文件类型
├── mime.types.default
├── nginx.conf #主配置文件
├── nginx.conf.default
├── scgi_params
├── scgi_params.default
├── uwsgi_params #用以配置nginx的变量供python识别
├── uwsgi_params.default
└── win-utf
[root@localhost ~]# tree /usr/share/nginx/html/ #默认的nginx网站根目录
[root@localhost ~]# tree /var/log/nginx/ #nginx的日志文件所在目录
http 协议请求的工作流程
1 )终端客户在 web 浏览器地址栏输入访问地址 http://www.ceshi.com:80/index.html
2 web 浏览器请求 DNS 服务器把域名 www.ceshi.com 解析成 web 服务器的 IP 地址
3 web 浏览器将端口号(默认是 80 )从访问地址( URL )中解析出来
4 web 浏览器通过解析后的 ip 地址及端口号与 web 服务器之间建立一条 TCP 连接
5 )建立 TCP 连接后, web 浏览器向 web 服务器发送一条 HTTP 请求报文
6 web 服务器响应并读取浏览器的请求信息,然后返回一条 HTTP 响应报文。
7 web 服务器关闭 HTTP 连接,关闭 TCP 连接, web 浏览器显示访问的网站内容到屏幕上。
配置nginx
安装nginx程序
[root@localhost ~]# dnf install nginx -y

练习:

1.搭建静态网站——基于http协议的静态网站

1.1 搭建一个web服务器,访问该服务器时显示“hello world”欢迎界面 。

[root@localhost ~]# echo "hello world" > /usr/share/nginx/html/index.html
[root@localhost ~]# curl localhost
hello world
[root@localhost ~]# curl 192.168.30.34
hello world

1.2 建立两个基于ip地址访问的网站,要求如下

该网站 ip 地址的主机位为 100 ,设置首页目录为 /www/ip/100 ,网页内容为: this is 100
该网站 ip 地址主机位为 200 ,设置首页目录为 /www/ip/200 ,网页内容为: this is 200
[root@localhost ~]# nmtui  //进入网络配置界面,添加{100,200}IP地址
[root@localhost ~]# nmcli connection up ens33  //重新连接

[root@localhost ~]# mkdir -pv /www/ip/{100,200}
[root@localhost ~]# echo this is 100 > /www/ip/100/index.html
[root@localhost ~]# echo this is 200 > /www/ip/200/index.html

//设置selinux,必须设置,否则无法看到网页页面内容
[root@server html]# setenforce 0
[root@server html]# getenforce
Permissive

#新建文件,写入如下配置
[root@localhost ~]# vim /etc/nginx/conf.d/test_ip.conf
server {
    listen 192.168.30.100:80;
    root /www/ip/100;
}
server {
    listen 192.168.30.200:80;
    root /www/ip/200;
    location / {}
}

[root@localhost ~]# systemctl restart nginx  //重启nginx服务
[root@localhost ~]# curl 192.168.168.100
this is 100
[root@localhost ~]# curl 192.168.168.200
this is 200

1.3 建立两个基于不同端口访问的网站,要求如下:

建立一个使用 web 服务器默认端口的网站,设置网站首页目录为 /www/port/80 ,网页内容为: the
port is 80
建立一个使用 10000 端口的网站,设置网站首页目录为 /www/port/10000 ,网页内容为: the port
is 10000
[root@localhost ~]# nmtui   //添加一个IP地址为192.168.30.132
[root@localhost ~]# nmcli connection up ens33

1.4  建立两个基于域名访问的网站,要求如下:
新建一个网站,域名为 www.ceshi.com ,设置网站首页目录为 /www/name ,网页内容为 this is
test
新建一个网站,域名为 rhce.first.day ,同时可通过 ce.first.day 访问,设置网站首页目录
/www/ce, 网页内容为: today is first day of class
基于域名的网站,需要用到域名解析。 域名 ------->ip 地址
浏览器如何通过域名去查询 URL 对应的 IP (对应服务器地址):
1 、浏览器缓存:浏览器会按照一定的频率缓存 DNS 记录。
2 、操作系统缓存:如果浏览器缓存中找不到需要的 DNS 记录,那就去操作系统中的 hosts 文件找。hosts 是一个没有扩展名的系统文件,其作用就是将一些常用的网址域名与其对应的 IP 地址建立一个关联" 数据库 " ,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从 Hosts 文 件中寻找对应的IP 地址,一旦找到,系统会立即打开对应网页,如果没有找到,则系统会再将网址提交DNS 域名解析服务器进行 IP 地址的解析。
        windows下的 hosts 文件路径: C:\Windows\System32\drivers\etc\hosts
        Linux下的 hosts 文件路径 :/etc/hosts
3 、路由缓存:路由器也有 DNS 缓存。
4 ISP DNS 服务器: ISP 是互联网服务提供商 (Internet Service Provider) 的简称, ISP 有专门的
DNS 服务器应对 DNS 查询请求。
5 、根服务器: ISP DNS 服务器还找不到的话,它就会向根服务器发出请求,进行递归查询
DNS 服务器先问根域名服务器 .com 域名服务器的 IP 地址,然后再问 .com 域名服务器,依次类推)

 

# 使用IP地址为192.169.30.100的来做实验
[root@localhost ~]# mkdir /www/{name,ce}
[root@localhost ~]# echo this is test > /www/name/index.html
[root@localhost ~]# echo today is first day of class > /www/ce/index.html
[root@localhost ~]# vim /etc/nginx/conf.d/test_servername.conf
server {
    listen 192.168.30.100:80;
    server_name www.ceshi.com;
    root /www/name;
    location / {}
}
server {
    listen 192.168.30.100:80;
    server_name rhce.first.day ce.first.day;
    root /www/ce;
    location / {}
}

# 测试
[root@localhost ~]# vim /etc/hosts
192.168.30.100 www.ceshi.com rhce.first.day ce.first.day
[root@localhost ~]# systemctl restart nginx
[root@localhost ~]# curl www.ceshi.com
this is test
[root@localhost ~]# curl rhce.first.day
today is first day of class
[root@localhost ~]# curl ce.first.day
today is first day of class

1.5 基于虚拟目录和用户控制的web网站

虚拟目录实现

[root@localhost ~]# nmtui   //添加一个IP地址为192.168.30.155
[root@localhost ~]# nmcli connection up ens33

#虚拟目录实现
[root@localhost ~]# cat /etc/nginx/conf.d/test_virtualdir.conf
server {
    listen 192.168.30.155:80;
    root /usr/share/nginx/html;
    location /real {
    alias /www/real;
    }
}

[root@localhost ~]# mkdir /www/real/
[root@localhost ~]# echo real-virtual > /www/real/index.html
[root@localhost ~]# systemctl restart nginx
[root@localhost ~]# curl 192.168.30.155/real/   
real-virtual

 用户访问控制

#用户访问控制
[root@localhost ~]# cat /etc/nginx/conf.d/test_virtualdir.conf
server {
    listen 192.168.30.155:80;
    root /usr/share/nginx/html;
    location /real {
        alias /www/real;
        auth_basic on;
        auth_basic_user_file /etc/nginx/conf.d/auth-password;
    }
}
[root@localhost ~]# dnf install httpd-tools -y
[root@localhost ~]# htpasswd -cb /etc/nginx/conf.d/auth-password user1
123456
[root@localhost ~]# systemctl restart nginx

2. 搭建静态网站——基于https协议的静态网站

1 https 简介
超文本传输协议 HTTP 协议被用于在 Web 浏览器和网站服务器之间传递信息。 HTTP 协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web 浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此HTTP 协议不适合传输一些敏感信息,比如信用卡号、密码等。为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议 HTTPS
HTTPS (全称: Hyper Text Transfer Protocol over Secure Socket Layer Hypertext Transfer  Protocol Secure ,超文本传输安全协议),是以安全为目标的 HTTP 通道。 HTTPS并不是一个新协议, 而是 HTTP+SSL TLS )。原本 HTTP 先和 TCP (假定传输层是 TCP 协议)直接通信,而加了 SSL 后,就变成HTTP 先和 SSL 通信,再由 SSL TCP 通信,相当于 SSL 被嵌在了 HTTP TCP 之间。
(2)
SSL 协议分为两层:
SSL 记录协议 ( SSL Record Protocol ):它建立在可靠的传输协议(如 TCP )之上,为高层协议提供数据封装、压缩、加密等基本功能。
SSL 握手协议( SSL Handshake Protocol ):它建立在 SSL 记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。
SSL 协议提供的服务:
1 )认证用户和服务器,确保数据发送到正确的客户机和服务器
2 )加密数据以防止数据中途被窃取
3 )维护数据的完整性,确保数据在传输过程中不被改变

 https网站配置

[root@localhost ~]# nmtui   //添加一个IP地址为192.168.30.156提供给https
[root@localhost ~]# nmcli connection up ens33
[root@localhost ~]# mkdir -pv /www/https/
[root@localhost ~]# echo https > /www/https/index.html
          //此处为空
[root@localhost conf.d]# cd /etc/pki/tls/certs/
[root@localhost certs]# openssl genrsa -out https.key   //key是私钥文件
[root@localhost certs]# openssl req -utf8 -new -key https.key -x509 -days 100 -out https.crt
[[root@localhost ~]# cat /etc/nginx/conf.d/test_https.conf
server {
    # listen 80;
    listen 192.168.30.156:443 ssl;
    root /www/https;
    ssl_certificate /etc/pki/tls/certs/https.crt;
    ssl_certificate_key /etc/pki/tls/certs/https.key;
    location / {}
}
[root@localhost ~]# systemctl restart nginx
#检查
[root@localhost ~]# curl --insecure https://192.168.30.156
https
[root@localhost ~]# curl -k https://192.168.30.156
https

3.搭建动态网站

动态网站并不是指具有动画功能的网站,而是指网站内容可根据不同情况动态变更的网站,一般情况下
动态网站通过数据库进行架构。 动态网站除了要设计网页外,还要通过数据库和编程序来使网站具有更
多自动的和高级的功能。
动态网页:使用网页脚本语言,比如 php JSP 等,通过脚本将网站内容动态存储到数据库,用户访问网
站是通过读取数据库来动态生成网页的方法。
[root@localhost ~]# nmtui   //添加一个IP地址为192.168.30.136
[root@localhost nginx]# nmcli connection up ens33
[root@localhost ~]# dnf install php php-fpm -y
[root@localhost ~]# systemctl restart nginx php-fpm
[root@ntp-server ~]# vim /usr/share/nginx/html/index.php
   //写入  <?php phpinfo(); ?>  
#使用浏览器访问

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/906919.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

jenkins国内插件源

Jenkins是一个开源的持续集成和持续部署&#xff08;CI/CD&#xff09;工具, 可以大大减轻部署的工作量, 但是jenkins作为一个国外的软件, 在国内下载插件会很麻烦, 因此我们可以将其换为国内源 更换步骤 替换国内插件下载地址 以linux为例 首先, jenkins初始化完成之后不会…

DiffusionDet: Diffusion Model for Object Detection—用于对象检测的扩散模型论文解析

DiffusionDet: Diffusion Model for Object Detection—用于对象检测的扩散模型论文解析 这是一篇发表在CVPR 2023的一篇论文&#xff0c;因为自己本身的研究方向是目标跟踪&#xff0c;之前看了一点使用扩散模型进行多跟踪的论文&#xff0c;里面提到了DiffusionDet因此学习一…

idea 配置tomcat 服务

选择tomcat的安装路径 选到bin的文件夹的上一层就行

opencv 图像预处理

图像预处理 ​ 在计算机视觉和图像处理领域&#xff0c;图像预处理是一个重要的步骤&#xff0c;它能够提高后续处理&#xff08;如特征提取、目标检测等&#xff09;的准确性和效率。OpenCV 提供了许多图像预处理的函数和方法&#xff0c;以下是一些常见的图像预处理操作&…

初始JavaEE篇——多线程(4):wait、notify,饿汉模式,懒汉模式,指令重排序

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;JavaEE 目录 wait、notify 方法 多线程练习 单例模式 饿汉模式 懒汉模式 指令重排序 wait、notify 方法 wait 和 我们前面学习的sleep…

新工具可绕过 Google Chrome 的新 Cookie 加密系统

一位研究人员发布了一款工具&#xff0c;用于绕过 Google 新推出的 App-Bound 加密 cookie 盗窃防御措施并从 Chrome 网络浏览器中提取已保存的凭据。 这款工具名为“Chrome-App-Bound-Encryption-Decryption”&#xff0c;由网络安全研究员亚历山大哈格纳 (Alexander Hagenah…

JavaSE笔记4】API、包、String类、Object类

目录 一、API 二、包 2.导入不同包下的同名程序 三、String 1. String类是什么&#xff1f; 2. 如何创建String对象?(常用的四种方法&#xff09; 3. String API a. 遍历字符串 b. 判断字符串内容是否相等&#xff1a; c. 截取子串 d. 替换部分内容 e. 匹配子串 f. 匹配开头字…

【含文档】基于ssm+jsp的超市订单后台理系统(含源码+数据库+lw)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: apache tomcat 主要技术: Java,Spring,SpringMvc,mybatis,mysql,vue 2.视频演示地址 3.功能 该系统有两个主…

雷军救WPS“三次”,WPS注入新生力量,不再“抄袭”微软

救WPS“三次” 1989年&#xff0c;求伯君用128万行代码编写出了WPS1.0&#xff0c;宣告了中国自主办公时代的开启。 那时候&#xff0c;雷军还在武汉大学深造&#xff0c;他早就把求伯君当成了自己的榜样&#xff0c;这一来二去的&#xff0c;雷军和WPS之间也就结下了不解之缘…

MySQL中,如何定位慢查询?定位到的慢SQL如何分析?

目录 1. 慢查询发生的场景&#xff1f; 2. MySQL中&#xff0c;如何定位慢查询&#xff1f; 2.1 详细解释 3. 定位到的慢SQL如何分析&#xff1f; 3.1 详细说明 1. 慢查询发生的场景&#xff1f; 2. MySQL中&#xff0c;如何定位慢查询&#xff1f; 介绍一下当时产生问题…

Java基于微信小程序的私家车位共享系统(附源码,文档)

博主介绍&#xff1a;✌stormjun、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

MiniPCIe 接口 CANFD卡

概述 基于MiniPCIe高性能接口CANFD卡采用标准MiniPCIe接口尺寸设计&#xff0c;方便PC机或嵌入式设备快速拓展出CANFD接口&#xff0c;实现数据采集与数据处理。 兼容高速CAN和CANFD两种通信需求、支持CAN2.0A、CAN2.0B协议&#xff0c;符合ISO11898-1规范。 规格 PC接口&…

kafka实时返回浏览数据

在安装完kafka(Docker安装kafka_docker 部署kafka-CSDN博客)&#xff0c;查看容器是否启动&#xff1a; docker ps | grep -E kafka|zookeeper 再用python开启服务 from fastapi import FastAPI, Request from kafka import KafkaProducer import kafka import json import …

Docker Compose一键部署Spring Boot + Vue项目

目录 前提条件 概述 Compose简介 Compose文件 Compose环境 Compose命令 帮助命令 关键命令 Compose部署项目 初始化环境 查看代码文件 sql数据准备 nginx配置文件准备 创建 compose.yaml 一键启动compose多个容器 浏览器访问虚拟机ip:80(可省略默认的80端口) …

Android——横屏竖屏

系统配置变更的处理机制 为了避免横竖屏切换时重新加载界面的情况&#xff0c;Android设计了一中配置变更机制&#xff0c;在指定的环境配置发生变更之时&#xff0c;无需重启活动页面&#xff0c;只需执行特定的变更行为。该机制的视线过程分为两步&#xff1a; 修改 Androi…

【前端基础】CSS进阶

目标&#xff1a;掌握复合选择器作用和写法&#xff1b;使用background属性添加背景效果 01-复合选择器 定义&#xff1a;由两个或多个基础选择器&#xff0c;通过不同的方式组合而成。 作用&#xff1a;更准确、更高效的选择目标元素&#xff08;标签&#xff09;。 后代选…

Chrome与火狐的安全功能全面评估

在当今数字化时代&#xff0c;网络安全已成为用户最为关注的问题之一。作为两款广受欢迎的浏览器&#xff0c;Chrome和火狐&#xff08;Firefox&#xff09;都提供了多种安全功能来保护用户的在线隐私和数据安全。本文将全面评估这两款浏览器的安全功能&#xff0c;帮助用户更好…

动态代理:面向接口编程,屏蔽RPC处理过程

RPC远程调用 使用 RPC 时&#xff0c;一般的做法是先找服务提供方要接口&#xff0c;通过 Maven把接口依赖到项目中。在编写业务逻辑的时候&#xff0c;如果要调用提供方的接口&#xff0c;只需要通过依赖注入的方式把接口注入到项目中&#xff0c;然后在代码里面直接调用接口…

VsCode中搭建 Rt-Thread 开发环境(编译,调试,下载)

VsCode中搭建 Rt-Thread 开发环境&#xff08;编译&#xff0c;调试&#xff0c;下载&#xff09; 文章目录 VsCode中搭建 Rt-Thread 开发环境&#xff08;编译&#xff0c;调试&#xff0c;下载&#xff09;一 . 下载rt-thread源码二. 安装env脚本环境三 . 配置工具链3.1 使用…

Node.js:Express 中间件 CORS 跨域资源共享

Node.js&#xff1a;Express 中间件 & CORS 中间件全局中间件局部中间件分类错误级中间件内置中间件 CORS原理预检请求 中间件 中间件是不直接接收请求&#xff0c;也不直接发送响应&#xff0c;而是在这之间处理一个中间过程的组件。 当一个请求到来&#xff0c;会经过多…