服务器部署—虚拟机安装nginx并部署web网页

该篇博客用于讲解Linux的Centos7发行版中如何通过Linux安装Nginx,然后将静态页面部署到Nginx中,通过浏览器访问。
非常适用于新手小白学习项目部署相关的知识。建议收藏!!!
需要大家提前准备好虚拟机和CentOS7操作系统。

目录

1、先上成品图

2、安装Nginx运行所需插件:

 gcc:gcc编译器用于编译编程语言。

安装截图:

zlib解压软件:

安装截图:​编辑

pcre、pcre-devel插件:

安装截图:​编辑

openssl插件:

安装截图:​编辑

3、安装Nginx

下载Nginx安装包:

通过命令ll查看本地会多一个文件:​编辑

解压压缩包:

解压后,通过命令ll查看,得到一个文件夹:​编辑

编译安装:

4、启动Nginx:

关闭防火墙,不然启动之后访问不了,关闭防火墙命令:

启动nginx(不要离开/usr/local/nginx/sbin/):

通过宿主机浏览器访问:

5、更改主页信息

找到nginx的index.html

将我前面准备好的一段代码,替换掉原本的代码:

再次在宿主机浏览器中搜索

到这里,我们自己的html页面就放进来了。

6、目录结构


1、先上成品图

2、安装Nginx运行所需插件:

  1.  gcc:gcc编译器用于编译编程语言。

    //通过gcc -v查看版本,如果有就不管【CentOS7是有的】
    gcc -v//如果没有gcc就通过下面的命令安装
    yum -y install gcc
    安装截图:

  2. zlib解压软件:

    zlib库是用于解压和压缩的。nginx下载下来是压缩包,需要解压。

    安装命令:
    yum install -y zlib zlib-devel
    安装截图:
  3. pcre、pcre-devel插件:

    pcre是正则表达式的库,nginx中http模块需要用到pcre解析正则表达式。
    安装命令:
    yum install -y pcre pcre-devel
    安装截图:
  4. openssl插件:

    网络通信加密插件。
    安装命令:
    yum install -y openssl openssl-devel
    安装截图:

3、安装Nginx

从官网下载压缩包,需要用到wget软件,CentOS7都自带有,如果没有的话,通过下面命令安装。

yum install wget
  1. 下载Nginx安装包:

    wget http://nginx.org/download/nginx-1.21.6.tar.gz 
    通过命令ll查看本地会多一个文件:
  2. 解压压缩包:

    tar -zxvf nginx-1.21.6.tar.gz
    解压后,通过命令ll查看,得到一个文件夹:
  3. 编译安装:

    ​​​​​​①、先进入到解压得到的nginx-1.21.6文件夹里面:
    cd nginx-1.21.6


    ②、编译nginx环境,使其之后的nginx就安装到/usr/local/nginx目录下:

    ③、继续执行命令:

    # 在当前目录下执行
    make & make install


    到这里,关于nginx已经安装好了,我们可以查看一下,多了些什么东西:




     

4、启动Nginx:

  1. 如果要启动Nginx,需要找到其启动命令,先进入到命令所在的文件夹:
    命令:
    cd /usr/local/nginx/sbin/

    nginx这个就是启动命令。
  2. 关闭防火墙,不然启动之后访问不了,关闭防火墙命令:
    systemctl stop firewalld.service
  3. 启动nginx(不要离开/usr/local/nginx/sbin/):
    ./nginx
  4. 通过宿主机浏览器访问:

5、更改主页信息

