安装Nginx并为node.js设置反向代理

最近看了反向代理和正向代理的东西,想到自己的node.js服务器是运行在3333端口的,也没有为他设置反向代理,node.js项目的一些静态文件是完全可以部署在Nginx上,以减少对node.js的请求。

着手开始做:

1、Nginx依赖gcc,pcre,zlib,openssl之类的库,通过rpm -qa | grep gcc查询,没有的话都安装上。

2、Nginx安装

 准备工作

 a) 创建用户nginx使用的www用户。
    # groupadd  www  #添加www组    
    # useradd -g  www www -s /bin/false  #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统
    创建安装目录与日志目录
    b) 安装目录
    # mkdir /usr/local/nginx
    c) 日志目录
    # mkdir /data0/logs/nginx
    # chown www:www /data0/logs/nginx -R

 安装Nginx

 下载包:wget http://nginx.org/download/nginx-1.4.2.tar.gz

 解压后进入目录

 配置编译然后安装:

 # ./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module

 # make

 # make install

 查看lib文件是否都链接好了

 # ldd $(which /usr/local/nginx/sbin/nginx)

 如果有not found,像libpcre.so.1 => not found,则需要手动链接一下,当时我的服务器就出现了这个问题

 # ln -s /usr/local/lib/libpcre.so.1 /lib64/

 检查是否安装成功

 # cd /usr/local/nginx/sbin
 # ./nginx -t

 显示下面内容表示成功了:

 nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
    nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

打开浏览器输入服务器ip发现已经进入欢迎界面,表示成功。

3、配置node.js反向代理

 编辑配置文件,增加以下配置内容,修改配置文件后要重启Nginx:nginx -s reload

upstream nodejs__upstream {
    server 127.0.0.1:3000;
    keepalive 64;
}
server {
    listen       80;
    server_name  jianqunzhang.com www.jianqunzhang.com;

    #charset koi8-r;

    #access_log  logs/host.access.log  main;

    location / {
            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://nodejs__upstream;
}

打开浏览器访问,发现直接访问服务器80端口,已经能访问原3333端口的内容了。查看响应头发现服务器已经是nginx了

3333端口响应头

  1. Connection:

    keep-alive

  2. Content-Length:

    1474

  3. Content-Type:

    text/html; charset=utf-8

  4. Date:

    Sat, 22 Jul 2017 09:07:24 GMT

  5. ETag:

    W/"5**********************Mrw"

  6. X-Powered-By:

    Express

80端口响应头

  1. Connection:

    keep-alive

  2. Content-Length:

    1474

  3. Content-Type:

    text/html; charset=utf-8

  4. Date:

    Sat, 22 Jul 2017 09:06:07 GMT

  5. ETag:

    W/"5c*********************UMrw"

  6. Server:

    nginx/1.9.10

  7. X-Powered-By:

    Express

nginx默认配置是

location / {
  root html;
  index index.html index.htm;
}

表示对该服务器80端口的请求直接对应 html目录下的内容

如果想过滤静态资源直接由Nginx服务,可以直接添加下面的配置:

location /file {
  root html;
  index index.html index.htm;
}

注意:要在html目录下创建对应的file文件夹,这样才能找到对应的资源,否则报404错误。

时间: 2024-10-06 17:05:01

安装Nginx并为node.js设置反向代理的相关文章

Win7,Win8安装ArcGIS软件或Node.js等安装包出现2503错误的解决方法

最近win8系统在安装Node.js和ArcGIS软件的时候都出现了2503错误,后来才发现,都是Win8的权限系统在作怪.解决方法看似也挺原始,但很奏效: 1)进入C:\windows\installer路径,找到安装程序的msi.如果你的安装包没有把msi文件解压到这个路径下,请将对应的msi和CAB文件复制到这个路径下,比如ArcGIS的安装程序. 2)以管理员身份打开cmd程序 3)在命令行中输入"C:\windows\installer\xxx.msi"并回车.由下面的截图能

如何在Ubuntu上安装最新版本的Node.js

如何在Ubuntu上安装最新版本的Node.js 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Node.js是一个软件平台,通常用于构建大规模的服务器端应用.Node.js使用JavaScript作为其脚本语言,由于其非阻塞I/O设计以及单线程事件循环机制,使得它可以交付超高的性能. Node.js包含了Google V8 JavaScript引擎,libuv库和核心库几乎都是使用JavaScript编写的.libuv库提供了异步事件I/O的抽象

nginx设置反向代理后,页面上的js css文件无法加载

问题现象: nginx配置反向代理后,网页可以正常访问,但是页面上的js css文件无法加载,页面样式乱了. (1)nginx配置如下: (2)域名访问:js css文件无法加载: (3)IP访问:js css文件可以正常加载: 解决方法: nginx配置文件中,增加如下配置: location ~ .*\.(js|css)$ { proxy_pass http://127.0.0.1:8866; } 原因分析: 反向代理的路径下找不到文件,需要单独指定js css文件的访问路径.

在nginx里面部署node.js本地服务器

我一个前端,为啥要搞服务器呢?因为公司就招了一个后端啊,后端忙不过来,就叫我这个萌新前端去搞后端的东西,我太难了. 直接进入正题吧,因为公司需求,要我在nginx服务器上面搭一个node.js服务器,用来给安卓和ios做版本更新管理的,然后我就花了一天半的时间.在网上找了不少教程文档,弄了出来. 首先,去node.js官网下一个node.js. 官方下载地址:https://nodejs.org/en/download/ 官方下载地址:https://nodejs.org/en/download

Nginx 如何设置反向代理

网络结构如上图.可能你只有一个公网的Ip地址. 但是您的内网有个网站需要映射至外网.而又不想添加其它的非80端口.则你可以直接使用nginx来做反向代理即可.首先,配置nginx.conf文件. http { include mime.types; default_type application/octet-stream; client_max_body_size 8m; #############################################################

mac安装 git npm Yeoman node.js等

mac 打开“终端” 1. 下载 git 2.下载node.js 自带npm但版本较低,升级版本: sudo npm install -g npm 3.安装yeman sudo npm install --global yo sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等.

安装使用Mongoose配合Node.js操作MongoDB的基础教程【转载】

这篇文章主要介绍了安装使用Mongoose来让Node.js操作MongoDB的基础教程,前端js+后端node+js操作MongoDB正是所谓最流行的一种JavaScript全栈开发方案,需要的朋友可以参考下 安装mongoose 使用express准备一个TestMongoDB项目,命令序列如下: express TestMongoDB cd TestMongoDB npm install 执行完上面的命令后,使用下面的命令安装mongoose: npm install mongoose -

ubuntu安装最新版本的node.js

下面的方法适用于最新版本的Ubuntu.Ubuntu 12.04 LTS.Ubuntu 12.10.Ubuntu 13.04等版本.它可以帮助开发者在Ubuntu上安装Node.js,无需从头编译安装.你可以在云主机上执行以下的命令: # apt-get update # apt-get install -y python-software-properties software-properties-common # add-apt-repository ppa:chris-lea/node.

Nginx自学手册(四)反向代理和缓存

(一)nginx反向代理 什么是代理服务器 :代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机. 为什么要使用代理服务器 1)提高访问速度 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度. 2)防火墙作用 由于所有的客户机请求都必须通