最近看了反向代理和正向代理的东西,想到自己的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错误。

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

  1. Centos 7 上使用nginx为Node.js配置反向代理时错误:(13: Permission denied) while connecting to upstream

    错误来源:Centos 7 上使用nginx为Node.js配置反向代理时产生(13: Permission denied) while connecting to upstream的错误 nginx ...

  2. 使用node.js实现反向代理

    一. 反向代理的应用场景 1. 静态资源与动态资源分离 e.g. 图片服务器 2. AJAX跨域访问 3. 搭建统一服务网关接口 二. 使用node.js实现反向代理 1. 安装http-proxy模 ...

  3. 基于Debian系统配置Nginx环境的Node.js应用教程

    Node.js,是当前比较流行的能够动态的快速响应内容的JavaScript框架,在有些环境下比我们使用的PHP应用都能够提高效率.目 前,Node.js可以与我们常用的Nginx.Apache等服务 ...

  4. 怎样在Ubuntu上安装最新版本号的Node.js

    怎样在Ubuntu上安装最新版本号的Node.js 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs Node.js是一个软件平台,通经常使用于构建大规模的 ...

  5. Nginx_地址重写(rewrite)_日志管理(log_format)_压缩输出_Nginx设定限速_Nginx设置反向代理及反向代理缓存

    Nginx地址重写 Nginx rewrite rewrite语法规则1).变量名可以使用 "=" 或 "!=" 运算符~ 区分大小写~* 不区分大小写^~ 禁 ...

  6. Tomcat安装部署和安全加固优化以及反向代理应用

    1.Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache.Sun和其他一些公司及个人共同 ...

  7. SVN 通过IIS设置反向代理访问

    原因 一个字,穷,没办法,只有一台机器 要当测试服务器还要做源码管理. 解决办法 通过IIS配置反向代理访问SVN,给SVN访问的HTTPS绑定上域名,就可以正常访问了. 1.修改SVN配置 把SVN ...

  8. Vue-CLI 3.x 设置反向代理

    最近在项目中使用了Vue CLI 3.0版本,项目中需要设置反向代理解决跨域问题,下面记录一下设置过程. 新建配置文件 (vue-cli3.x 官网的配置文档 https://cli.vuejs.or ...

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

    问题现象: nginx配置反向代理后,网页可以正常访问,但是页面上的js css文件无法加载,页面样式乱了. (1)nginx配置如下: (2)域名访问:js css文件无法加载: (3)IP访问:j ...

随机推荐

  1. Spring缓存配置遇到的坑

    基本配置 <cache:annotation-driven cache-manager="cacheManager"/> <bean id="cache ...

  2. 前端之JavaScript笔记3

    一 创建添加节点 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  3. 2018.07.03 POJ 2318 TOYS(二分+简单计算几何)

    TOYS Time Limit: 2000MS Memory Limit: 65536K Description Calculate the number of toys that land in e ...

  4. Fiddler实战深入研究(二)[转载]

    Fiddler实战深入研究(二) 阅读目录 Fiddler不能捕获chrome的session的设置 理解数据包统计 请求重定向(AutoResponder) Composer选项卡 Filters选 ...

  5. UVa 12230 && HDU 3232 Crossing Rivers (数学期望水题)

    题意:你要从A到B去上班,然而这中间有n条河,距离为d.给定这n条河离A的距离p,长度L,和船的移动速度v,求从A到B的时间的数学期望. 并且假设出门前每条船的位置是随机的,如果不是在端点,方向也是不 ...

  6. 编写属于自己的linux命令

    开篇: 问题和解决思路 在使用一些基础IDE时,工具经常会在我们建立特定文件时给我们一个已经有了一些特定代码的模板文件,但是在linux开发时,没有这样的IDE,怎么办?虽然代码量不是很多,但是能一次 ...

  7. (回文串 )Best Reward -- hdu -- 3613

    http://acm.hdu.edu.cn/showproblem.php?pid=3613 Best Reward Time Limit: 2000/1000 MS (Java/Others)    ...

  8. Spark RDD详解

    1.RDD是什么 RDD(Resilient Distributed Dataset):是Spark的核心数据结构,指的是一个只读的.可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多 ...

  9. ploymer

      developer guide 接下来看声明属性 声明属性 声明属性时,可设定的参数 type:属性反序列化 value:[function(){}],配置属性默认值 readonly refle ...

  10. hdu 3664 Permutation Counting(水DP)

    Permutation Counting Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...