当前位置: 首页 > news >正文

Nginx 基础

文章目录

  • Nginx
    • 概念
    • 安装
      • 下载上传安装包
      • 执行准备条件
      • 指定安装位置
      • 编译和安装
      • 启动服务
      • 创建启动脚本
    • linux文件目录
    • nginx运行原理
    • nginx配置
    • 域名
      • 概念和原理
      • 域名配置

Nginx

概念

Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,公开版本1.19.6发布于2020年12月15日。
其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日,nginx 1.21.6发布。
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。

安装

下载上传安装包

可以直接通过此链接直接下载
http://nginx.org/download/nginx-1.11.1.tar.gz

或者通过命令进行直接下载到linux上面

wget http://nginx.org/download/nginx-1.11.1.tar.gz

将nginx-1.21.6.tar.gz软件上传到 /usr/local文件夹下面,并解压
tar -zxvf nginx-1.21.6.tar.gz

执行准备条件

​	yum install -y gcc                               安装C语言库
​	yum install -y pcre pcre-devel                   安装perl库 
​	yum install -y zlib zlib-devel                   安装zlib库 

指定安装位置

​ 进入nginx文件以后执行
​ ./configure --prefix=/usr/local/nginx

编译和安装

make
​make install
在这里插入图片描述

启动服务

进入进入安装好的目录 /usr/local/nginx/sbin

 	cd /usr/local/nginx/sbin/ 
​	./nginx 启动 
​	./nginx -s stop 快速停止 
​	./nginx -s quit 优雅关闭,在退出前完成已经接受的连接请求 
​	./nginx -s reload 重新加载配置 

在这里插入图片描述
注意:如果启动了以后不能生效,记得关闭防火墙。

systemctl stop firewalld

systemctl disable firewalld

一般在公司里面是不会直接将防火墙关闭的,这样会导致黑客端口扫描,找到相关的漏洞

firewall-cmd --zone=public --add-port=80/tcp --permanent

创建启动脚本

vi /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx - web server 
After=network.target remote-fs.target nss-lookup.target [Service] 
Type=forking 
PIDFile=/usr/local/nginx/logs/nginx.pid 
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf 
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop 
ExecQuit=/usr/local/nginx/sbin/nginx -s quit 
PrivateTmp=true [Install] 
WantedBy=multi-user.target

重新加载系统服务
systemctl daemon-reload

启动服务
systemctl start nginx.service
systemctl restart nginx.service

开机启动
systemctl enable nginx.service

linux文件目录

在这里插入图片描述

  • sbin: 存放二进制启动文件
  • conf:存放配置文件
  • logs:存放日志文件
  • html:存放静态页面
  • uwsgi_temp:存放的是临时文件

修改html中的index.html文件,重新启动nginx
在这里插入图片描述

注意:/usr/lib/systemd/system/nginx.service 文件复制以后要看看格式是否正确,如果不对,则可能导致重启失败。

nginx运行原理

在这里插入图片描述

1 系统启动以后就会有一个nginx的主进程

2 主进程读取nginx.conf配置文件,确认文件的位置

3 主进程创建多个work进程

4 当用户请求进来以后,work进程就可以读取解析用户的请求,并返回信息。

nginx配置

从nginx服务器上将nginx.conf配置文件下载到本地
在这里插入图片描述
将注释后的代码先删除,得到一个最简化的配置文件,如下

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location / {root   html;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}
  • worker_processes 1; 配置worker进程的数量,这个数字跟cpu的核心数相关,nginx优化的一个参数

  • worker_connections 1024; 一个worker进程的最大连接数。

  • include: 引入其他的文件

  • mime.types: 这个文件的作用是,当用户请求资源文件的时候,我们将不同文件根据后缀,告诉用户解析方式,其实当用户浏览器拿到服务器给的资源的时候,即使给了后缀名,浏览器也是不能完全解析的,需要在请求头的地方告诉浏览器解析方式。比如png格式的文件,需要image/png的方式解析。

  • keepalive_timeout 65; 保持长连接的时长。

  • server 配置资源文件的,相当于一个完整的服务器站点 vhost,可以通过端口号来区分。

  • listen 80; 站点监听的端口

  • server_name 域名; 站点的域名(是一个网路能解析的域名)

  • location 用来匹配uri的 域名:端口/uri

  • root html; 当用户的请求和location的uri匹配的时候,要进入的目录资源

  • index index.html index.htm;当用户的请求和location的uri匹配的时候,默认的请求主页