到这里,nginx已经安装并且启动好了,那么接下来我们可以将这个页面更改一番,在这里我提供了一段html代码。

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>图片位置拖拽</title><style>#main {display: flex;justify-content: center;}.img {width: 100px;user-select: none;height: 100px;background: no-repeat center center;background-size: cover;}.bg1 {background-image: url('https://cdn.pixabay.com/photo/2020/02/05/22/01/bush-4822500__480.jpg')}.bg2 {background-image: url('https://cdn.pixabay.com/photo/2022/01/24/13/51/temple-6963458__480.jpg')}.bg3 {background-image: url('https://cdn.pixabay.com/photo/2020/12/02/01/06/chipmunk-5795916__480.jpg')}.zw {background-color: #999;width: 100px;height: 100px;display: none;}</style>
</head><body><div id="main"><span class="img bg1" data-index="0"></span><span class="img bg2" data-index="1"></span><span class="img bg3" data-index="2"></span><span class="zw"></span></div>
</body>
<script>const imgs = document.querySelectorAll('.img')const main = document.querySelector('#main')const zw = document.querySelector('.zw')const isMobile = navigator.userAgent.match(/Mobile/)let isDrag = falselet indexlet py = {left: 0,top: 0}const move = (el, x, y) => {el.setAttribute('style', `pointer-events:none;position:absolute;left:${x}px;top:${y}px`)}document.addEventListener(isMobile ? 'touchstart' : 'mousedown', e => {isMobile && (e = e.touches[0])index = e.target.dataset.indexif (index && !isDrag) {py.left = e.pageX - imgs[index].offsetLeftpy.top = e.pageY - imgs[index].offsetTopzw.style.display = 'block'main.insertBefore(zw, imgs[index])move(imgs[index], e.pageX - py.left, e.pageY - py.top)}isDrag = true})document.addEventListener(isMobile ? 'touchmove' : 'mousemove', e => {isMobile && (e = e.touches[0])if (isDrag && index) {move(imgs[index], e.pageX - py.left, e.pageY - py.top)}})document.addEventListener(isMobile ? 'touchend' : 'mouseup', e => {isDrag = falsezw.style.display = ''if (imgs[index]) {imgs[index].setAttribute('style', '')main.insertBefore(imgs[index], zw)}})imgs.forEach(v => {v.addEventListener(isMobile ? 'touchmove' : 'mouseenter', e => {isMobile && (e = e.touches[0])if (isDrag) {const list = [...main.children]const imgIndex = list.findIndex(el => v == el)const zwIndex = list.findIndex(el => zw == el)if (zwIndex < imgIndex) {main.insertBefore(v, zw)} else {main.insertBefore(zw, v)}}})})
</script></html>
  1. 找到nginx的index.html

    页面在:/usr/local/nginx/html/这个文件夹里面
    cd /usr/local/nginx/html/

  2. 将我前面准备好的一段代码,替换掉原本的代码:

    自己操作,删除,再粘贴
  3. 再次在宿主机浏览器中搜索

到这里,我们自己的html页面就放进来了。

6、目录结构

nginx安装完成后,nginx里面的目录结构如下:

重点目录和文件如下:

目录/文件说明
conf配置文件存放目录
conf/nginx.confnginx核心配置文件
html存放静态资源(html,css,js)
logs存放nginx日志
sbin/nginx二进制文件,用于启动/停止Nginx

nginx更多知识还需要更系统的学习,目前这个小demo就到这里了,bye~~~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python API自动化(基于Flask搭建MockServer)

接口Mock的理念与实战场景: 什么是Mock: 在接口中&#xff0c;"mock"通常是指创建一个模拟对象来代替实际的依赖项&#xff0c;以便进行单元测试。当一个类或方法依赖于其他类或组件时&#xff0c;为了测试这个类或方法的功能&#xff0c;我们可以使用模拟对象来替代…

M4V文件损坏无法播放?一招轻松修复损坏视频文件!

M4V是一个标准视频文件格式&#xff0c;此种格式常在iPod 、 iPhone 和 PlayStation Portable等设备上使用&#xff0c;同时此格式基于MPEG-4编码第二版&#xff0c;是MP4格式的一种特殊类型&#xff0c;有时可能会因为各种原因而损坏&#xff0c;导致无法正常播放。M4V文件出现…

前端vue3 根据某些Id 筛选数据

现在有一些不等的数据 我需要通过前端 吧这个数据筛选一下 比如我使用一些 我需要的ID 下的数据 比如以上的数据 的 cinemaLineId 来筛选 const cinemaLineId ref(["1246429254713147392", "1182608813770321920", "1182608917403185152"])…

爬取必应关键字搜索结果url

