返回顶部
首页 > 资讯 > 精选 >Nginx工作模式及代理配置的示例分析
  • 397
分享到

Nginx工作模式及代理配置的示例分析

2023-06-29 14:06:24 397人浏览 薄情痞子
摘要

小编给大家分享一下Nginx工作模式及代理配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、Nginx 的工作模式1.单进程模式单进程模式下,Ngi

小编给大家分享一下Nginx工作模式及代理配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

一、Nginx 的工作模式

1.单进程模式

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

Nginx工作模式及代理配置的示例分析

优点:

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

缺点:

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

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

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

2.Master-Worker 模式

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

Nginx工作模式及代理配置的示例分析

优点: 稳定性高,只要还有 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.confserver {    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.confserver {    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/

Nginx工作模式及代理配置的示例分析

这里博主来分解一下:

我们 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/;}

验证:

Nginx工作模式及代理配置的示例分析

这个其实很好理解,因为我们没有在 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/;}

验证:

Nginx工作模式及代理配置的示例分析

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/325283.html(转载时请注明来源链接)

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

猜你喜欢
  • Nginx工作模式及代理配置的示例分析
    小编给大家分享一下Nginx工作模式及代理配置的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、Nginx 的工作模式1.单进程模式单进程模式下,Ngi...
    99+
    2023-06-29
  • Nginx工作模式及代理配置的使用细节
    目录一、Nginx 的工作模式1.单进程模式2.Master-Worker 模式3.问题处理二、Nginx 代理配置1.带 /2.不带 /一、Nginx 的工作模式 1.单进程模式 ...
    99+
    2024-04-02
  • Java的代理模式示例分析
    这篇文章主要讲解了“Java的代理模式示例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java的代理模式示例分析”吧!定义代理模式(Proxy Parttern) 为一个对象提供一个替...
    99+
    2023-06-29
  • hibernate中配置文件工作原理的示例分析
    这篇文章主要为大家展示了“hibernate中配置文件工作原理的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“hibernate中配置文件工作原理的示例...
    99+
    2024-04-02
  • js设计模式之代理模式及订阅发布模式的示例分析
    这篇文章将为大家详细讲解有关js设计模式之代理模式及订阅发布模式的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1,代理模式,只是学习了虚拟代理以及缓存代理,具体...
    99+
    2024-04-02
  • JavaScript设计模式之代理模式的示例分析
    这篇文章主要为大家展示了“JavaScript设计模式之代理模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript设计模式之代理模式的...
    99+
    2024-04-02
  • nginx rails站点配置的示例分析
    这篇文章给大家分享的是有关nginx rails站点配置的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Ruby on Rails 是一个用于开发数据库驱动的网络应用程序的完整框架。Rails基于MVC(...
    99+
    2023-06-04
  • Redis 5.05中单独模式安装及配置的示例分析
    这篇文章主要介绍了Redis 5.05中单独模式安装及配置的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。操作系统Centos7&n...
    99+
    2024-04-02
  • web前端中代理模式的示例分析
    这篇文章主要为大家展示了“web前端中代理模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“web前端中代理模式的示例分析”这篇文章吧。代理模式(Pr...
    99+
    2024-04-02
  • JS中工厂模式的示例分析
    这篇文章主要介绍了JS中工厂模式的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。基于JS工厂模式的H5应用,实现了轮播图功能与滑屏功...
    99+
    2024-04-02
  • Ajax工作原理及优缺点的示例分析
    这篇文章将为大家详细讲解有关Ajax工作原理及优缺点的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.Ajax是什么?全称是 asynchronous javascript and xml,是已...
    99+
    2023-06-08
  • Memcached工作原理的示例分析
    这篇文章主要介绍Memcached工作原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Memcached的工作原理。Memcached处理的原子是每一个(key,valu...
    99+
    2024-04-02
  • MyBatis工作原理的示例分析
    这篇文章给大家分享的是有关MyBatis工作原理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、Mybatis工作原理Mybatis分层框架图Mybatis工作原理图源码分析:一般都是从hellowo...
    99+
    2023-06-15
  • Struts2工作原理的示例分析
    这篇文章主要介绍Struts2工作原理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、工作原理在Struts2框架中的处理大概分为以下几个步骤      ...
    99+
    2023-05-30
    struts2
  • JavaScript设计模式之工厂模式的示例分析
    这篇文章主要为大家展示了“JavaScript设计模式之工厂模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaS...
    99+
    2024-04-02
  • Java设计模式之工厂模式的示例分析
    这篇文章主要为大家展示了“Java设计模式之工厂模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java设计模式之工厂模式的示例分析”这篇文章吧。具体如下:工厂模式主要是为创建对象提...
    99+
    2023-05-30
    java
  • java适配器模式的示例分析
    这篇文章主要为大家展示了“java适配器模式的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“java适配器模式的示例分析”这篇文章吧。定义:将一个类的接口转换成客户希望的另外一个接口。适...
    99+
    2023-05-30
    java
  • Vuejs+vue-router打包+Nginx配置的示例分析
    这篇文章主要为大家展示了“Vuejs+vue-router打包+Nginx配置的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Vuejs+vue-rou...
    99+
    2024-04-02
  • Docker网络模式及配置方式的示例
    这篇文章将为大家详细讲解有关Docker网络模式及配置方式的示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Docker网络模式docker run 创建 Docker 容器时,可以用 –net 选...
    99+
    2023-06-14
  • Java适配器模式示例分析
    本篇内容主要讲解“Java适配器模式示例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java适配器模式示例分析”吧!定义适配器模式,即将某个类的接口转换成客户端期望的另一个接口的表示,主要...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作