博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
由nodejs+nginx搭配而成的高并发服务器
阅读量:6424 次
发布时间:2019-06-23

本文共 1847 字,大约阅读时间需要 6 分钟。

nginx监听网站80端口,而nodejs监听端口是8000,就可以配置nginx反向代理到nodejs的3000端口,同理,也可以配置代理到多个不同的端口,就可以实现
一台服务器同时服务多个域名,并且可以让nginx负责网站的静态资源请求。有效提高网站的吞吐量和性能!

最简单的做法

直接修改nginx配置,增加下面配置

server {    listen       80;                # 监听80端口    server_name node.bluej.cn;      # 监听的域名    #access_log  /web/nodejs/access.log;     #配置了一下来访日志,怕占用硬盘,关了    error_log   /web/nodejs/error.log;      #配置了一下错误日志    ## 针对静态资源做优化,所有静态资源由nginx来处理,注意有新的类型记得加进来    location ~ \.(gif|jpg|jpeg|png|bmp|swf|css|js|doc|docx|xls|xlsx|zip|rar|mp3|mp4)$         {        root /web/nodejs;       #指向根目录        expires max;            #用来设置缓存时间    }    ## node线程,只负责动态部分    location /{        proxy_pass http://127.0.0.1:8000;   #反向代理,指向具体的node监听端口        proxy_redirect     off;                           #关闭地址的重定向        # 在代理请求头中加入下面的信息,方便我们用nodejs获取一些客户端信息        proxy_set_header   Host             $host;        #本机地址(ip或域名)        proxy_set_header   X-Real-IP        $remote_addr; #客户端真实ip        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;#客户端真实ip    }}复制代码

常见问题

  1. 访问页面超时 有可能是读取文件fs.readFile的路径出问题了,不同环境下,路径写法有所区别,正确的兼容写法应该是
    var path = require("path");//引入path模块path.join(__dirname, "../view/index.html");//参数一,表示你当前文件所在物理绝对路径,参数二就是你具体要访问的路径了复制代码
    否则,很容易请求超时,因为无法读取正确的文件路径
  2. nginx访问静态文件,老是报403 Forbidden 原因可能是 nginx没有访问目录的权限,在 nginx.conf 文件中,标注了user www www;,所以,咱们网站根目录所在的父文件夹的拥有者必须也是www用户,所以,记得设置一下你的目录拥有者
    chown www:www /web复制代码
  3. 如何设置我们的nodejs网站可以开机启动 如果你是用pm2
    pm2 startuppm2 save  复制代码
    就会把你启动的网站信息存在 ~/.pm2/dump.pm2,例如 /root/.pm2/dump.pm2
    其它同类型产品一样道理

如何搞均衡负载

在配置里,在server段前面加上upstream段

upstream nodejs_upstream {    server 127.0.0.1:8000;    server 127.0.0.1:8001;    server 127.0.0.1:8002;}server{    ...    location /{        proxy_pass http://nodejs_upstream    }    ...}复制代码

上面的配置意思是nginx会自动分配请求到多个ip端口地址中,实现均衡负载

参考资料

转载于:https://juejin.im/post/5b17ff6c6fb9a01e7f2e9dff

你可能感兴趣的文章
我的友情链接
查看>>
.JDK1.6安装配置后的测试
查看>>
判断闰年的函数
查看>>
pkill -9 nginx
查看>>
关于ASP.NET MVC4 Web API简单总结
查看>>
BGP最新的AS号:4-byte-as 转换为十进制及AS号兼容性
查看>>
Windows2008server R2 组策略批量更改本地管理员密码
查看>>
ubutnu安装geany
查看>>
webservice 之 Java CXF实战效果 RS WS(一)
查看>>
我的友情链接
查看>>
Repository 与 DAO
查看>>
Zabbix监控Windows主机
查看>>
IBM x3850 RAID5数据恢复方案及过程
查看>>
移动计算领域五大机遇:交通运输优势待挖掘
查看>>
如何把win7 旗舰版升级到sp1最新版本
查看>>
android 调用系统界面
查看>>
Software Enginering-------using git
查看>>
浅谈IP地址-1
查看>>
我的友情链接
查看>>
C#中的线程池使用(一)
查看>>