文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

nginx与node.js结合使用的方法是什么

2023-07-04 17:08

关注

本文小编为大家详细介绍“nginx与node.js结合使用的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“nginx与node.js结合使用的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

Node.js是一个基于Chrome JavaScript运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞I/O 模型而得以轻量和高效,非常适合在分布式设备上运行的数据密集型的实时应用,如实时聊天等等。然而对于gzip编码,静态文件,HTTP缓存,SSL处理,负载平衡和反向代理等,都可以通过nginx来完成,从而减小node.js的负载,并通过nginx强大的缓存来节省网站的流量从而提高网站的加载速度。

流程图

nginx与node.js结合使用的方法是什么

nginx配置如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

http {

    proxy_cache_path  /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m;

    proxy_temp_path /var/tmp;

    include       mime.types;

    default_type  application/octet–stream;

    sendfile        on;

    keepalive_timeout  65;

    gzip on;

    gzip_comp_level 6;

    gzip_vary on;

    gzip_min_length  1000;

    gzip_proxied any;

    gzip_types text/plain text/html text/css application/json application/x–javascript text/xml application/xml application/xml+rss text/javascript;

    gzip_buffers 16 8k;

    ssl_certificate /some/location/sillyfacesociety.com.bundle.crt;

    ssl_certificate_key /some/location/sillyfacesociety.com.key;

    ssl_protocols        SSLv3 TLSv1;

    ssl_ciphers HIGH:!aNULL:!MD5;

    upstream silly_face_society_upstream {

      server 127.0.0.1:61337;

      server 127.0.0.1:61338;

      keepalive 64;

    }

    server {

      listen 80;

      listen 443 ssl;

      server_name sillyfacesociety.com;

      return 301 $scheme://www.trustauth.cn$request_uri;

    }

    server {

        listen 80;

        listen 443 ssl;

        server_name www.sillyfacesociety.com;

        error_page 502  /errors/502.html;

        location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {

          root /usr/local/silly_face_society/node/public;

          access_log off;

          expires max;

        }

        location /errors {

          internal;

          alias /usr/local/silly_face_society/node/public/errors;

        }

        location / {

          proxy_redirect off;

          proxy_set_header   X–Real–IP            $remote_addr;

          proxy_set_header   X–Forwarded–For  $proxy_add_x_forwarded_for;

          proxy_set_header   X–Forwarded–Proto $scheme;

          proxy_set_header   Host                   $http_host;

          proxy_set_header   X–NginX–Proxy    true;

          proxy_set_header   Connection “”;

          proxy_http_version 1.1;

          proxy_cache one;

          proxy_cache_key sfs$request_uri$scheme;

          proxy_pass         http://silly_face_society_upstream;

        }

    }

}

配置段说明

1

2

3

4

5

6

7

8

9

http {

    ...

    upstream silly_face_society_upstream {

      server 127.0.0.1:61337;

      server 127.0.0.1:61338;

      keepalive 64;

    }

    ...

}

nginx负载均衡多个nodo.js实例。keepalive 64 指示nginx在任何时候保持最少64个HTTP/ 1.1连接到代理服务器。如果有更多的流量nginx将打开更多的连接。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

http {

    ...

    server {

        ...

        location / {

          proxy_redirect off;

          proxy_set_header   X–Real–IP            $remote_addr;

          proxy_set_header   X–Forwarded–For  $proxy_add_x_forwarded_for;

          proxy_set_header   Host                   $http_host;

          proxy_set_header   X–NginX–Proxy    true;

          ...

          proxy_set_header   Connection “”;

          proxy_http_version 1.1;

          proxy_pass         http://silly_face_society_upstream;

        }

        ...

    }

}

将符合哪些的请求发送到代理上。nginx的匹配规则可以取看看前面的文章。

nginx处理静态内容

1

2

3

4

5

6

7

8

9

10

11

12

http {

    ...

    server {

        ...

        location ~ ^/(images/|img/|javascript/|js/|css/|stylesheets/|flash/|media/|static/|robots.txt|humans.txt|favicon.ico) {

          root /usr/local/silly_face_society/node/public;

          access_log off;

          expires max;

        }

        ...

    }

}

设置缓存

1

2

3

4

5

6

http {

    ...

    proxy_cache_path  /var/cache/nginx levels=1:2 keys_zone=one:8m max_size=3000m inactive=600m;

    proxy_temp_path /var/tmp;

    ...

}

1

2

3

4

5

6

7

8

9

10

11

12

http {

  server {

     ...

     location / {

          ...

          proxy_cache one;

          proxy_cache_key sfs$request_uri$scheme;

          ...

     }

     ...

  }

}

缓存是通过HTTP头部来控制的。

读到这里,这篇“nginx与node.js结合使用的方法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