e游彩app

高手问答第 225 期 —— 搭建 Nginx 高性能服务

发布于 03/19 10:45
阅读 9K+
收藏 85

OSCHINA 本期高手问答(3月19日-3月25日)我们请来了 (王力)和大家一起探讨 Nginx 相关的问题。

王力,折800运维架构师,Nginx 开发工程师,具有多年互联网相关项目的开发经验。喜欢使用小众技术完成运维、开发和测试任务,擅长通过架构设计降低开发难度,擅长搭建 Nginx 高性能服务。

Nginx 是一个以高性能、高并发著称的 HTTP 服务器,它支持 HTTP(HyperText Transfer Protocol,超文本传输协议)反向代理、TCP(Transmission Control Protocol,传输控制协议)代理、负载均衡、HTTP 缓存及 Web 开发等。

本期问答内容:

1. Nginx当前的现状
2. 怎样才能发挥Nginx的作用
3. 学习Nginx开发过程遇到的困难

或者其他关于 Nginx 的问题,也欢迎大家积极提问!

为了鼓励踊跃提问, 会在问答结束后从提问者中抽取 5 名幸运会员赠予《Nginx实战:基于Lua语言的配置、开发与架构详解》一书。

购买链接

OSChina 高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 Nginx 相关问题向 提问,请直接回帖提问。

加载中
2

nginx中缓存的js 如果js有改动 nginx如何更新缓存信息

回复 : js构建的时候使用js的哈希值(md5, SHA)作为文件名,也可以解决这个问题
1 不建议在nginx上进行开发,如果你的原始文件在磁盘上,你可以使用linux 的使用inotify监控发现js文件属性变化了,就触发清除nginx缓存,使用proxy_cache_purge 命令(plus中才有)。 2 最好的方式是,js的请求都是带有一个参数的,这个参数在每次js变化后再前端的代码中会自动变化,这样就会自动打穿缓存去获取最新的文件。
0

@力不从心王  一直只是简单的使用Nginx,从来没有涉及到开发,请问Nginx开发是指使用lua语言开发Nginx的模块,按自己的需要修改请求的处理过程么?谢谢。

nginx的那些模块不都是别人开发的,甚至开发了tengine,kong这些东西。
ngx_lua自身就是一个nginx模块,它可以让lua运行在nginx进程中,当你属性nginx的执行阶段后,你可以在nginx的每个执行阶段中加入lua 代码,来创建自己的功能,你可以简单的理解为,在nginx上开了个vm让你执行lua语句,并且ngx_lua已经提供了大量的api方便你的代码编写。
0

@力不从心王NGinx最强大的地方在于可以进行负载均衡和大的并发量处理,从核心上解决并发量的问题,配合各种其他的服务可以做热备,例如mongodb,redis,mysql等等,服务器的热备,总之可以说之为是一个好的工具,就看使用者怎么利用了,这是我的个人见解。

嗯,对的,nginx的用途广泛,根据自己的业务需求来制定nginx使用方式是最合理的。
0

@力不从心王 大大,nginx做负载均衡除了用F5还有什么好的软实现方案没?

负载均衡软件目前市面上使用的较多的是 nginx,caddy ,lvs,haproxy,varnish等。 F5目前收购了nginx其实可以预见软硬兼施的可见性,这对安全和功能的多样性也是很好的兼顾
G6
0

想请教一个问题,目前感觉很多人把 nginx 就当作一个 HTTP 的服务器,能不能通过什么便捷的手段,将 nginx 应用在其它协议或者是自定义协议的服务器开发呢?

web服务器的确是主要职能 其实负载均衡器也是一大应用方向 我们一部分业务就是前端nginx分发的流量的
刚才 吕不为 也提到了这些协议, nginx 中提供了不少模块来针对各种协议,比如 lua-resty-websocket ,你可以用来做IM聊天系统。 也可以利用其他模块来交互DB等完成各项API。
有插件模块可以支持tcp,websocket,以及其他协议。
0

@力不从心王 

1.nginx处理http2+s跟tomcat,nodejs相比优势在哪?

2.nginx负载均衡挂掉了有啥好的处理方法

1, Ng占用资源少, 并发性能好, 擅长处理静态请求, 易配置/运维, 生态也好. 2, 双Ng+Keepalive+VIP故障漂移大法,可以保障某个Ng单点故障. 不过Ng的特性决定了不太容易挂, 感觉只有机器挂了它才会挂.
1 http2.0中 nginx 和nodejs Tomcat 在使用场景上不同,无法做出很好的比较,而且笔者现在在http2.0上的使用也比较少。 2 负载均衡挂掉,你是指的nginx挂了吗? 如果是这样, 一般有keepalive来切换nginx的ip ,也可以使用lvs来代理nginx做故障切换
0

小白问一下,nginx服务一旦启动,修改了里面的某个js,需要重启服务么?

就是 说的那个方式, js是存放在硬盘中,nginx只负责读取的话, 如果没有换成,修改后自动读取到新文件的。
文件都是每次从文件系统重新读取的。实时生效。
0

nignx stream 模块做4层代理,如何设定路由规则,官网文档没查到,是要自己扩展吗

四层做路由,你指的哪种路由模式?
0

e游彩app lua嵌入扩展nginx,还是nginx挂在lua模块,两者是什么样的关系?

Lua是作为nginx嵌入的一个模块吧
lua嵌入nginx,比原来的配置文件的方式更灵活,你可以认为是编程语言方式的配置文件。
返回顶部
顶部