nginx代理

推荐使用nginx代码静态文件,比如文档内有大量html, css, js文件,可先通过nginx代理访问,当文件不存在时(mdjs内置资源就不在文档内存在)、.md文件结束时代码到node层面,达到优化的功能,更可以解决hostname问题

node监听8088端口

js// index.js
'use strict';

var Mdjs = require('mdjs');

new Mdjs({
    port: 8088
}).run();

nginx监听80并绑定hostname

confserver {
    listen       80;
    server_name www.demo.com;

    # node的端口
    set $node_port 8088;

    # 根目录
    root /home/demo/;

    # 保护index.js源
    location = /index.js {
        return 403;
    }

    # 如果文件不存在代理到node.js上
    if ( !-f $request_filename ){
        rewrite (.*) /node.js;
    }

    # 代理所有的md代理到node.js上
    location ~ \.md$ {
        rewrite (.*) /node.js;
    }

    # 监听node.js并转发
    location = /node.js {
        #proxy_http_version 1.1;
        proxy_set_header Connection "";
        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_pass http://127.0.0.1:$node_port$request_uri;
        proxy_redirect off;
    }
}