(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微应用在手机上一直查看不到日志等,出现安卓和苹果上传图片一边是成功的,一边是失败的,所以找了这个,之前在开发微信小程序进行调试的时候能看到,之前没想到过,这次被人提点发现可以单独使用…...
 
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...
 
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果 
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
