搜索

首页  >  问答  >  正文

web服务器 - Nginx可不可以理解为一个框架,上面跑的都是什么程序?

web这块东西真的太多了,框架N多种,还有什么web容器,web服务器,这么多名词,对于新手来说简直就是恶梦啊。。。
花了一天时间,稍微清楚了点,

1,其实这些所谓的框架无非就是一些封装,把接口提供给我们使用。

2,web容器么应该算是一个运行环境或者编译器?用来产生html文件的。

3,web服务器这个概念太广了,感觉说不清楚。。。

4,言归正传,Nginx应该属于框架?还是说,它本身就是一个应用程序?还有,在Nginx上面进行开发是用C吗?(注意,不是说Nginx本身是由什么语言开发的),而是Nginx上面跑的程序是由什么语言开发的?只能用C吗?

5,Nginx开发到底是什么意思?如果它本身就是一个应用程序,在应用程序上面再开发一个应用程序?

以上5点不知道有哪几点是对的,可能全错。。。望各位大神解救一下我这个想学web的菜鸟

阿神阿神2777 天前624

全部回复(3)我来回复

  • 漂亮男人

    漂亮男人2017-05-16 17:17:37

    1. 我非常同意你的观点

    2. web容器,就是一个应用程序,利用应用层的http传输各种格式的数据,例如html,浏览器会根据数据类型分别处理

    3. web服务器概念不大,可以通俗理解为就是一个赤裸裸的http服务,只不过这个http服务传输的web相关的数据

    4. Nginx位于网络的最顶层,属于一个应用。C开发,它支持模块的二次开发。

    5. Nginx开发应该指的是插件的开发,nginx也是有http模块的,但是这个http模块是默认通用的模块,如果你需要定制自己的http的模块你就需要用C二次开发。我们有个需求就是验证请求的合法性,我们的做法就是每个http请求的header里都会有个加密串,然后通过我们自己写的nginx的http模块进行反解,如果不对就block掉,这样无效请求就不会进到我们的业务服务器里。还有一个情况也是最常见的就是用Lua写nginx拓展,例如发布新版本做灰度发布的时候,我们想让少部分用户流量导入新服务器,测试没问题的时候再导入所有流量,这个就可以用lua脚本来实现,写一个nginx组件实现你的个性化需求,当然nginx框架本身提供一些底层的api,所以在写插件的时候你只需要关注你的逻辑而不需要关注底层实现.

    nginx开发就像你给一个类写一个类方法一样

    回复
    0
  • 巴扎黑

    巴扎黑2017-05-16 17:17:37

    框架是把开发中常用的代码和模式提取出来,不需要程序员自己再手动造了

    web容器就是虚拟机

    web服务器就是处理网络请求返回各种文本的软件进程,比如最常见的就是碰到http请求就返回html文本

    nginx是代理服务器,基于各种语言实现的web服务器进程没有nginx也能照样处理网络请求以及吐回相应的文本,而nginx的作用简单说就是把各种网络请求筛选后扔给这些相应的web服务器进程,再把这些web服务器吐回的文本作为它处理网络请求吐回去的文本,嗯nginx也是web服务器进程

    上面说了,只要是能处理网络socket请求的进程,nginx都可以沟通,所以nginx与什么语言开发没关系,除非你要对nginx本身功能拓展,那么用c与lua

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 17:17:37

    是一个类似Apache 的服务器,后端编程语言依赖服务器搭建运行环境,可以理解为一个服务,而不是程序

    回复
    0
  • 取消回复