美文网首页
NodeJs+Express建设一个网站记录

NodeJs+Express建设一个网站记录

作者: saronic | 来源:发表于2016-11-13 18:19 被阅读94次

    用 Express generator 快速开始

    1. 安装 Express application generator
      $ npm install express-generator -g
    2. 用Express generator 创建 nodeweb 项目
      $ express --ejs nodeweb
      --ejs 表示用ejs做view engine,默认使用jade
    3. 安装dependencies
    cd nodeweb
    npm install
    
    1. 运行刚才创建的项目
    • On MacOS or Linux $ DEBUG=nodeweb:* npm start
    • On Windows, use this command:> set DEBUG=myapp:* & npm start
      这里的DEBUG是node的 environment variable,在js文件中可以通过process.env.DEBUG 得到前面设置的DEBUG的值

    Serving static files in Express

    app.use('/static', express.static(path.join(__dirname, 'public')))
    express.static 是 express 的一个内置 middleware。

    用 git 同步代码

    在服务器上, ce ~/web, 把网站代码clone下来

    用 PM2 运行

    安装 pm2

    npm install pm2@latest -g

    启动网站

    pm2 start apps.json

    pm2 生成启动脚本

    方式1

    $ pm2 startup centos

    [PM2] You have to run this command as root. Execute the following command:
    sudo su -c "env PATH=$PATH:/usr/bin pm2 startup centos -u red --hp /home/red"

    把sudo su...这句话拷贝,粘贴再次运行,在/etc/init.d/下生成一个 pm2-init.sh, 每次系统启动会自动运行。

    方式2

    方式1产生的脚本在init.d目录, centos 7 已经是用 systemd 了,所以下面的方式更好 $ pm2 startup systemd

    [PM2] You have to run this command as root. Execute the following command:
    sudo su -c "env PATH=$PATH:/usr/bin pm2 startup systemd -u red --hp /home/red"

    再次运行sudo su -c "env PATH=$PATH:/usr/bin pm2 startup systemd -u red --hp /home/red"
    这次会在 /etc/systemd/system下面产生pm2.service.

    安装 Nginx

    现在curl localhost:3000,网站能运行,但是3000 端口被 firewalld 封锁,从服务器外部还是不能打开网站。这时可以给 firewalld 增加一个 service 打开 3000 端口,也可以安装 nginx 做反向代理。

    安装 nginx

    sudo yum install nginx
    先删除 nginx 默认配置里的 server 部分,打开 /etc/nginx/nginx.conf, 删除 server {... ...}里面的内容,保存。
    添加modular 配置,在/etc/nginx/nginx.conf里的 http 部分找到 include /etc/nginx/conf.d/*.conf, 这句话好像默认就存在。
    添加my-web的配置,在 /etc/nginx/conf.d/下新建文件 my-web.conf, 添加内容

    
    server {
            listen 80;
            server_name yy.xx.com;
            location / {
                    proxy_pass http://127.0.0.1:3000/;
                    proxy_redirect     off;
                    proxy_set_header   Host             $host;
                    proxy_set_header   X-Real-IP        $remote_addr;
                    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
                   #client_max_body_size 100m;
            }
    }
    

    检查配置文件的语法是否有错: sudo nginx -t
    重启动 nginx, sudo systemctl restart nginx
    这时候,本地机器 http://yy.xx.com应该可以打开 my-web。

    相关文章

      网友评论

          本文标题:NodeJs+Express建设一个网站记录

          本文链接:https://www.haomeiwen.com/subject/okpcpttx.html