错误提示
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
当服务器发生内部错误的时候,比如500,502…就会将请求转发到 /50x.html,从html目录中找到 50x.html文件

在这里插入图片描述

域名

概念和原理

域名(Domain Name),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个地方区域)。域名使一个IP地址有"面具" 。一个域名的目的是成为便于记忆和沟通的一组服务器的地址(网站,电子邮件,FTP等),世界上第一个注册的域名是在1985年1月注册的。

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。在RFC文档中RFC 2181对DNS有规范说明,RFC 2136对DNS的动态更新进行说明,RFC 2308对DNS查询的反向缓存进行说明。

通俗的说:因为我们的IP地址都一连串的数字,不好记忆,所以我们用一个很好记的一串单词来代替ip地址。然后通过DNS服务器来记录我们域名和IP的对应关系,以后我们访问IP的时候就可以通过域名的方式,间接的去访问我们的IP地址了。

域名配置

以下以腾讯云为案例:

  • https://console.dnspod.cn/dns/hanmh2020.work/record

  • 配置域名和ip的对应关系,然后启动解析

  • 在linux home目录下创建www文件夹

  • 在www文件夹下面创建 www文件夹保存主站点信息,vod文件夹保存视频站点

  • 在www和vod文件夹下面分别创建index.html,并写入信息

  • 修改配置文件

