返回顶部
首页 > 资讯 > 服务器 >Nginx工作模式及代理配置的使用细节
  • 260
分享到

Nginx工作模式及代理配置的使用细节

2024-04-02 19:04:59 260人浏览 薄情痞子
摘要

目录一、Nginx 的工作模式1.单进程模式2.Master-Worker 模式3.问题处理二、Nginx 代理配置1.带 /2.不带 /一、Nginx 的工作模式 1.单进程模式

一、Nginx 的工作模式

1.单进程模式

单进程模式下,Nginx 启动后只有一个进程,Nginx 的所有工作都由这个进程负责。

在这里插入图片描述

优点:

单进程模式由于只有一个进程,因此可以很方便的利用 gdb工具进行调试。

缺点:

单进程模式不支持 Nginx 的平滑升级功能,任何的信号处理都可能造成服务中断;并且由于是单进程,进程挂掉后,在没有外部监控的情况下,无法重启服务。

不过后面 Nginx 已经将 Master-Worker 配置成默认的工作模式,所以并不需要担心上面的问题。

[root@localhost ~]# ps aux | grep nginx | grep -v grep
root       38395  0.0  0.0 264704  7192 ?        Ss   Dec15   0:00 nginx: master process /usr/local/nginx/sbin/nginx
root     3421689  0.0  0.0 294040 32680 ?        S    Dec24   0:00 nginx: worker process

2.Master-Worker 模式

Nginx 启动后,会有一个 Master 进程和至少一个的 Worker 进程;Master 进程主要负责处理系统信号,加载配置,管理 Worker 进程等操作;而 Worker 进程则是负责处理具体的业务逻辑,也就是说,对外部来说,真正提供服务的是 Worker 进程。

在这里插入图片描述

优点: 稳定性高,只要还有 Worker 进程存活,就能够提供服务,并且一个 Worker 进程挂掉后,Master 进程会立即启动一个新的 Worker 进程,来保证 Worker 进程数量不变,降低服务中断的概率;同时 可以配合 Nginx 的 CPU 亲和,来充分利用多核 CPU 的优势,提升性能。

3.问题处理

前两天博主在启动 Nginx 的时候,是没有问题的,但是在访问时就不行,当时通过查看端口号,发现端口是存在的,后面使用 ps 看进程,发现只有一个 master 进程(master 进程不会对外提供服务),最后通过查看 error.log 日志发现:

是因为使用的第三方模有问题,导致 Worker 进程并未启动。

处理方案的话有两种: 第一个就是将第三方模块在配置中进行移除,第二个就是对第三方模块进行修复。

二、Nginx 代理配置

这里博主 主要介绍:Nginx 配置文件中 / 的作用,别看这个一个小小的符号,他的作用可以说 关乎到系统是否可以正常提供服务。

Nginx 配置文件中 / 的作用,主要体现在 proxy_pass 的配置上。

准备工作:

[root@PengYuYan ~]# yum -y install nginx
[root@PengYuYan ~]# cat <<END > /etc/nginx/conf.d/Server_80.conf
server {
    listen 80;
    server_name 127.0.0.1;
    root /usr/share/nginx/html;
    index index.html;

    location /ZhangSan/ {
        proxy_pass Http://127.0.0.1:8080;
    }
    location /PengYuYan/ {
        proxy_pass http://127.0.0.1:8080/;
    }
}
END
[root@PengYuYan ~]# mkdir /usr/share/nginx/html/ZhangSan
[root@PengYuYan ~]# echo "This is 127.0.0.1:80 ZhangSan" > /usr/share/nginx/html/ZhangSan/index.html
[root@PengYuYan ~]# mkdir /usr/share/nginx/html/PengYuYan
[root@PengYuYan ~]# echo "This is 127.0.0.1:80 PengYuYan" > /usr/share/nginx/html/PengYuYan/index.html
[root@PengYuYan ~]# cat <<END > /etc/nginx/conf.d/Server_8080.conf
server {
    listen 8080;
    server_name 127.0.0.1;
    root /www/html;
    index index.html;

    location / {
    }
    location /ZhangSan/ {
    }
    location /PengYuYan/ {
    }
}
END
[root@PengYuYan ~]# mkdir -p /www/html
[root@PengYuYan ~]# echo "This is 127.0.0.1:8080 /" > /www/html/index.html
[root@PengYuYan ~]# mkdir /www/html/ZhangSan
[root@PengYuYan ~]# echo "This is 127.0.0.1:8080 ZhangSan" > /www/html/ZhangSan/index.html
[root@PengYuYan ~]# mkdir /www/html/PengYuYan
[root@PengYuYan ~]# echo "This is 127.0.0.1:8080 PengYuYan" > /www/html/PengYuYan/index.html