上代码 import aiohttp import asyncio from lxml import etree import aiofiles import time import random aiohttp 和 asyncio 用于异步HTTP请求和事件循环。 lxml 用于解析HTML。 aiofiles 用于异步文件操作。 time 和 random 用于控制爬取速度。 headers {User-Agent: M…

frida的安装使用以及解决抓包app时遇到的证书校验

frida的安装和使用 这里使用夜神模拟器来演示frida的使用&#xff0c;因为真机开启frida-server服务时需要root权限,模拟器自带root 下载夜神模拟器并启动 夜神官网 打开power shell&#xff0c; adb连接模拟器&#xff0c;查看模拟器的系统型号 adb connect 127.0.0.1:6200…

阿里云centos7.9 挂载数据盘 并更改宝塔站点根目录

一、让系统显示中文 参考&#xff1a;centos7 怎么让命令行显示中文&#xff08;英文-&#xff1e;中文&#xff09;_如何在命令行中显示中文-CSDN博客 1、输入命令&#xff1a;locale -a |grep "zh_CN" 可以看到已经存在了中文包 2、输入命令&#xff1a;sudo vi…

SecureCRT使用SSH登录服务器报错:Key exchange failed

SecureCRT使用SSH登录Ubuntu服务器报错&#xff1a;Key exchange failed 原因&#xff1a; ssh客户端与服务器的公钥协商失败&#xff0c;SecureCRT客户端所指定的秘钥交换算法&#xff08;KexAlgorithms &#xff09;&#xff0c;不在服务端支持范围内。可能是服务端的sshd版…

学习笔记(linux高级编程)7

2._exit 系统调用 void _exit(int status); 功能: 让进程退出,不刷新缓存区 参数: status:进程退出状态 返回值: 缺省 回调函数 3.atexit int atexit(void (*function)(void)); 功能: 注册进程退出前执行的函数 参数: function:函数指针 指向void返回值void参数的函数指针 返…

C++ | Leetcode C++题解之第188题买卖股票的最佳时机IV

题目&#xff1a; 题解&#xff1a; class Solution { public:int maxProfit(int k, vector<int>& prices) {if (prices.empty()) {return 0;}int n prices.size();k min(k, n / 2);vector<int> buy(k 1);vector<int> sell(k 1);buy[0] -prices[0]…

配电房挂轨巡检机器人

配电房作为电网中的重要组成部分。其运行的的安全和稳定性直接影响到电力供应的质量。然而&#xff0c;传统的人工巡检模式存在诸多弊端&#xff0c;例如巡检效率低下、人员安全难以保障、巡检结果主观性强等问题。为了解决这些问题&#xff0c;旗晟机器人推出B3系列升降云台轨…

CODESYS+EtherCAT+X86/ARM硬件平台:高性能运动控制的标配,支持定制

支持的硬件标准与定制平台&#xff1a; X86:INTEL ARM: RK3568/RK3588/TI/NXP/树莓派/全志T3/A40i等 前段时间分享了施耐德基于CODEYS开发的首款支持EtherCAT总线的运动控制器&#xff0c;CODESYSEtherCATX86硬件平台&#xff1a;高性能运动控制的标配。 CODESYS第一次接触还…

4大wordpress渐变色网站模板

家居摆件wordpress外贸模板 家居装饰、配件、摆件wordpress外贸模板&#xff0c;适合搞家居装饰的公司官网使用。 https://www.jianzhanpress.com/?p3515 玩具wordpress外贸模板 简洁玩具wordpress外贸模板&#xff0c;适合做跨境电商外贸公司使用的wordpres外贸s网站主题。…

PTE-靶场训练-1

PTE-靶场训练实战笔记 靶场搭建 靶场下载链接&#xff1a; https://pan.baidu.com/s/1ce1Kk0hSYlxrUoRTnNsiKA?pwdha1x vim /etc/sysconfig/network-scripts/ifcfg-eth0 设置好后reboot重启一下即可&#xff0c;然后访问81-85端口&#xff0c;共5题。 因为靶场出了问题&a…

C++ Primer 中文版 第5版 读书笔记

读书过程中发现&#xff0c;读得越多&#xff0c;忘得越多。因此记录读书笔记 1.2 初始输入输出 向流写入数据 <<运算符&#xff08;输出运算符&#xff09;接受两个运算对象&#xff1a;左侧的运算对象必须是一个ostream对象&#xff0c;右侧的运算对象是要打印的值。…

Vatee万腾平台:一站式智慧服务,让生活更美好

在数字化浪潮席卷全球的今天&#xff0c;我们生活的方方面面都在经历着前所未有的变革。Vatee万腾平台凭借其一站式智慧服务&#xff0c;正成为推动这场变革的重要力量&#xff0c;让我们的生活变得更加美好。 Vatee万腾平台&#xff0c;作为一家专注于提供智慧服务的领军企业&…

基于weixin小程序校园快递系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;订单管理&#xff0c;快递管理&#xff0c;快递记录管理&#xff0c;公告管理&#xff0c;基础数据管理 小程序功能包括&#xff1a;系统首页&#xff0c;…

企业有必要安装数据文件加密软件吗?哇!这么多好处

需要的 一、查看以下分析&#xff0c;便能得出结论 安全防护提升&#xff1a;禁止拷贝、打印、截屏等&#xff0c;还能够设置文件的浏览次数、有效期&#xff0c;提供多层次的文档保护措施。 核心机密保护&#xff1a;企业的核心机密文件、技术资料、客户资料等重要信息是公…

reactjs18 中使用@reduxjs/toolkit同步异步数据的使用

react18 中使用@reduxjs/toolkit 1.安装依赖包 yarn add @reduxjs/toolkit react-redux2.创建 store 根目录下面创建 store 文件夹,然后创建 index.js 文件。 import {configureStore } from "@reduxjs/toolkit"; import {counterReducer } from "./feature…

Does a vector database maintain pre-vector chunked data for RAG systems?

题意&#xff1a;一个向量数据库是否为RAG系统维护预向量化分块数据&#xff1f; 问题背景&#xff1a; I believe that when using an LLM with a Retrieval-Augmented Generation (RAG) approach, the results retrieved from a vector search must ultimately be presented…

WIFI各版本的带宽

带宽的定义&#xff1a; 带宽在网络领域通常指信道带宽&#xff0c;即信号在频谱中占用的频宽&#xff0c;单位是MHz&#xff08;兆赫&#xff09;。在无线通信中&#xff0c;带宽越宽&#xff0c;能够传输的数据量越大&#xff0c;因此信道带宽直接影响着数据传输速率。WiFi标…