nginx(二)

简介: nginx(二)

1、在Linux中,curl命令,用来做网络请求的,可以返回整个html的内容:

2、当我们把nginx安装成功的话:启动nginx的时候是默认按照nginx.conf文件来启动的,查看进程时可以看到一个master和一个worker的进程,有点类似于netty中的线程模型,这个nginx也是用epoll模型做的。

3、nginx相关的命令:

如果启动时不用默认的配置,想要自己的配置的话:./nginx -c:指定配置文件的位置

eg:./nginx -c /usr/local/conf/nginx.conf

./nginx -s stop :停止: 

./nginx  -s  quit :退出

/nginx  -s  reload :重新加载将新的配置信息重新加载到nginx里面去,优雅的去刷新nginx的配置文件,很常用。

/nginx -s:发送 对应信号处理master进程  常用的是reload,stop

./nginx -v:nginx的版本

./nginx -V:可以查看nginx的内核的版本:

./nginx   -t:验证 配置文件nginx.conf是正确的


注意,如果找不到nginx安装的位置,但是想要退出,可以选用下面的命令:

kill -QUIT:会禁止进来的所有的请求,它会等待未执行完的请求之后才会正式的退出这个线程。

kill- 9:很暴力。

kill -TERM :和kill -9是一个意思

二、nginx的配置文件

nginx的配置文件总共分为4个部分。nginx做项目的时候肯定把nginx.conf分成很多个配置文件的,因为一个nginx下面有很多个域名,不止一个,后面会根据不同的配置文件来区分域名。

我的本机nginx配置文件路径是  /usr/local/nginx/conf/ 这个目录下面,其中nginx.conf是主配置文件。Nginx.conf配置文件主要分成四个部分:

  • main (全局设置) 。可以设置一些全局的变量
  • sever (虚拟主机设置)。
  • upstream负载均衡服务器设置
  • location(URL匹配特定位置的设置)。

main部分设置的命令将影响其他所有设置。server 部分的命令主要用于指定主机和端口;。upstream命令主要用于负载均衡,设置一系列的后端服务器。location 部分用于匹配网页位置。这四者之间的关系是server继承main, location 继承server, upstream 既不会继承其他设置也不会被继承。在这四个部分当中,每个部分都包含若干命令,这些命令主要包含Nginx的主模块命令,事件模块命令,HTTP核心模块命令,同时每个部分还可以使用其他HTTP模块命令(例如HTTP SSL模块,HttpGzip Static模块和Http Addition模块等)。

首先看下 location /:/:代表的是根目录。代表当前服务器的根目录。在根目录去找html。也就是说nginx安装的目录,去查找html的这样的文件夹50x.html和index.html,80端口是默认浏览器访问的端口

4、如何去在在主机上访问虚拟机里的nginx呢?

步骤如下:

Ⅰ、需要把80端口永久放行

Ⅱ、然后在浏览器上去访问:

Ⅲ、然后在本机的hosts文件下,可以配置下域名和ip的映射,然后可以就用域名访问了:


如果访问的是/50x.html那么也会定位到下面的html去:这就是错误页面

5、server的配置:

Ⅰ、基于域名的配置:这时需要在nginx的安装目录下创建weizhaoyang/html/index.html

Ⅱ、基于端口号的虚拟主机配置

提问下:如何实现多个IP地址指向一台虚拟主机?

使用一台主机,一张网卡,来使用多个ip地址去操作一张网卡,这张网卡可以提供三个ip地址这三个ip地址是一台机器的ip地址的一个副本,就是一个别名,实际这个别名就是个Ip。

ens33是个网卡,首先段时241段,子网掩码是255.255.255.0,broadcast:广播的段。现在针对这个ip地址定义两个别名,添加网卡的路由的规则如下:

上面的两个网卡是ens33的虚拟网卡。只是ens33的快捷方式一样,这就是一张网卡上虚拟出两张网卡,虚拟网卡指向物理网卡。

然后用windws系统可以去ping下上面的虚拟网卡:

Ⅲ、基于IP的配置(不怎么用)


这相当于是跳板。这就是防止真实的ip地址给暴漏出来。防止服务器被攻击,这种的配置一旦机器关掉以后,这种虚拟的ip就会消失。

如果想永久的话


在上面的文件里面加入相应得配置信息,在Linux中的软连接就是快捷方式。

三、nginx中server_name的匹配顺序:

前提:安装打印字符串的模块:安装:echo-nginx-module

下载  https://github.com/openresty/echo-nginx-module并解压到服务器上

重新安装nginx的话不会覆盖原有的nginx的信息。

Ⅰ、最高优先级:完全匹配

首先在虚拟机中的etc/hosts文件下创建域名与127.0.0.1映射的路径:

然后在nginx.conf中创建两个server,1个完全匹配,1个通配符匹配,通配符server放在最前,以证明完全匹配的优先级与配置顺序无关:

总结:意思就是能够完全匹配上的话完全匹配的优先级高,如果没有完全匹配的话,就选择通配的方式去匹配。选择通配符在前。

第二优先级:通配符在前

符在后:第三优先级:\w:代表的是a-z,A-Z,0-9之间的字符,+:代表这里可以出现很多的这类的字符。

. 是一个特殊的符号,所以这里要转义。^:以什么开始

$:以什么结尾,在nginx里面如果想要用正则表达式的话必须使用~在前面放着

~:代表使用正则表达式   *:忽略大小写去匹配。

listen 配置项中default的影响

1、这时如果server_name:完全匹配不上的话,会找端口去匹配,如果都是80端口的话,它会去找带defalut的,定位的时候不会去查server_name,不会去管server_name是啥了。

2、defualt关键字在所有server段下面的server_name都匹配不上的时候才有效果。如果匹配上就不生效。

相关文章
|
7天前
|
弹性计算 人工智能 架构师
阿里云携手Altair共拓云上工业仿真新机遇
2024年9月12日,「2024 Altair 技术大会杭州站」成功召开,阿里云弹性计算产品运营与生态负责人何川,与Altair中国技术总监赵阳在会上联合发布了最新的“云上CAE一体机”。
阿里云携手Altair共拓云上工业仿真新机遇
|
3天前
|
机器学习/深度学习 算法 大数据
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
2024“华为杯”数学建模竞赛,对ABCDEF每个题进行详细的分析,涵盖风电场功率优化、WLAN网络吞吐量、磁性元件损耗建模、地理环境问题、高速公路应急车道启用和X射线脉冲星建模等多领域问题,解析了问题类型、专业和技能的需要。
2436 13
【BetterBench博士】2024 “华为杯”第二十一届中国研究生数学建模竞赛 选题分析
|
3天前
|
机器学习/深度学习 算法 数据可视化
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
2024年中国研究生数学建模竞赛C题聚焦磁性元件磁芯损耗建模。题目背景介绍了电能变换技术的发展与应用,强调磁性元件在功率变换器中的重要性。磁芯损耗受多种因素影响,现有模型难以精确预测。题目要求通过数据分析建立高精度磁芯损耗模型。具体任务包括励磁波形分类、修正斯坦麦茨方程、分析影响因素、构建预测模型及优化设计条件。涉及数据预处理、特征提取、机器学习及优化算法等技术。适合电气、材料、计算机等多个专业学生参与。
1480 14
【BetterBench博士】2024年中国研究生数学建模竞赛 C题:数据驱动下磁性元件的磁芯损耗建模 问题分析、数学模型、python 代码
|
1月前
|
运维 Cloud Native Devops
一线实战:运维人少,我们从 0 到 1 实践 DevOps 和云原生
上海经证科技有限公司为有效推进软件项目管理和开发工作,选择了阿里云云效作为 DevOps 解决方案。通过云效,实现了从 0 开始,到现在近百个微服务、数百条流水线与应用交付的全面覆盖,有效支撑了敏捷开发流程。
19268 29
|
1月前
|
人工智能 自然语言处理 搜索推荐
阿里云Elasticsearch AI搜索实践
本文介绍了阿里云 Elasticsearch 在AI 搜索方面的技术实践与探索。
18816 20
|
1月前
|
Rust Apache 对象存储
Apache Paimon V0.9最新进展
Apache Paimon V0.9 版本即将发布,此版本带来了多项新特性并解决了关键挑战。Paimon自2022年从Flink社区诞生以来迅速成长,已成为Apache顶级项目,并广泛应用于阿里集团内外的多家企业。
17513 13
Apache Paimon V0.9最新进展
|
1月前
|
存储 人工智能 前端开发
AI 网关零代码解决 AI 幻觉问题
本文主要介绍了 AI Agent 的背景,概念,探讨了 AI Agent 网关插件的使用方法,效果以及实现原理。
18695 16
|
5天前
|
编解码 JSON 自然语言处理
通义千问重磅开源Qwen2.5,性能超越Llama
击败Meta,阿里Qwen2.5再登全球开源大模型王座
321 11
|
2天前
|
算法 Java
JAVA并发编程系列(8)CountDownLatch核心原理
面试中的编程题目“模拟拼团”,我们通过使用CountDownLatch来实现多线程条件下的拼团逻辑。此外,深入解析了CountDownLatch的核心原理及其内部实现机制,特别是`await()`方法的具体工作流程。通过详细分析源码与内部结构,帮助读者更好地理解并发编程的关键概念。
|
2天前
|
SQL 监控 druid
Druid连接池学习
Druid学习笔记,使用Druid进行密码加密。参考文档:https://github.com/alibaba/druid
184 80