• centos7.2,看似复杂,实则简单,从零开始安装node部署kos链接mysql,外接nginx。


    1、首先先要确保有一个完整的服务器,有需要请去各种某云购买

    2、确保你的服务器已经安装yum以及curl(通常都会有)

    3、首先下载最新版的node(目前最新稳定版是12开头,所以填12,如果不是填其他)

    curl -sL https://deb.nodesource.com/setup_12.x | sudo bash
    

    4、接着就是用yum安装

    yum -y install nodejs
    

    5、安装完毕就可以了查看了

    npm -v    
    node -v
    

    注意:期间我遇到了个坑,这里简易的说一下。

    设置了npm全局配置与缓存,设置完发现全局安装不了插件。安装完也是无效。

    npm config set prefix "***"    // 慎用
    npm config set cache "***"  // 慎用
    

    这种情况之后,上网查了是要删掉.npmrc的文件就可以了。但是呢,这个文件,并不好找。其实只要一个命令就解决了。(这命令下就能看到配置的位置,删了就复原了)

    npm config list
    

    6、安装完node服务器,就简易的用koa部署一下,然后node执行一下就可以了。(例如:node app.js,也可安装forever启动)

    const Koa = require('koa');
    const mysql = require('mysql');  // 数据库
    const route = require('koa-route');  // 路由
    const app = new Koa();
    const koaBody = require('koa-body');  // koa获取post请求的中间件
    
    // 启动中间件
    app.use(koaBody());
    
    // mysql连接
    const connection = mysql.createConnection({
        host: '***',
        port: '***',
        user: '***',
        password: '***',
        database: '***'
    });
    connection.connect()
    
    // 路由组件
    const about = ctx => {
        ctx.response.type = 'html';
        ctx.response.body = '<a href="/server/">Index Page</a>';
    };
    const main = ctx => {
        console.log(ctx.res)
        ctx.response.body = 'Hello World';
    };
    
    const www = async ctx => {
        // console.log(ctx.request.query) 传的后缀
        // console.log(ctx.request.body) 传的body
        return new Promise(resolve => {
            const sql = "SELECT * FROM `index`";
    
            connection.query(sql, (err, res) => {
                if (err) throw err;
                ctx.body = res
                resolve();
            });
        })
    };
    
    app.use(route.get('/server/', main));
    app.use(route.get('/*', about));
    app.use(route.post('/*', www));
    
    app.listen(3000, () => {
        console.log('listen')
    });
    

    7、服务器内部有了这个本地的127.0.0.1:3000的服务,但是内部还要用nginx包裹一下。(能加上https以及其他静态页面、静态资源)

    这样加上,https里就多了一个node服务器的入口

    server {
            listen 443;
    		location ~ /server/ {
    			proxy_pass  http://127.0.0.1:3000;
        	}
    }
    

      

  • 相关阅读:
    vue与后台交互之post用法
    django框架两个使用模板实例
    917,仅仅反转字母(简单)
    836,矩形重叠 (简单)
    860,柠檬水找零(简单)
    使用类创建对象后找不到的问题
    8_19 数据库
    8_16 MySQL数据库一
    Mysql的安装与配置
    文件操作中,使用递归退出不了。
  • 原文地址:https://www.cnblogs.com/huangqiming/p/13183004.html
Copyright © 2020-2023  润新知