当前位置: 首页 > news >正文

从零开始在ubuntu上搭建node开发环境

创建用户

(1) adduser username
(2) 授权 gpasswd -a txwg sudo

  配置 sudo visudo

(找到root ALL=(ALL:ALL) ALL 在下面添加 username ALL=(ALL:ALL) ALL)

增强服务器安全级别

1.sudo vi /etc/ssh/sshd_config

  • 修改端口 port

2.修改防火墙权限

  • 更新ubuntu sudo apt-get update && apt-get upgrade
  • 更新完之后清空防火墙规则 iptable -F
  • 写防火墙规则文件
*filter
# allow all connenctions
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#allow out traffic
-A INPUT -j ACCEPT
#allow http https
-A INPUT -p tcp --dport 443 -j ACCEPT
-A INPUT -p tcp --dport 4200 -j ACCEPT
-A INPUT -p tcp --dport 8081 -j ACCEPT
# allow ssh port login
-A INPUT -p tcp -m state --state NEW --dport 6666 -j ACCEPT

#ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT


# log denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied:" --log-level 7

#reject all other

-A INPUT -j REJECT
-A INPUT -j REJECT

COMMIT
                           
  • 调用防火墙规则(sudo iptables-restore < /etc/iptables.ip.rules)
  • 查看防火墙是否激活(sudo ufw status)
  • 激活防火墙(sudo ufw enable)
  • 设置开机自动启动防火墙规则

(sudo vi /etc/network/if-up.d/iptables)

#!/bin/sh
iptable-restore /etc/iptable.up.rules

(sudo chmod +x /etc/network/if-up.d/iptables)

  1. 安装fail2ban(主要监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作。)

    • 安装 sudo apt-get install fail2ban
    • 配置信息 (sudo vi /etc/fail2ban/jail.conf)
    action = %(action_mw)s

### 配置node环境

  1. 安装包

    • 安装 (sudo sudo apt-get install vim openssl build-essential libssl-dev wget curl git)
  2. 安装nvm

    • wget -qO- https://raw.githubusercontent... | bash (注:安装之后如果不可以用,根据提示配置一下环境变量)
    • nvm node v9.0.0

nginx 反向代理

  1. 安装

    • sudo apt-get install nginx
  2. 配置

    • sudo vi /etc/nginx/conf.d/name-com-port
upstream txwg {
  server 127.0.0.1:8081;
}
server {
  listen 80;
  server_name x.x.x.x;
 
  location / {
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-Nginx-Proxy true;
    proxy_pass http://txwg;
    proxy_redirect off;
  }
}
  • 验证nginx 配置信息 (sudo nginx -t)
  • 重启nginx (sudo nginx -s reload)

相关文章:

  • 《CDN 之我见》原理篇——CDN的由来与调度
  • 汇编语言第三版答案(王爽)
  • RSACryptoServiceProvider加密解密签名验签和DESCryptoServiceProvider加解密
  • 算法之不定期更新(一)(2018-04-12)
  • Java一行代码控制shape 优雅的解决 Drawable Shape 文件繁多问题
  • innerWidth outerWidth
  • 共享单车运营方不能“只管生不管养”
  • 多项底层技术发力,我国物联网大规模商用迎来窗口期
  • 概念大热的区块链,有这些值得关注的特性
  • Storm笔记整理(四):Storm核心概念与验证——并行度与流式分组
  • 公费出书流程
  • centos7 yum安装配置redis 并设置密码
  • 美元汇率 题解
  • MySql查询最近一个月,一周,一天
  • IDC:今年VR+AR市场规模将达到139亿美元
  • 时间复杂度分析经典问题——最大子序列和
  • Android交互
  • DOM的那些事
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • Fastjson的基本使用方法大全
  • Hexo+码云+git快速搭建免费的静态Blog
  • java第三方包学习之lombok
  • Java面向对象及其三大特征
  • Python - 闭包Closure
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 近期前端发展计划
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 来,膜拜下android roadmap,强大的执行力
  • 批量截取pdf文件
  • 扑朔迷离的属性和特性【彻底弄清】
  • 前端面试之闭包
  • 前端面试总结(at, md)
  • 人脸识别最新开发经验demo
  • 如何实现 font-size 的响应式
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 小而合理的前端理论:rscss和rsjs
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #define,static,const,三种常量的区别
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (4)logging(日志模块)
  • (C++17) std算法之执行策略 execution
  • (DenseNet)Densely Connected Convolutional Networks--Gao Huang
  • (pytorch进阶之路)扩散概率模型
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (排序详解之 堆排序)
  • (十二)devops持续集成开发——jenkins的全局工具配置之sonar qube环境安装及配置