温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

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

发布时间:2022-12-03 09:57:01 来源:亿速云 阅读:93 作者:iii 栏目:开发技术

本文小编为大家详细介绍“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结合使用的方法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI