求助:我充错了5000元中石化加油卡如何充值

问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
项目结构:
我只是把node文件夹打包部署了。原因我也清楚是对应的依赖node_modules没有部署上去。
问题:是否有类似于vue或者reactJs那样,通过打包脚本编译之后,只需要部署build之后的代码。
备注:前端开发,开始学node。 nginx上node已配置好了,直接用node的http模块也写了一个demo部署,可以正常运行。
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
反向代理一下就可以了
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
在nginx.conf添加一段location里面配置下proxy就好了。
比如我的node项目监听端口是9189,就可以如下配置:
location /www {
root /export/www/;
proxy_pass http://127.0.0.1:9189;
分享到微博?
Hi,欢迎来到 SegmentFault 技术社区!⊙▽⊙ 在这里,你可以提出编程相关的疑惑,关注感兴趣的问题,对认可的回答投赞同票;大家会帮你解决编程的问题,和你探讨技术更新,为你的回答投上赞同票。
明天提醒我
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
扫扫下载 Appnodejs+nginx反向代理及la(n)mp安装 - ThinkPHP框架
Nodejs+nginx反向代理配置
一、安装nodjs及相关模块
约定:生产环境
Nodejs 0.10.22+
Express3.4.4+
Mongodb2.4.10+
资料共享者:
1 安装gcc-c++,openssl,nodejs
yum install gcc-c++ openssl-devel
cd /usr/local/src
wget http://nodejs.org/dist/v0.10.22/node-v0.10.22.tar.gz
或者下载最新版
wget http://nodejs.org/dist/node-latest.tar.gz
tar zxvf node-latest.tar.gz
cd node-v0.10.22
./configure
make install
注意,./configure需要python2.6+
相关模块安装见附录:
二、安装ngix和nginx反向代理
1 安装nginx
安装第三方yum源
yum install wget #安装下载工具
wget /installers/atomic #下载
sh ./atomic #安装
yum check-update #更新yum源
yum install nginx #安装nginx 根据提示输入y进行安装
chkconfig nginx on #设置nginx开机启动
service nginx start #启动nginx
2 配置nginx
配置nginx支持nodejs反向代理
cp /etc/nginx/nginx.conf /etc/nginx/nginx.confbak#备份原有配置文件
vi /etc/nginx/nginx.conf #编辑
#修改nginx运行账号为:nginx组的nginx用户
:wq #保存退出
cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/default.confbak #备份原有配置文件
为什么是conf.d/default.conf
导入了conf.d/下面的所有的*.conf
注意:如果您已经安装了lnmp环境,请额外的配置一个xxx.conf的文件(下面的default.conf一样的内容)
Default.conf配置如下:
# The default server
#监听的端口,如果是在PHP的环境下,还要监听80端口,建议建立多个vhost.conf并配置
#我这里没有安装lanmp环境,就直接监听80端口,让127.0.0.1:3000直接跳转到localhost:80端口,如果你在lanmp下,请指定其他的端口
#默认主机名,可以是域名比如:
#charset utf-8;
#access_log
logs/host.access.
//配置nodejs,nginx反向代理
#配置节点将告诉Nginx接收任意的请求
location / {
//用proxy_pass 指定了Node.js的后端服务器
proxy_pass
http://127.0.0.1:3000;
proxy_http_version 1.1;
#http版本1.1
proxy_set_header Upgrade $http_
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $
proxy_cache_bypass $http_
/usr/share/nginx/
#网站的根目录
index.html index.
#ModSecurityE
#ModSecurityConfig /etc/nginx/modsecurity.
#配置静态资源目录
#location /public {
root /usr/local/var/www
#error_page
#错误页面的配置
#location = /404.html {
/usr/share/nginx/
# redirect server error pages to the static page /50x.html
#error_page
500 502 503 504
#location = /50x.html {
/usr/share/nginx/
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#location ~ \.php$ {
proxy_pass
http://127.0.0.1;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#location ~ \.php$ {
fastcgi_pass
127.0.0.1:9000;
fastcgi_index
fastcgi_param
script_FILENAME
/scripts$fastcgi_script_
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#location ~ /\.ht {
将网站域名设置好,然后端口设置为80,最后proxy_pass设置为http://127.0.0.1:3000,将所有从localost:80的请求传递到nodejs程序去。
访问域名,就可以了
这样我们就让Nginx在http://localhost:80上监听了。location / 配置节点将告诉Nginx接收任意的请 求,location 配置节点中我们用proxy_pass 指定了Node.js的后端服务器为http://localhost:3000 。
现 在我们要用另外一个配置节点location /public 来告诉Nginx处理静态文件请求,其中内部的location 节点设置了根目录为 /usr/local/var/www. 当然你也可以换成其他的目录。如此一来,当有类似这样的请求http://localhost:80 /public/somepath/file.html ,Nginx都会从/usr/local/var/www/public/somepath /file.html读取静态文件。
修改完配置文件后,你需要用下面的代码来重启Nginx
测试是否反向代理成功?创建一个app.js
var http=require('http');
//create httpServer
console.log('this server has started on localhost:80');
var server=http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.write('&meta charset=&utf-8&/&');
res.end('hello world,the nginx and nodejs pross success!');
server.listen(3000);
运行node app.js
我们大胆的设想下我们用nginx反向代理处理静态html,css,js的东西,让nodejs出去服务器的东西。下面我们配置一个基于域名的,监听到80端口上的配置下.conf:
#nodejs监听的端口是8080
#IP:127.0.0.1
#记得在/etc/hosts下添加127.0.0.
#监听的端口,如果是在PHP的环境下,还要监听80端口,建议建立多个vhost.conf并配置
#我这里没有安装lanmp环境,就直接监听80端口,让127.0.0.1:8080直接跳转到localhost:80端口
#默认主机名,可以是域名比如:
#charset utf-8;
#access_log
logs/host.access.
#配置nodejs,nginx反向代理
#配置节点将告诉Nginx接收任意的请求
location / {
#用proxy_pass 指定了Node.js的后端服务器
proxy_pass
http://127.0.0.1:8080;
#直接跳转到:80上去
proxy_http_version 1.1;
#http版本1.1
proxy_set_header Upgrade $http_
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $
proxy_cache_bypass $http_
#网站的根目录
index.html index.
#ModSecurityE
#ModSecurityConfig /etc/nginx/modsecurity.
#配置静态资源目录
#location /public {
root /usr/local/var/www
#error_page
#错误页面的配置
#location = /404.html {
/usr/share/nginx/
# redirect server error pages to the static page /50x.html
#error_page
500 502 503 504
#location = /50x.html {
/usr/share/nginx/
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#location ~ \.php$ {
proxy_pass
http://127.0.0.1;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#location ~ \.php$ {
fastcgi_pass
127.0.0.1:9000;
fastcgi_index
fastcgi_param
script_FILENAME
/scripts$fastcgi_script_
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#location ~ /\.ht {
注意:在/etc/hosts下添加127.0.0.
实现了域名的解析成功
在/home//下建立一个app.js
var http=require('http');
//create httpServer
console.log('this server has started :80');
var server=http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/html'});
res.write('&meta charset=&utf-8&/&');
res.end(&#!');
server.listen(8080);
运行node app.js
访问浏览器
虽然node.js本身就可以做服务器是没错啦,比如app.js里面设置为8080端口就可以了。通过nginx反向代理实现跳转到指定的:80端口上。
如果一个机子跑多个网站,其他网站又是用别的服务器,在80端口已经被占用的情况下,是可以用代理到别的端口来处理。
比较lamp,lnmp环境和nodejs+nginx反向代理区别:
传统的lamp环境需要apache模块的支持,处理的能力相对于nginx来说是比较笨重,对于高并发量,apache比较吃力。后来我们使用lnmp来架设php的网站,我们发现nginx轻量,高性能的HTTP和反向代理处理速度惊人。
分析LNMP或LAMP的劣势
Nginx是一个小巧而高效的Linux下的Web服务器软件,与Apache相比,消耗资源更少,支持的并发连接,更高的效率,反向代理功能效率高、静态文件处理快等,但动态页面处理能力不如Apache等老牌软件成熟。单独使用Nginx处理大量动态页面时容易产生频繁的502错误。
Apache是一款老牌的Web服务器软件,在高并发时对队列的处理比FastCGI更成熟,Apache的mod_php效率比php-cgi更高且更稳定、对伪静态支持好,不需要转换、多用户多站点权限等方面有着更好的效果,单独使用Apache处理静态页面时,对内存的占用远远超过Nginx。
Nodejs+nginx
让nginx做反向代理,处理请求时候,我们用nodejs监听到某个IP,PORT上,用nginx反向代理跳转到80端口上,比如localhost:80上后,nginx帮助处理静态的html,css,js资源,让nodejs处理高并发的处理,nodejs天生的异步机制,单线程使得运行速度特别快。这两者的结合消耗资源少,高并发,静态文件处理特别快。
网站产品做多了,你会发现需要创建SSL来保护敏感的信息。可能你第一反应会想到从证书颁发机构申请网站证书,但是你也可以创建签名证书。唯一的问题就是浏览器端会提示“该证书不可信”的警告信息,但是作为本地测试,这也就足够了。这里有一篇教程讲解了如何自己创建签名SSL证书,可以看看。
当你有了自己的证书,你就可以在Nginx上安装SSL了,修改后的配置文件,代码如下:
ssl_certificate
/etc/nginx/ssl/server.crt
ssl_certificate_key /etc/nginx/ssl/server.key
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $
proxy_cache_bypass $http_
location /public {
root /usr/local/var/
完 成了!这样当你访问https://localhost:8080 的时候SSL就可以开始工作了。这里我们默认将证书保存在/etc/nginx /ssl/server.crt 目录下。将私钥保存在/etc/nginx/ssl/server.key 目录下,你也可以改变保存的目录。
如何用Nginx为Node.js做反向代理,并且配置SSL。由Nginx在前端处理静态文件请求,这可以为Node.js后端服务器大大减轻压力。
参考资料:/topic/4585.html
http://blog.csdn.net/soasme/article/details/6713788
http://www.jb51.net/article/37986.htm
Nojs相关模块安装:
1、安装MySQL
yum install mysql mysql-server #询问是否要安装,输入Y即可自动安装,直到安装完成
/etc/init.d/mysqld start #启动MySQL
chkconfig mysqld on #设为开机启动
cp /usr/share/mysql/f /f #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
2、为root账户设置密码
mysql_secure_installation
回车,根据提示输入Y
输入2次密码,回车
根据提示一路输入Y
最后出现:Thanks for using MySQL!
MySql密码设置完成,重新启动 MySQL:
/etc/init.d/mysqld restart #重启
/etc/init.d/mysqld stop #停止
/etc/init.d/mysqld start #启动
3 安装express 已经把命令行工具分离出来了...
如果你要 Express 3
sudo npm install -g express@3.4.4
(安装的时候可能遇到网速的问题,请多试几次)
express 4 的话
sudo npm install -g express-generator
切换到nodetest这是我自己创建的一个目录,创建一个应用目录blog,然后创建应用blog
进入到blog中
运行node app.js出错,这是不正确的,因为缺少启动文件,所以运行npm install
出现上述画面,表示安装项目需要的模块成功创建。
接着运行node start
这里注意3.x版本的express是node app运行,而4.x发生了变化,启动文件在bin/www
最后在浏览器中运行localhost:3000
整个blog的项目文件
对于如何创建应用和手册express4.x的使用,我会陆续给大家贡献的。
安装mysql模块
/blog/1636302
http://blog.csdn.net/jinbiao520/article/details/9902177
测试mysql模块
node进入node终端然后运行console.log(require(‘mysql’));
在linux下安装各种包
/greenteaone/archive//3065114.html
相关的模块安装如下:
安装geddy:npm -g install geddy
安装调试工具npm -g install supervisor
/blog/1152406
安装mongodb
下载安装包:
2wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-2.4.10.tgz
tar -zxvf mongodb-linux-i686-2.4.10.tgz
3。指定安装目录:
mv mongodb-linux-i686-2.4.10 /usr/local/mongodb
4。新建mongodb数据文件存放目录:
mkdir -p /data/mongodb/db
5。新建log文件存放目录:
mkdir -p /data/mongodb/logs
6 cd /usr/local/mongodb/bin
第一种方式:
7。新建配置文件,mongodb支持把参数写进配置文件,然后以配置文件的配置来启动,我们此处也使用此方式。执行:
vi mongodb.conf
加入内容如下:
dbpath = /data/mongodb/db #数据文件存放目录
logpath = /data/mongodb/logs/mongodb.log #日志文件存放目录
port = 27017
fork = true
#以守护程序的方式启用,即在后台运行
nohttpinterface = true
完整的mongodb.conf
dbpath = /data/mongodb/db
logpath = /data/mongodb/logs/mongodb.log
port = 27017
fork = true
nohttpinterface = true
Vi /data/mongodb/logs/mongodb.log
保存退出:wq
重新绑定mongodb的配置文件地址和访问IP:
/usr/local/mongodb/bin/mongod --rest --bind_ip localhost -f /usr/local/mongodb/bin/mongodb.conf
8。启动Mongo程序,使用配置文件mongodb.conf定义的参数启动
./mongod --config mongodb.conf --rest
第二种方式:
**********************************开机启动和软连接*******
创建软连接
将mongo添加到/usr/local/bin中cd /usr/local/bin然后创建软连接
另外一种方式加入到开机启动
在/etc/rc.d/rc.local中添加
然后vi /etc/mongodb.conf添加
mongodb安装参照
http://gevin.me/289.html
开机自动启动
vi /etc/rc.d/rc.local
在文件中加入:
/usr/local/mongodb/bin/mongod --config /usr/local/mongodb/bin/mongodb.conf
注意:默认mongodb的数据目录对应的是/data/db下面。日志目录对于到/data/logs/mongodb.log,如果是目录结构有调整需要重新指定配置的路径
到这里mongodb按照完毕
第三种方式mongo的目录加入到环境变量中:
vim /etc/profile在最后添加如下内容:
export PATH=$PATH:/usr/local/mongodb/bin
然后source /etc/profile
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。中国领先的IT技术网站
51CTO旗下网站
提升 Node.js 应用性能的 5 个技巧
本文介绍了一些最重要的可以在Node.js应用程序布置的性能改进。它着重于添加到应用程序的NGINX以及Node.js――通过使用 NGINX作为反向代理服务器,缓存静态文件,负载均衡,代理WebSocket连接,并终止SSL / TLS和HTTP / 2协议。
作者:小峰来源:码农网| 10:39
&如果nginx没有在你的节点服务器之前,那么你可能就错了。&Bryan Hughes在Twitter上说
Node.js是全球领先的用JavaScript&&世界上最流行的编程语言创建服务器应用程序的工具。提供web服务器和应用服务器的功能,Node.js被认为是各种以微服务为基础的开发和交付的关键工具。 (下载。)
Node.js可以替代或增强Java和.NET用于后端应用程序的开发。
Node.js是单线程的,并且使用非阻塞I /
O,允许它扩展并支持数以万计的并行操作。它和NGINX共享这些架构特性,并解决C10K问题&&支持超过10000个并发连接&&NGINX也可以解 决并行操作问题。 Node.js以它的高性能和高开发效率享誉全球。
那么,哪里会出问题呢?
Node.js有一些薄弱环节和漏洞,这些薄弱环节和漏洞会使得基于Node的系统容易出现性能不佳,甚至崩溃的现象。尤其是当基于Node.js的web应用程序碰到访问量高速增长的时候,问题就会出现得更加频繁。
此外,Node.js是用于创建和运行产生核心可变网页内容逻辑的强大工具。但它在服务静态内容&&例如图像和JavaScript文件&&以及平衡多个服务器上的负载这些方面还没那么强大。
为了最有效地使用Node.js,你需要缓存静态内容,代理和平衡多个应用程序服务器负载,并管理客户端、Node.js和助手&&如运行 Socket.IO的服务器&&之间的端口竞争。 NGINX可用于解决这些问题,从而使得它成为了一个Node.js性能优化的伟大工具。
使用这些技巧可以提高Node.js应用性能:
实现反向代理服务器
缓存静态文件
多服务器的
代理WebSocket连接
实现SSL / TLS和HTTP / 2
注:Node.js应用性能的快速解决办法是修改你的Node.js配置,以充分利用现代多核服务器的优势。你也可以读一读另一篇关于如何让Node.js生成单独子进程的。
1.实现反向代理服务器
我们在NGINX.Inc的时候,如果看到有应用程序服务器直接接触传入的访问流量,用于高性能网站核心的时候,总会不自觉地有点担忧。这包括许多基于WordPress的网站,也包括Node.js网站。
Node.js专为可扩展性而设计,它比大多数应用服务器更易于扩展,它的web服务器端可以处理好大量的访问流量。但是web服务并不是Node.js存在的理由&&Node.js并不是因为这个目的而被构建的。
如果你有一个大流量网站,提高应用程序性能的第一步是在你的Node.js服务器前放一个反向代理服务器。这样可以保护Node.js服务器直接接触外部访问流量,还能让你灵活使用多个应用程序服务器,平衡负载服务器,缓存内容。
在现有的服务器设置前放NGINX作为一个反向代理服务器,是NGINX的核心用例,全世界各地已经有数以千万计的网站实施了。
使用NGINX作为Node.js的反向代理服务器还有一些特定的优势,其中包括:
简化操作权限和端口分配
更有效地服务于静态图像(见第二个小窍门)
成功管理Node.js崩溃的情况
减轻DoS攻击
注意:这些教程介绍了如何使用NGINX作为在Ubuntu 14.04或CentOS环境中的反向代理服务器,而且可以总览NGINX置于node.js之前的整体情况。
2.缓存静态文件
随着基于Node.js的网站的使用量的增长,服务器的压力开始越来越大。这时候你要做这两件事情:
充分利用Node.js服务器。
使得添加应用程序服务器和负载均衡变得容易。
这其实是很容易做到的。一开始就实施NGINX作为反向代理服务器,就像第一点技巧中所描述的那样。这样就能轻易实现高速缓存、负载平衡(如果有多个Node.js服务器的话)等。
针对Modulus,一个应用程序容器平台,有一篇非常有用的关于利用NGINX增压Node.js应用程序性能的文章。由于Node.js都是靠 自己完成所有的工作的,所以我们的网站平均每秒只能服务将近900个请求。使用NGINX作为反向代理服务器,提供静态内容,一个站点每秒可服务超过 1600个请求&&性能提升了近2倍。
性能的提升能让你有时间采取额外措施以适应进访问量的增长,如审查(或提高)网站设计,优化程序代码,部署更多的应用程序服务器。
以下配置代码适用运行于Modulus的网站:
server&{&&&listen&80;&&&server_name&static-test-47242.onmodulus.&&&root&/mnt/&&&index&index.html&index.&&&location&/static/&{&&&&try_files&$uri&$uri/&=404;&&&}&&&location&/api/&{&&&&proxy_pass&http:&&&}&}&
例如,在Nginx位置块中,你可能不想要缓存某些内容。例如,你通常不会想要缓存博客平台的管理界面的。以下就是禁用[或免除]缓存Ghost管理界面的配置代码:
location&~&^/(?:ghost|signout)&{&&&&&&&&&proxy_set_header&X-Real-IP&$remote_&&&&&&&&&proxy_set_header&Host&$http_&&&&&&&&&proxy_pass&http:&&&&&&&&&add_header&Cache-Control&&no-cache,&private,&no-store,&&&&&&&&&must-revalidate,&max-stale=0,&post-check=0,&pre-check=0&;&&&&&}&
缓存NGINX服务器上的静态文件可以显著减轻Node.js应用程序服务器的负载,让它能够达到更佳性能。
3.实现Node.js负载平衡
Node.js应用高性能的真正关键运行多个应用程序服务器和平衡负载。
Node.js负载平衡可能特别棘手,因为Node.js允许运行在web浏览器上的JavaScript代码和运行在Node.js应用服务器上 的JavaScript代码做高水平的交互,同时使用JSON对象作为数据交换的介质。这意味着,一个给定的客户会话会持续运行在特定的应用程序服务器 上,并且会话持久性用多个应用程序服务器天然地难以实现。
Internet和web的主要优点之一就是高度无国界,其中包括通过任意服务器访问请求文件来满足客户端请求。Node.js颠覆了无国界,并且在有状态的环境中&&同一服务器始终如一地响应来自任意特定客户端的请求&&效果最好。
通过NGINX Plus,而非开源NGINX软件,可以最好地满足这个需求。NGINX的两个版本颇为相似,但一个主要区别就是它们对负载平衡算法的支持不同。
NGINX支持无状态的负载均衡方法:
循环。新的请求会去往列表中的下一个服务器。
最少的连接。新的请求会去到活跃连接最少的服务器。
IP Hash。新的请求会去往哈希分配客户端IP地址的服务器。
只是这些方法中的一种,IP&Hash,可靠地发送指定客户端请求到同一服务器,有利于Node.js应用程序。然而,IP&Hash很容易导致某 台服务器收到的请求数量不成比例,在牺牲其他服务器的代价下,正如这一篇博客中描述的负载均衡技术那样。此方法支持的有状态是以牺牲潜在不理想的跨服务器 资源的请求分配为代价的。
不同于NGINX,NGINX Plus支持会话持久性。在使用会话持久性的时候,同一服务器还能可靠地接收来自指定客户端的所有请求。 Node.js的优势&&在客户端和服务器之间有状态的通信,以及NGINX&Plus的优势&&高级负载均衡能力,都达到最大化。
所以,你可以使用NGINX或NGINX Plus来支持多个Node.js服务器的负载均衡。只有NGINX才有可能让你最大化地实现负载均衡性能和友好的Node.js有状态性。内置于NGINX的应用健康检查以及监控功能也很有用。
NGINX Plus还支持会话维持,因此允许应用程序服务器在它采取停止服务的请求之后,还能优雅地完成当前会话。
4.代理WebSocket连接
HTTP,在所有版本里,是专为&pull&通信&&来自于服务器的客户端请求文件设计的。WebSocket是一个允许&push&和&push/pull&通信的工具,即服务器可以主动发送客户端没有请求的文件。
WebSocket协议可以更容易地支持客户端和服务器之间更坚固的相互作用,同时减少传输的数据量并最小化等待时间。当需要时,可以实现全双工传输连接,也就是说根据需要客户和服务器都可以发起并接收请求。
WebSocket协议具有强大的JavaScript接口,因此非常适合作为应用服务器的Node.js&&而且,对于事务量不多的web应用程 序,也可以作为web服务器。当事务量增加,那么在客户端和Node.js web服务器之间,多个应用服务器之间使用NGINX或NGINX
Plus插入NGINX就有必要了。
Node.js通常与Socket.IO联合使用,Socket.IO是一个WebSocket
API,它在Node.js应用程序中很受欢迎。这可能会导致port 80(对于HTTP)或port
443(对于HTTPS)变得相当拥挤,而解决方法就是代理Socket.IO服务器。你可以使用NGINX作为代理服务器中,就像前面说的那样,并且还 获得其他的功能,例如静态文件缓存,负载均衡等。
以下就是作为server.js node应用程序文件监听port 5000的代码。它担当了代理服务器(而不是web服务器)的角色,并路由请求到正确的端口:
var&io&=&require('socket.io').listen(5000);&io.sockets.on('connection',&function&(socket)&{&&&socket.on('set&nickname',&function&(name)&{&&&&&socket.set('nickname',&name,&function&()&{&&&&&&&socket.emit('ready');&&&&&});&&&});&&&socket.on('msg',&function&()&{&&&&&socket.get('nickname',&function&(err,&name)&{&&&&&&&console.log('Chat&message&by&',&name);&&&&&});&&&});&});&
var socket = io(); // 这是你的初始化代码。
有关完整的介绍,包括NGINX配置,请参阅。有关这一类更深入的web应用程序潜在架构和基础设施问题,请参阅。
5.实现SSL / TLS和HTTP / 2
越来越多的网站使用SSL / TLS来保护网站上所有用户的交互。你可以决定是否以及何时做出这个举动,但如果你选择了这么做,那么NGINX有两种方式来支持这个转变:
你可以在NGINX里终止SSL / TLS连接到客户端,如果你设置了NGINX作为反向代理的话。 Node.js服务器使用Nginx反向代理服务器来来回回地发送和接收未加密的请求和内容。
早期迹象表明,使用HTTP / 2&&新的HTTP协议的新版本&&可以在很大程度上或完全抵消使用SSL / TLS强加的性能损失。 NGINX支持HTTP / 2,你可以终止HTTP / 2和SSL,而在Node.js应用服务器中无需做任何改变。
在你采取这些实现步骤的时候,你还需要更新在Node.js配置文件中的URL,建立和完善在NGINX配置中的安全连接,必要时还可以使用 SPDY或HTTP / 2。添加HTTP / 2支持意味着浏览器版本使用新的协议支持HTTP /
2与应用程序进行通信:老版本的浏览器使用HTTP / 1.x。
下面的配置代码适用于使用SPDY的Ghost博客。它包括一些高级功能,如OCSP stapling。使用NGINX用于SSL终端,包括OCSP&stapling选项,看这里。对于同一主题的概述,看这里。
你需要做的轻微改动就是配置Node.js应用程序,从SPDY升级到HTTP / 2,时间可以是现在,也可以是2016年初SPDY支持消失的时候。
server&{&&&&server_name&;&&&&listen&443&ssl&&&&&spdy_headers_comp&6;&&&&spdy_keepalive_timeout&300;&&&&keepalive_timeout&300;&&&&ssl_certificate_key&/etc/nginx/ssl/domain.&&&&ssl_certificate&/etc/nginx/ssl/domain.&&&&ssl_session_cache&shared:SSL:10m;&&&&&ssl_session_timeout&24h;&&&&&&&&&&&&&&ssl_buffer_size&1400;&&&&&&&&&&&&&&&&&ssl_stapling&&&&&ssl_stapling_verify&&&&&ssl_trusted_certificate&/etc/nginx/ssl/trust.&&&&resolver&8.8.8.8&8.8.4.4&valid=300s;&&&&add_header&Strict-Transport-Security&'max-age=;&includeSubDomains';&&&&add_header&X-Cache&$upstream_cache_&&&&location&/&{&&&&&&&&&proxy_cache&STATIC;&&&&&&&&&proxy_cache_valid&200&30m;&&&&&&&&&proxy_cache_valid&404&1m;&&&&&&&&&proxy_pass&http:&&&&&&&&&proxy_ignore_headers&X-Accel-Expires&Expires&Cache-C&&&&&&&&&proxy_ignore_headers&Set-C&&&&&&&&&proxy_hide_header&Set-C&&&&&&&&&proxy_hide_header&X-powered-&&&&&&&&&proxy_set_header&X-Real-IP&$remote_&&&&&&&&&proxy_set_header&X-Forwarded-For&$proxy_add_x_forwarded_&&&&&&&&&proxy_set_header&X-Forwarded-Proto&&&&&&&&&&proxy_set_header&Host&$http_&&&&&&&&&expires&10m;&&&&&}&&&&&location&/content/images&{&&&&&&&&&alias&/path/to/ghost/content/&&&&&&&&&access_log&&&&&&&&&&expires&&&&&&}&&&&&location&/assets&{&&&&&&&&&alias&/path/to/ghost/themes/uno-master/&&&&&&&&&access_log&&&&&&&&&&expires&&&&&&}&&&&&location&/public&{&&&&&&&&&alias&/path/to/ghost/built/public;&&&&&&&&&access_log&&&&&&&&&&expires&&&&&&}&&&&&location&/ghost/scripts&{&&&&&&&&&alias&/path/to/ghost/core/built/&&&&&&&&&access_log&&&&&&&&&&expires&&&&&&}&&&&&location&~&^/(?:ghost|signout)&{&&&&&&&&&proxy_set_header&X-Real-IP&$remote_&&&&&&&&&proxy_set_header&Host&$http_&&&&&&&&&proxy_pass&http:&&&&&&&&&add_header&Cache-Control&&no-cache,&private,&no-store,&&&&&&&&&must-revalidate,&max-stale=0,&post-check=0,&pre-check=0&;&&&&&&&&&proxy_set_header&X-Forwarded-Proto&&&&&&}&}&
本文介绍了一些最重要的可以在Node.js应用程序布置的性能改进。它着重于添加到应用程序的NGINX以及Node.js&&通过使用 NGINX作为反向代理服务器,缓存静态文件,负载均衡,代理WebSocket连接,并终止SSL / TLS和HTTP / 2协议。
NGINX和Node.js的结合,被广泛认为是一种创建新的微服务型应用程序或增加灵活性和性能到现有的基于SOA的使用Java或 Microsoft .NET应用的方法。这篇文章可以帮助你优化Node.js应用程序,让Node.js和NGINX的伙伴关系为你所用。
译文链接:
英文原文:【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
头条头条原创头条头条
24H热文一周话题本月最赞
讲师:1人学习过
讲师:30人学习过
讲师:0人学习过
精选博文论坛热帖下载排行
去年11月至今年8月间,香港学生组织大学师生监察无良企业行动(以下简称SACOM)通过调查发现,戴尔公司位于东莞的三家代工厂严重违反了《劳...
订阅51CTO邮刊

我要回帖

更多关于 中石化加油卡充值95折 的文章

 

随机推荐