下面的那些 location,你们是不需要重新配置的,因为上面的配置和下面对应。

1.带 /

location /PengYuYan/ {
    proxy_pass http://127.0.0.1/8080/;
}

验证:curl 127.0.0.1/PengYuYan/

在这里插入图片描述

这里博主来分解一下:

我们 curl 127.0.0.1/PengYuYan/ 中的 PengYuYan 其实就是我们 80 端口的 location 配置,并不是 8080 端口上的配置;

而我们正好又在 proxy_pass 代理的后面增加了个 /,就导致我们实际上访问的是 curl 127.0.0.1:8080/;

也就是说,我们要是如上配置,想要访问到 8080 端口的 PengYuYan,则需要 curl 127.0.0.1/PengYuYan/PengYuYan/。

2.不带 /

location /PengYuYan/ {
    proxy_pass http://127.0.0.1/8080/;
}

验证:

在这里插入图片描述

这个其实很好理解,因为我们没有在 proxy_pass 后面增加 /,所以 Nginx 会自动将 location 的目录放到 proxy_pass 后面。

总结

当我们的 proxy_pass 代理后面有 / 时,它并不会将 location 配置的目录加进去;

而当我们的代理后面没有加 / 时,Nginx 便会将 location 的目录放到 proxy_pass 后面。

1) 在带有目录的情况下加 /(修改原来的 Server_80.conf 文件即可)

location /PengYuYan/ {
    proxy_pass http://127.0.0.1/8080/;
}

验证:

在这里插入图片描述

2) 在带有目录的情况下不加 /

location /ZhangSan/ {
    proxy_pass http://127.0.0.1/8080/ZhangSan;
}

验证:curl 127.0.0.1/ZhangSan/,在我们的配置上,实际上是访问的 curl 127.0.0.1:8080/ZhangSan/ZhangSan/

在这里插入图片描述

其实啊,不管是有目录和没目录,都和博主上面总结的一样。主要还是 Nginx 中的 / 在作怪。

以上就是Nginx工作模式及代理配置的使用细节的详细内容,更多关于Nginx工作模式代理配置的资料请关注编程网其它相关文章!

--结束END--

本文标题: Nginx工作模式及代理配置的使用细节