worker_processes  1;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  www.xxxxxx.work;location / {root   /home/www/www;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}server {listen       88;server_name  vod.xxxxxx.work;location  /{root   /home/www/vod;index  index.html index.htm;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}

注意这里的域名修改成自己的
访问 http://www.hanmh2020.work:88/ 和 http://vod.hanmh2020.work:88/
www.hanmanhong2022.cloud vod.hanmanhong2022.cloud:88

注意:可以使用 .,$d 删除整个配置文件里的内容。

说明:这里其实配置了两个虚拟主机,两个主机可以各自管理自己的文件,互不影响。

下期续写 反向代理,以及动静分离和反向代理,以及动静分离,以及Nginx跨域问题

相关文章:

Nginx 基础

文章目录 Nginx概念安装下载上传安装包执行准备条件指定安装位置编译和安装启动服务创建启动脚本 linux文件目录nginx运行原理nginx配置域名概念和原理域名配置 Nginx 概念 Nginx 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。Nginx是…...

C++完美转发(适合小白)

我们知道,C中有左值引用和右值引用,首先我们要知道什么是左值什么是右值。 左值:表达式结束后依然存在的持久对象。左值可以出现在赋值语句的左边或右边。例如,变量和函数返回的引用都是左值。左值通常有持久的地址,可…...

如何创建自己的 Spring Boot Starter 并为其编写单元测试

当我们想要封装一些自定义功能给别人使用的时候,创建Spring Boot Starter的形式是最好的实现方式。如果您还不会构建自己的Spring Boot Starter的话,本文将带你一起创建一个自己的Spring Boot Starter。 快速入门 创建一个新的 Maven 项目。第三方封装的…...

C++ :STL中deque的原理

deque的结构类似于哈希表,使用一个指针数组存储固定大小的数组首地址,当数据分布不均匀时将指针数组内的数据进行偏移,桶不够用的时候会像vector一样扩容然后将之前数组中存储的指针拷贝过来,从原理可以看出deque的性能是非常高的…...

AttributeError: ‘Namespace‘ object has no attribute ‘EarlyStopping‘

报错原因 这个报错信息表明在Python脚本train.py中尝试访问命令行参数args.EarlyStopping时出错,具体错误是AttributeError: Namespace对象没有名为EarlyStopping的属性。 在Python的argparse模块中,当我们通过命令行传递参数并解析时,解析…...

深度学习pytorch——卷积神经网络(持续更新)

计算机如何解析图片? 在计算机的眼中,一张灰度图片,就是许多个数字组成的二维矩阵,每个数字就是此点的像素值(图-1)。在存储时,像素值通常位于[0, 255]区间,在深度学习中&#xff0…...

【edge浏览器无法登录某些网站,以及迅雷插件无法生效的解决办法】

edge浏览器无法登录某些网站,以及迅雷插件无法生效的解决办法 edge浏览器无法登录某些网站,但chrome浏览器可以登录浏览器插件无法使用,比如迅雷如果重装插件重装浏览器重装迅雷后仍然出现问题 edge浏览器无法登录某些网站,但chro…...

OpenHarmony无人机MAVSDK开源库适配方案分享

MAVSDK 是 PX4 开源团队贡献的基于 MavLink 通信协议的用于无人机应用开发的 SDK,支持多种语言如 C/C、python、Java 等。通常用于无人机间、地面站与通信设备的消息传输。 MAVLink 是一种非常轻量级的消息传递协议,用于与无人机(以及机载无…...

模型训练----parser.add_argument添加配置参数

现在需要配置参数来达到修改训练的方式,我现在需要新建一个参数来开关wandb的使用。 首先就是在def parse_option():函数里添加上你要使用的变量名 parser.add_argument("--open_wandb",type bool,defaultFalse,helpopen wandb) 到config文件里增加你的…...

数字未来:探索 Web3 的革命性潜力

在当今数字化的时代,Web3作为互联网的新兴范式正逐渐崭露头角,引发了广泛的关注和探讨。本文将深入探索数字未来中Web3所蕴含的革命性潜力,探讨其对社会、经济和技术的深远影响。 1. Web3:数字世界的下一个阶段 Web3是一个正在崛…...

群晖NAS使用Docker部署大语言模型Llama 2结合内网穿透实现公网访问本地GPT聊天服务

文章目录 1. 拉取相关的Docker镜像2. 运行Ollama 镜像3. 运行Chatbot Ollama镜像4. 本地访问5. 群晖安装Cpolar6. 配置公网地址7. 公网访问8. 固定公网地址 随着ChatGPT 和open Sora 的热度剧增,大语言模型时代,开启了AI新篇章,大语言模型的应用非常广泛,包括聊天机…...

[选型必备基础信息] 存储器

存储芯片根据断电后是否保留存储的信息可分为易失性存储芯片(RAM)和非易失性存储芯片(ROM)。 简单说,存储类IC分为 ROM和RAM ROM:EEPROM / Flash / eMMC RAM:SRAM/SDRAM/DDR2/DDR3/DDR4/DDR5…...

C++——C++11线程库

目录 一,线程库简介 二,线程库简单使用 2.1 传函数指针 ​编辑 2.2 传lamdba表达式 2.3 简单综合运用 2.4 线程函数参数 三,线程安全问题 3.1 为什么会有这个问题? 3.2 锁 3.2.1 互斥锁 3.2.2 递归锁 3.3 原子操作 3…...

机器学习 | 线性判别分析(Linear Discriminant Analysis)

1 机器学习中的建模 1.1 描述性建模 以方便的形式给出数据的主要特征,实质上是对数据的概括,以便在大量的或有噪声的数据中仍能观察到重要特征。重在认识数据的主要概貌,理解数据的重要特征。 Task:聚类分析,数据降…...

TypeScript-数组、函数类型

1.数组类型 1.1类型 方括号 let arry:number[][5,2,0,1,3,1,4] 1.2 数组泛型 let arry2:Array<number>[5,2,0,1,3,1,4] 1.3接口类型 interface makeArryRule{[index:number]:number }let arry3:makeArryRule[5,2,0,1,3,1,4] 1.4伪数组 说明&#xff1a; argument…...

Python深度学习034:cuda的环境如何配置

文章目录 1.安装nvidia cuda驱动CMD中看一下cuda版本:下载并安装cuda驱动2.创建虚拟环境并安装pytorch的torch_cuda3.测试附录1.安装nvidia cuda驱动 CMD中看一下cuda版本: 注意: 红框的cuda版本,是你的显卡能装的最高的cuda版本,所以可以选择低于它的版本。比如我的是11…...

【论文笔记】Text2QR

论文&#xff1a;Text2QR: Harmonizing Aesthetic Customization and Scanning Robustness for Text-Guided QR Code Generation Abstract 二维码通常包含很多信息但看起来并不美观。stable diffusion的出现让平衡扫描鲁棒性和美观变为可能。 为了保证美观二维码的稳定生成&a…...

【ReadPapers】A Survey of Large Language Models

LLM-Survey的llm能力和评估部分内容学习笔记——思维导图 思维导图 参考资料 A Survey of Large Language Models论文的github仓库...

站群CMS系统

站群CMS系统是一种用于批量建立和管理网站的内容管理系统&#xff0c;它能够帮助用户快速创建大量的网站&#xff0c;并实现对这些网站的集中管理。以下是三个在使用广泛的站群CMS系统&#xff0c;它们各具特色&#xff0c;可以满足不同用户的需求。 1. Z-BlogPHP Z-BlogPHP是…...

landsat8数据产品说明

1、下载数据用户手册 手册下载网址&#xff0c;搜索landsat science关键词&#xff0c;并点击到官网下载。 2、用户手册目录 3、landsat8数据产品说明 具体说明在手册的第四章&#xff0c;4.1.4数据产品章节&#xff0c;具体描述如下&#xff1a; 英文意思&#xff1a; L8 的…...

Golang 内存管理和垃圾回收底层原理(二)

一、这篇文章我们来聊聊Golang内存管理和垃圾回收&#xff0c;主要注重基本底层原理讲解&#xff0c;进一步实战待后续文章 垃圾回收&#xff0c;无论是Java 还是 Golang&#xff0c;基本的逻辑都是基于 标记-清理 的&#xff0c; 标记是指标记可能需要回收的对象&#xff0c…...

OpenHarmony:全流程讲解如何编写ADC平台驱动以及应用程序

ADC&#xff08;Analog to Digital Converter&#xff09;&#xff0c;即模拟-数字转换器&#xff0c;可将模拟信号转换成对应的数字信号&#xff0c;便于存储与计算等操作。除电源线和地线之外&#xff0c;ADC只需要1根线与被测量的设备进行连接。 一、案例简介 该程序是基于…...

计算机学生求职简历的一些想法

面试真的是一件非常难的事情&#xff0c;因为在短短的半小时到一个小时&#xff0c;来判断一个同学行不行&#xff0c;其实是很不全面的。作为一个求职的同学应该怎么办呢&#xff1f;求职的同学可以提前做一些准备&#xff0c;其中比较重要的要数简历的编写。 简历的作用 简…...

网工内推 | 售前专场,需熟悉云计算技术,上市公司,提成高

01 神州数码 招聘岗位&#xff1a;售前工程师 职责描述&#xff1a; 1.负责所在区域华为IT产品线&#xff08;服务器、存储、云、虚拟化&#xff09;的售前技术支持工作&#xff0c;包括客户交流、方案编写、配置报价、投标支持、测试等&#xff1b; 2.与厂商相关人员建立和保…...

excel匹配替换脱敏身份证等数据

假如excel sheet1中有脱敏的身份证号码和姓名&#xff0c;如&#xff1a; sheet2中有未脱敏的数据数据 做法如下&#xff1a; 1、在sheet2的C列用公式 LEFT(A2,6)&REPT("*",8)&RIGHT(A2,4) 做出脱敏数据&#xff0c;用来与sheet1的脱敏数据匹配 2、在sheet…...

[技术笔记] Flash选型之基础知识芯片分类

1、按照接口分类 分为 Serial串口Flash 和 Parallel并口Flash&#xff1b; 市场大量使用Serial Flash&#xff1b;价格便宜&#xff1b;已满足系统对数据读写速度的要求&#xff1b; Serial Flash已经可以代表 NOR Flash&#xff1b; 小知识&#xff1a; 1&#xff09;在…...

Jenkins常用插件安装及全局配置

Jenkins常用插件安装及全局配置 前言 ​ Jenkins是一个流行的持续集成工具&#xff0c;通过安装适用的插件&#xff0c;可以扩展Jenkins的功能&#xff0c;并与其他工具和系统集成。本文将介绍一些常用的Jenkins插件以及安装和配置的步骤。通过安装和配置这些常用插件&#xf…...

C++初学者:如何优雅地写程序

我喜欢C语言的功能强大&#xff0c;简洁&#xff0c;我也喜欢C#的语法简单&#xff0c;清晰&#xff0c;写起来又方便好用。 一、为什么不用C语言写程序。 C语言用来做题目&#xff0c;考试研究是很方便的&#xff0c;但是用来写程序做软件&#xff0c;你就会发现&#xff0c…...

图论- 最小生成树

一、最小生成树-prim算法 1.1 最小生成树概念 一幅图可以有很多不同的生成树&#xff0c;比如下面这幅图&#xff0c;红色的边就组成了两棵不同的生成树&#xff1a; 对于加权图&#xff0c;每条边都有权重&#xff08;用最小生成树算法的现实场景中&#xff0c;图的边权重…...

LeetCode刷题记(一):1~30题

1. 两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以…...

学会wordpress 怎么赚钱/网站推广seo

文章目录进程间通信介绍进程间通信的目的进程间通信的技术背景进程间通信的本质进程间通信的一些标准进程间通信意义进程间通信分类管道管道的概念管道的原理匿名管道站在文件描述符角度-深度理解管道站在内核角度-管道本质命名管道system V 共享内存共享内存的理解system V消息…...

单位做网站备案用身份证有啥用/百度云登录入口官网

创建一个新的项目IPHONE 的。 项目名&#xff1a;prog3 点击到 main.storyboard 中&#xff0c;再点击 view ,就可以看到手机界面了。 从对象库 object library 中拖控件到界面中即可。 上图指的就是对象库。...

郑州做网站好/品牌宣传策划方案

1、在虚拟机上安装 linux 首先到官网上下载centos 点击找到get centos 或者 download等进入下载页面点击 DVD ISO 进入&#xff08;isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso&#xff09; 选择一个镜像文件下载&#xff0c;这里选择了163下载…...

asp.net 发布网站 ftp/个人网页设计作品欣赏

字符串函数 include<string.h> (1)strlen: strlen(字符串名)———代表的是取这个字符串的长度&#xff0c;不包括结尾的"\0". (2)strcmp: int strcmp(const char*s1,const char *s2)——用来比较这两个字符串&#xff0c;返回:(1).s1s2:0;(2).s1>s2:1;(3)…...

茂名网站建设解决方案/今日新闻快讯10条

Backup Exec 2012 相对之前的版本2010有了很大的变化,最为明显的就是管理控制台界面。管理界面包括"主页"、"备份和还原"、"存储"、"报告",以及“Backup Exec ” 选项按钮.相比早起的BE2010 各小版本界面也更美观了。1. 软件组成ISO 文…...

疫情防控政策/苏州seo排名优化课程

一.模块的搜索路径 模块的加载路径&#xff1a;内存》内置模块》sys.path(系统内置的环境变量,一系列自定义的模块) import sys print(sys.path) #查询系统的环境变量,以列表的形式进行存储 # 默认第一个元素就是当前被执行的文件目录# 我们可以自定义的去加入系统的配置 sys.p…...