(Linux)搭建静态网站——基于http/https协议的静态网站
简单了解nginx配置文件
1.下载并开启nginx服务
- 下载
[root@localhost ~]# dnf install nginx -y
- 开启
[root@localhost ~]# systemctl restart nginx
1.(1)搭建静态网站——基于http协议的静态网站
实验1:搭建一个web服务器,访问该服务器时显示“hello world”欢迎界面
-
进入指定目录文件下,/usr/share/nginx/html 是 Nginx Web 服务器的默认根目录,用于存放静态文件。当你访问配置了 Nginx 的域名或 IP 地址时,Nginx 会从这个目录中查找并返回相应的文件。
[root@localhost ~]# cd /usr/share/nginx/html
-
写入指定内容"hello world"
[root@localhost html]# echo "hello world" > index.html #或者 [root@localhost html]# vim index.html hello world
-
使用
curl
工具来发送 HTTP 请求,并获取响应(验证是否配置成功)#向本地服务器发送一个 HTTP 请求,并返回服务器的响应 [root@localhost html]# curl localhost hello world #或者 #向该 IP 地址发送一个 HTTP 请求,并返回服务器的响应。 [root@localhost html]# curl 192.168.190.131 hello world
实验2:建立两个基于ip地址访问的网站,要求如下
- 该网站ip地址的主机位为100,设置首页目录为/www/ip/100,网页内容为:this is 100
- 该网站ip地址主机位为200,设置首页目录为/www/ip/200,网页内容为:this is 200
-
创建文件
[root@localhost ~]# mkdir -pv /www/ip/{1,2}00 mkdir: created directory '/www' mkdir: created directory '/www/ip/100' mkdir: created directory '/www/ip/200'#显示目录 /www/ 的状态信息 [root@localhost ~]# stat /www/File: /www/Size: 32 Blocks: 0 IO Block: 4096 directory Device: fd00h/64768d Inode: 102252363 Links: 4 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:default_t:s0 Access: 2024-11-06 16:33:32.107790537 +0800 Modify: 2024-11-06 16:33:32.109790471 +0800 Change: 2024-11-06 16:33:32.109790471 +0800Birth: 2024-11-06 16:33:32.107790537 +0800
-
添加IP地址
[root@localhost ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.168.100/24 +ipv4.gateway 192.168.168.2 ipv4.dns 114.114.114.114 ipv4.method manual autoconnect yes[root@localhost ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.190.200/24 #激活ens160的网络连接。 [root@localhost ~]# nmcli connection up ens160
或者:
[root@localhost ~]# nmtui
–利用图形化工具更便捷 -
配置子配置文件
setenforce 0 命令将 selinux 的模式设置为 Permissive 模式。在 Permissive 模式下,selinux 会记录违反策略的行为,但不会阻止这些行为。换句话说,系统会继续执行操作,但会记录下所有违反 selinux 策略的行为。[root@localhost ~]# cd /etc/nginx/conf.d [root@localhost conf.d]# vim test_ip.conf server {listen 192.168.190.100:80;server_name _;root /www/ip/100; } server {listen 192.168.190.200:80;server_name _;root /www/ip/200; } #设置selinux,必须设置,否则无法看到网页页面内容 [root@localhost conf.d]# setenforce 0 [root@localhost conf.d]# curl 192.168.190.100 this is 100 [root@localhost conf.d]# curl 192.168.190.200 this is 200
实验3:建立两个基于不同端口访问的网站,要求如下:
- 建立一个使用web服务器默认端口的网站,设置网站首页目录为/www/port/80,网页内容为:the port is 80。
- 建立一个使用10000端口的网站,设置网站首页目录为/www/port/10000,网页内容为:the port is 10000。
#创建文件
[root@localhost ~]# mkdir /www/port/{80.10000}
#对应分别写入index.html内容
[root@localhost ~]# echo this port is 80 > /www/port/80/index.html
[root@localhost ~]# echo this port is 10000 > /www/port/10000/index.html
#切换目录(便于操作)
[root@localhost ~]# cd /etc/nginx/conf.d/
#在conf文件中写入服务连接
[root@localhost conf.d]# vim test_port.conf
server {listen 192.168.190.10:80;server_name _;root /www/port/80;
}server {listen 192.168.190.10:10000;root /www/port/10000;location / {}
}
#重启服务生效
[root@localhost ~]# systemctl restart nginx
#用curl验证是否生效
[root@localhost ~]# curl 192.168.190.10:80
the port is 80
[root@localhost ~]# curl 192.168.190.10:10000
the port is 10000
实验4:建立两个基于域名访问的网站,要求如下:
- 新建一个网站,域名为www.ceshi.com,设置网站首页目录为/www/name,网页内容为this is test。
- 新建一个网站,域名为rhce.first.day,同时可通过ce.first.day访问,设置网站首页目录为/www/ce,网页内容为:today is first day of class
#创建目录文件
[root@localhosts ~]# mkdir /www/{name,ce}
#写内容到index.html
[root@localhosts ~]# echo today is first day of class >> /www/ce/index.html
[root@localhosts ~]# echo this is test >> /www/name/index.html
#创建并编辑网页访问文件
[root@localhosts conf.d]# vim test_servername.conf
#添加如下内容
server {listen 192.168.190.10:80;server_name www.ceshi.com;root /www/name;
}
server {listen 192.168.190.10:80;server_name rhce.first.day ce.first.day;root /www/ce;location / {}
}
[root@localhosts conf.d]# vim /etc/hosts
#添加如下内容
192.168.190.10 localhosts www.ceshi.com rhce.first.day ce.first.day
#查看修改的内容是否有问题
[root@localhosts conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
#重启服务
[root@localhosts conf.d]# systemctl restart nginx
#访问
[root@localhosts conf.d]# curl www.ceshi.com
this is test
[root@localhosts conf.d]# curl rhce.first.day
today is first day of class
[root@localhosts conf.d]# curl ce.first.day
today is first day of class
实验5:基于虚拟目录和用户控制的web网站
#网页认证自动生成储存用户密码和用户名的文件---需要下载httpd-tools包来提供相应的服务
[root@localhosts ~]# dnf install httpd-tools -y
#创建用户
[root@localhosts nginx]# htpasswd -cb /etc/nginx/conf.d/auth-password user1 123
#新建文件目录--作为实际访问目录,并写入实际访问的内容index.html
[root@localhosts ~]# mkdir /www/real
[root@localhosts ~]# echo real > /www/real/index.html
#编辑网页访问
[root@localhosts conf.d]# vim test_virtual.conf
server{listen 192.168.190.131:80;root /usr/share/nginx/index;location /real {alias /www/real;auth_basic on;auth_basic_user_file /etc/nginx/conf.d/auth_password;}}
[root@localhosts conf.d]# nginx -t
[root@localhosts conf.d]# systemctl restart nginx
#访问
[root@localhosts conf.d]# curl user1:123@192.168.190.131/real/
real
[root@localhosts conf.d]# curl 192.168.190.131/real/ -u user1
Enter host password for user 'user1':
real
1.(2)搭建静态网站——基于https协议的静态网站
(1).添加IP
# 添加ip
[root@localhosts ~]# nmcli connection modify ens160 +ipv4.addresses 192.168.190.20/24
# 激活更新网卡
[root@localhosts ~]# nmcil c up ens160
(2).创建访问路径
[root@localhosts ~]# mkdir -pv /www/https
# 写入index.html内容
[root@localhosts ~]# echo https > /www/https/index.html
(3).生成私钥和证书
/etc/pki/tls/certs/ 目录通常存储与 TLS(传输层安全性)相关的证书文件,这些文件在 Linux 系统中用于确保安全通信
[root@localhosts ~]# cd /etc/pki/tls/certs/
# 得到一个包含新生成的 RSA 私钥的文件 https.key
[root@localhosts certs]# openssl genrsa -out https.key
#生成一个自签名的 X.509 证书,并将其保存到名为 https.crt 的文件中
[root@localhosts certs]# openssl req -utf8 -new -key https.key -x509 -days 100 - https.crt
# 查看是否成功
[root@localhosts certs]# ls
ca-bundle.crt ca-bundle.trust.crt https.crt https.key
(4).配置网页访问配置文件
[root@localhosts certs]# vim /etc/nginx/conf.d/test_https.conf
[root@localhosts certs]# cat /etc/nginx/conf.d/test_https.conf
server {listen 192.168.190.20:443 ssl;root /www/https;ssl_certificate /etc/pki/tls/certs/https.crt;ssl_certificate_key /etc/pki/tls/certs/https.key;location / {}
}
# 检验.conf文件是否能够生效
[root@localhosts certs]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
#重启生效
[root@localhosts certs]# systemctl restart nginx
(5).访问测试
[root@localhosts certs]# curl --insecure https://192.168.190.20
https
[root@localhosts certs]# curl -k https://192.168.190.20
https
相关文章:
(Linux)搭建静态网站——基于http/https协议的静态网站
简单了解nginx配置文件 1.下载并开启nginx服务 下载 [rootlocalhost ~]# dnf install nginx -y开启 [rootlocalhost ~]# systemctl restart nginx 1.(1)搭建静态网站——基于http协议的静态网站 实验1:搭建一个web服务器,访问该服务器时显示“hello w…...
【机器学习chp3】判别式分类器:线性判别函数、线性分类器、广义线性分类器、分段线性分类器
前言: 本文遗留问题:(1)对最小平方误差分类器的理解不清晰.(2)分段线性判别函数的局部训练法理解不清晰。 推荐文章1,其中有关于感知机的分析 【王木头从感知机到神经网络】-CSDN博客 推荐文…...
【学习】【HTML】HTML、XML、XHTML
HTML 什么是 HTML? HTML (HyperText Markup Language) 是一种用于创建和展示网页的标准标记语言。它由一系列的元素组成,这些元素通过标签的形式来告诉浏览器如何显示内容。 HTML 的基本结构是什么? <!DOCTYPE html> <html> …...
ARM中ZI-data段和RW-data段
ARM中ZI-data段和RW-data段 1、只定义全局变量,不使用,不占用内存空间2、 定义并初始化全局变量为0 占用ZI-Data区域3、定义并初始化全局变量非0 占用RW-Data区域4、增加的是一个int8的数据为什么,size增加不是15、定义的全局变量为0…...
关联度分析、灰色预测GM(1,1)、GM(1,1)残差模型——基于Python实现
关联度分析 import numpy as np import pandas as pd #关联度分析 #参考序列 Y_0[170,174,197,216.4,235.8] #被比较序列 Y_1[195.4,189.9,187.2,205,222.7] Y_2[308,310,295,346,367]#初始化序列 X_0np.array(Y_0)/Y_0[0] X_1np.array(Y_1)/Y_1[0] X_2np.array(Y_2)/Y_2[0]#计…...
linux常用命令(网络相关)
目录 1. ping - 检查网络连通性 参数 示例 2. ifconfig - 配置网络接口 参数 示例 3. ip - 显示和操作路由、网络设备、接口等 参数 示例 4. netstat - 显示网络连接、路由表、接口统计等信息 参数 示例 5. ss - 更快的netstat替代品 参数 示例 6. nslookup - …...
【uni-app多端】修复stmopjs下plus-websocket无心跳的问题
从这篇文章接着向下看: uniapp plus-websocket 和stompjs连接教程 安卓ios手机端有效 - 简书 按照文章的方式,能够实现APP下stmopjs长连接。但是有一个问题,就是会频繁输出 res-创建连接-1- 跟踪连接,会发现连接都会在大约40s后…...
VScode学习前端-01
小问题合集: vscode按!有时候没反应,有时候出来,是因为------>必须在英文状态下输入! 把鼠标放在函数、变量等上面,会自动弹出提示,但挡住视线,有点不习惯。 打开file->pre…...
Java-05 深入浅出 MyBatis - 配置深入 动态 SQL 参数、循环、片段
点一下关注吧!!!非常感谢!!持续更新!!! 大数据篇正在更新!https://blog.csdn.net/w776341482/category_12713819.html 目前已经更新到了: MyBatisÿ…...
突破自动驾驶瓶颈!KoMA:多智能体与大模型的完美融合
0.简介 本推文主要介绍了由来自北京航空航天大学的姜克谋、蔡轩和崔智勇教授等共同提出的一种名为KoMA的知识驱动的多智能体框架。论文《KoMA: Knowledge-driven Multi-agent Framework for Autonomous Driving with Large Language Models》提出了KoMA框架,通过结…...
YOLO入门教程(三)——训练自己YOLO11实例分割模型并预测【含教程源码+一键分类数据集 + 故障排查】
目录 引言前期准备Step0 环境部署1.安装OpenCV2.安装Pytorch3.安装Ultralytics Step1 打标训练Step2 格式转换Step3 整理训练集Step4 训练数据集4.1创建yaml文件4.2训练4.3预测4.4故障排查4.4.1OpenCV版本故障,把OpenCV版本升级到4.0以上4.4.2NumPy版本故障…...
【加入默语老师的私域】C#面试题
什么是依赖注入,如何实现? 依赖注入是一种设计模式。我们不是直接在另一个类(依赖类)中创建一个类的对象,而是将对象作为参数传递给依赖类的构造函数。它有助于编写松散耦合的代码,并有助于使代码更加模块…...
称重传感器指示器行业全面且深入的分析
称重传感器指示器是一种用于显示和解释称重传感器输出信号的设备,用于测量力、重量或压力。称重传感器是将物理力(如重量)转换为电信号的传感器,称重传感器指示器将该电信号转换为可读格式,通常以磅、公斤或牛顿等单位…...
NAT网络地址转换——Easy IP
NAT网络地址转换 Tip: EasylP没有地址池的概念,使用接口地址作为NAT转换的公有地址。EasylP适用于不具备固定公网IP地址的场景:如通过DHCP, PPPOE拨号获取地址的私有网络出口,可以直接使用获取到的动态地址进行转换。 本次实验模拟nat协议配置 AR1配置如下&…...
【Visual Studio系列教程】如何在 VS 上编程?
上一篇博客中,我们介绍了《什么是 Visual Studio?》。本文,我们来看第2篇《如何在 VS 上编程?》。阅读本文大约10 分钟。我们会向文件中添加代码,了解 Visual Studio 编写、导航和了解代码的简便方法。 本文假定&…...
Mybatis-Plus 多租户插件属性自动赋值
文章目录 1、Mybatis-Plus 多租户插件1.1、属性介绍1.2、使用多租户插件mavenymlThreadLocalUtil实现 定义,注入租户处理器插件测试domianservice & ServiceImplmapper 测试mapper.xml 方式 1.3、不使用多租户插件 2、实体对象的属性自动赋值使用1. 定义实体类2. 实现 Meta…...
AWTK-WIDGET-WEB-VIEW 实现笔记 (4) - Ubuntu
Ubuntu 上实现 AWTK-WIDGET-WEB-VIEW 开始以为很简单,后来发现是最麻烦的。因为 Ubuntu 上的 webview 库是 基于 GTK 的,而 AWTK 是基于 X11 的,两者的窗口系统不同,所以期间踩了几个大坑。 1. 编译 AWTK 在使用 Linux 的输入法时…...
Python入门(7)--高级函数特性详解
Python高级函数特性详解 🚀 目录 匿名函数(Lambda)装饰器的使用生成器与迭代器递归函数应用实战案例:文件批处理工具 1. 匿名函数(Lambda)深入解析 🎯 1.1 Lambda函数基础与进阶 1.1.1 基本…...
【数据库原理】理解数据库,基础知识
第一代:网状数据库;第二代:关系数据库;第三代:新一代数据库系统BigData 一、理解数据库 什么是数据:信息,对事物的存在方方式、运动状态及特征的描述。数据,记录信息的识别方式有数…...
VConsole——(H5调试工具)前端开发使用于手机端查看控制台和请求发送
因为开发钉钉H5微应用在手机上一直查看不到日志等,出现安卓和苹果上传图片一边是成功的,一边是失败的,所以找了这个,之前在开发微信小程序进行调试的时候能看到,之前没想到过,这次被人提点发现可以单独使用…...
论文分享 | FuzzLLM:一种用于发现大语言模型中越狱漏洞的通用模糊测试框架
大语言模型是当前人工智能领域的前沿研究方向,在安全性方面大语言模型存在一些挑战和问题。分享一篇发表于2024年ICASSP会议的论文FuzzLLM,它设计了一种模糊测试框架,利用模型的能力去测试模型对越狱攻击的防护水平。 论文摘要 大语言模型中…...
vmWare虚拟环境centos7安装Hadoop 伪分布式实践
背景:近期在研发大数据中台,需要研究Hadoop hive 的各种特性,需要搭建一个Hadoop的虚拟环境,本来想着使用dock ,但突然发现docker 公共仓库的镜像 被XX 了,无奈重新使用vm 搭建虚拟机。 大概经历了6个小时完…...
【C++入门(一)】半小时入门C++开发(深入理解new+List+范围for+可变参数)
目录 一.深入理解new 使用格式 二.List列表 定义一个列表 迭代器 添加元素 删除元素 排序 反转序列 三.范围for 四.可变参数 std::initializer_list 可变参数模板(variadic template) 一.深入理解new 类似于C语言中的malloc、calloc和reallo…...
Vue 3与TypeScript集成指南:构建类型安全的前端应用
在Vue 3中使用TypeScript,可以让你的组件更加健壮和易于维护。以下是使用TypeScript与Vue 3结合的详细步骤和知识点: 1. 环境搭建 首先,确保你安装了Node.js(推荐使用最新的LTS版本)和npm或Yarn。然后,安…...
MATLAB和Python发射光谱
在MATLAB和Python中,可以使用不同的库来生成发射光谱。以下是两种语言的简单示例: MATLAB: % 定义波长(nm)和强度(a.u.) wavelengths linspace(300, 1000, 1000); intensity sin(wavelengths / 500);…...
IEEE(常用)参考文献引用格式详解 | LaTeX参考文献规范(IEEE Trans、Conf、Arxiv)| 期刊会议名缩写查询
期刊 ** 期刊:已正式出版(有期卷号) ** 期刊:录用后在线访问即Early access(无期卷号)会议Arxiv论文 期刊 期刊:已正式出版(有期卷号) article{gu2024ai, title{{AI}-Enhanced Cloud-Edge-Terminal Collaborative Ne…...
第二十周:机器学习
目录 摘要 ABSTRACT 一、吴恩达机器学习exp2——逻辑回归 1、logistic函数 2、数据预处理 3、损失函数 4、梯度下降 5、设定评价指标 6、决策边界 7、正则化 二、动手深度学习pytorch——数据预处理 1、数据集读取 2、缺失值处理 3、转换为张量格式 总结 摘要…...
Elasticsearch面试内容整理-Elasticsearch 基础概念
Elasticsearch 是一个基于 Apache Lucene 的开源分布式搜索和分析引擎,提供强大的全文本搜索、实时数据分析、分布式存储等功能。以下是 Elasticsearch 的一些基础概念: 什么是 Elasticsearch? ● Elasticsearch 是一个用于全文搜索和实时分析的分布式搜索引擎。 ● 开源和可…...
机器学习算法模型系列——Adam算法
Adam是一种自适应学习率的优化算法,结合了动量和自适应学习率的特性。 主要思想是根据参数的梯度来动态调整每个参数的学习率。 核心原理包括: 动量(Momentum):Adam算法引入了动量项,以平滑梯度更新的方向…...
Qt按钮类-->day09
按钮基类 QAbstractButton 标题与图标 // 参数text的内容显示到按钮上 void QAbstractButton::setText(const QString &text); // 得到按钮上显示的文本内容, 函数的返回就是 QString QAbstractButton::text() const;// 得到按钮设置的图标 QIcon icon() const; // 给按钮…...
农家乐网站建设/新媒体代运营
业务流程图 简单的业务流程图,如果有用过vuex,都是类似的东西,换汤不换药 如何使用 1、引入provide依赖 2、新建状态仓库 3、触发状态改变 4、页面引用创库变量 ● 引入provide依赖 ● 新建状态仓库 在lib目录下新建provide文件夹&#…...
设计上海设计公司/网站优化包括
2019独角兽企业重金招聘Python工程师标准>>> 在使用volatile关键字时要慎重,并不是只要简单类型变量使用volatile修饰,对这个变量的所有操作都是原来操作,当变量的值由自身的上一个决定时,如nn1、n 等,vola…...
如何给wordpress文章部分内容加密/网站推广业务
Operatioon 008 版本控制,Git基础, Git进阶,RPM打包一 分布式版本控制系统1 典型的C/S系统2 任意数量客户端3 客户端通过写数据库分享代码集中式版本控制系统 ->SVN,CVS1开发者之间共用一个仓库2所有操作需要联网分布式版本控制系统 ->GIT,Bitke…...
个人作品集网站是怎么做/百度信息流怎么收费
MySQL中的创建库、表以及查询语句对我们以后很好的应用数据库是很大有帮助的,博文中是对这些基础语句的总结,希望会对大家有些帮助1、创建与删除数据库创建数据库 mysql> create database testdb; mysql> create database if not exists testdb;my…...
iapp做网站/百度关键词多少钱一个月
原型模式 转载于:https://www.cnblogs.com/zhang-wenbin/p/11445063.html...
怎么做淘宝 天猫京东网店的网站/重庆seo的薪酬水平
明确学习目标,不急于求成当下是一个喧嚣、浮躁的时代。我们总是被生活中大量涌现的热点所吸引,几乎没有深度阅读和思考的时间和机会。我始终认为,学习是需要沉下心来慢慢钻研的,是长期的;同时,学习不应该被…...