本文链接: https://lsjlt.com/news/143271.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Nginx工作模式及代理配置的使用细节
    目录一、Nginx 的工作模式1.单进程模式2.Master-Worker 模式3.问题处理二、Nginx 代理配置1.带 /2.不带 /一、Nginx 的工作模式 1.单进程模式 ...
    99+
    2024-04-02
  • Nginx工作模式及代理配置的示例分析
    小编给大家分享一下Nginx工作模式及代理配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、Nginx 的工作模式1.单进程模式单进程模式下,Ngi...
    99+
    2023-06-29
  • Nginx常用配置及代理转发
    Nginx配置及代理转发 nginx配置:配置分离:Nginx配置静态资源:Nginx配置转发其他应用:Nginx配置跨域访问:Nginx配置域名通配符访问:Nginx配置https:Nginx配置不同终端的转发: nginx配...
    99+
    2023-08-21
    nginx 服务器 运维
  • nginx正向代理的配置和使用
    nginx正向代理的配置和使用 nginx正向代理的配置和使用 nginx正向代理的配置和使用安装包准备下载nginx安装包下载正向代理模块的包版本与模块对照表 部署nginx服务上传nginx包和正向模块包解压,改名安装ng...
    99+
    2023-08-18
    nginx 运维 服务器 nginx正向代理
  • Ubuntu22.04虚拟机配置及使用代理工具
    特别注意:本教程基于VMware虚拟机,安装Ubuntu22.04。其他类型虚拟机及Linux其他版本配置相似但有所不同。 1. 虚拟机配置 1.1 打开虚拟机设置。 或 1.2 选择硬件选项卡-网络适配器,在网络连接处选择“NAT模式...
    99+
    2023-09-02
    linux 运维 服务器 代理模式
  • 怎么使用Nginx作反向代理配置GZip压缩
    这篇文章主要介绍了怎么使用Nginx作反向代理配置GZip压缩的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用Nginx作反向代理配置GZip压缩文章都会有所收获,下面我们一起来看看吧。前提条件: nod...
    99+
    2023-07-04
  • Nginx各个模块的配置及常用配置选项
    目录Nginx Location配置请求转发和重定向Nginx静态文件配置文件下载服务器Nginx配置HTTPSNginx日志配置Nginx超时设置请求超时设置Proxy反向代理超时...
    99+
    2024-04-02
  • Git工作流模式及命令的使用讲解
    目录Git的工作方式集中式工作流功能分支工作流Gitflow工作流维护分支工作流程Forking工作流Pull RequestGit的工作方式 分为集中式工作流、功能分支工作流、Gi...
    99+
    2024-04-02
  • Spring细数两种代理模式之静态代理和动态代理概念及使用
    目录代理模式1、静态代理2、动态代理代理模式 在学习 AOP 之前,我们先来了解下代理模式, 代理模式分为静态代理以及动态代理,属于23中设计模式之一。 AOP 的底层机制就是动态代...
    99+
    2023-02-27
    Spring静态代理与动态代理 Spring静态代理 Spring动态代理
  • Git工作流模式及命令怎么使用
    今天小编给大家分享一下Git工作流模式及命令怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。Git的工作方式分为集中式...
    99+
    2023-06-30
  • Nginx可视化配置工具NginxWebUI的使用
    目录NginxWebUI介绍NginxWebUI功能说明NginxWebUI安装1、jar包运行方式2、docker安装说明NginxWebUI使用演示介绍一款好用的网页版开源工具,...
    99+
    2024-04-02
  • 代理服务器的工作模式是什么
    代理服务器的工作模式:代理服务器与客户端创建连接,根据代理协议请求对目标服务器创建连接或获得目标服务器的指定资源,对目标服务器的资源下载至本地缓存,若客户端所要获取的资源在代理服务器的缓存中,代理服务器不会向目标服务器发送请求,直接返回缓存...
    99+
    2024-04-02
  • Redis Sentinel哨兵模式的原理及配置
    这篇文章主要介绍“Redis Sentinel哨兵模式的原理及配置”,在日常操作中,相信很多人在Redis Sentinel哨兵模式的原理及配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,...
    99+
    2024-04-02
  • 详解Spring中使用xml配置bean的细节
    整理总结刚学的关于spring的xml配置bean的知识。 在ApplicationContext.xml文件中使用bean节点配置bean,bean的属性id在IOC容器中必须是唯一的。<bean id="helloWorld" c...
    99+
    2023-05-31
    spring xml bean
  • springMVC的工作原理和机制以及配置
    这篇文章主要讲解了“springMVC的工作原理和机制以及配置”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“springMVC的工作原理和机制以及配置”吧!工作原理下面的是springMVC...
    99+
    2023-06-03
  • Java工厂模式的使用细则介绍
    目录工厂模式简单工厂模式工厂方法模式抽象工厂模式工厂模式 工厂模式顾名思义就是生产实例的工厂,使用工厂模式不会在程序中使用new关键字创建实例。而是将创建对象的细节隐藏,对外提供统一...
    99+
    2023-02-21
    Java工厂模式 Java工厂设计模式 设计模式工厂模式
  • Windows下用Nginx配置https服务器及反向代理的问题
    请求逻辑 前端 --> https方式请求nginx nginx --> 通过http请求后端服务 安装OpenSSL 下载地址 然后配置环境变量。在系统环境变量...
    99+
    2024-04-02
  • Nginx七层及四层反向代理配置的全过程
    目录部署测试 http服务nginx反向代理 http服务nginx 通过 https反向代理 http服务Nginx Stream模块负载均衡测试准备测试用 https服务ngin...
    99+
    2024-04-02
  • JavaScript Object.defineProperty与proxy代理模式的使用详细分析
    目录1. Object.defineProperty2. Object.defineProperties3. proxy代理模式总结1. Object.defineProperty ...
    99+
    2022-11-13
    JavaScript Object.defineProperty JavaScript proxy
  • 怎么使用Ansible管理工作站配置
    这篇文章给大家分享的是有关怎么使用Ansible管理工作站配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。配置管理是服务器管理和 DevOps 的一个非常重要的方面。“基础架构即代码infrastructure...
    99+
    2023-06-16
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作