当前位置:   article > 正文

蚂蚁笔记私有部署

蚂蚁笔记私有化部署

说明

其实官方的教程中已经写得很清楚了,我写这个主要是为了记录一下我自己当时安装的过程,方便后续查询

官方文档请查阅:https://github.com/leanote/leanote/wiki

环境要求

  • CentOS6.5+Nginx+MongoDB
  • 最小配置:16G内存+4CPU+500G硬盘
  • 推荐配置:32G内存+4CPU+1T硬盘

安装过程

  • 安装 CentOS 6.5

最小化安装,分区如下,推荐基于LVM,后面维护比较方便:

  1. /boot 500M
  2. swap 8G
  3. / 20G
  4. /data 剩下所有
  • 系统优化

关闭SELinux

sed -i 's/SELINUX=enforcing/SELINUX=disabled/'/etc/s

精简启动项

  1. LANG=en
  2. for root in `chkconfig --list|grep 3:on|awk '{print 1}'`;do chkconfig --level 3 root off;done
  3. for root in crond network rsyslog sshd iptables;do chkconfig --level 3 $root on;done
  4. chkconfig --list|grep 3:on
  1. 安装Nginx的YUM源
  2. rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
  3. yum -y install nginx

安装其他软件

yum -y install vim wget curl lsof net-tools openssl
  • 安装Mongodb

编辑mongodb的YUM源

  1. #vim /etc/yum.repos.d/mongodb-org-3.4.repo
  2. #添加入一下内容
  3. [mongodb-org-3.4]
  4. name=MongoDB Repository
  5. baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
  6. gpgcheck=1
  7. enabled=1
  8. gpgkey=https://www.mongodb.org/static/pgp/server-3.4.as

安装mongodb

yum -y install mongodb-org
  • 自定义Mondodb数据库

修改数据库存储路径,将dbpath自定义成自己的data分区,首先需要创建目录并赋予权限

  1. mkdir -p /data/db
  2. chown -Rf mongod:mongod /data/db
  3. chmod -Rf 755 /data/db

更改MongoDB数据库存储路径,修改dbPath

  1. # vim /etc/mongod.conf
  2. ...
  3. systemLog:
  4. destination: file
  5. logAppend: true
  6. path: /var/log/mongodb/mongod.log
  7. # Where and how to store data.
  8. storage:
  9. dbPath: /data/db/ //我们需要指定库文件的存放目录
  10. journal:
  11. enabled: true
  12. # how the process runs
  13. processManagement:
  14. fork: true # fork and run in background
  15. pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
  16. # network interfaces
  17. net:
  18. port: 27017
  19. bindIp: 127.0.0.1
  20. ...
  • 启动Mongodb并加入开机自启
  1. service mongod start
  2. chkconfig mongod on
  • 部署蚂蚁笔记

下载蚂蚁笔记

  1. cd /data
  2. wget https://sourceforge.net/projects/leanote-bin/files/2.5/leanote-linux-amd64-v2.5.bin.tar.gz

解压文件

tar -zxvf leanote-linux-amd64-v2.5.bin.tar.gz

导入初始化数据库

mongorestore -h localhost -d leanote --dir /data/leanote/mongodb_backup/leanote_install_data/

给mongodb添加数据库用户

  1. mongo
  2. 首先切换到leanote数据库下
  3. > use leanote;
  4. 添加一个用户root, 密码是abc123,这个密码是可以自定义的
  5. > db.createUser({
  6. user: 'root',
  7. pwd: 'abc123',
  8. roles: [{role: 'dbOwner', db: 'leanote'}]
  9. });
  10. 测试下是否正确
  11. > db.auth("root", "abc123");
  12. 1
  13. 返回1表示正确

修改app.conf

  1. # vim /data/leanote/conf/app.conf
  2. ...
  3. db.host=localhost
  4. db.port=27017
  5. db.dbname=leanote
  6. db.username=root
  7. db.password=abc123
  8. ...

重启数据库服务

 service mongod restart

尝试运行

bash /data/leanote/bin/run.sh

如果终端提示如下就说明配置是正确的

  1. ...
  2. TRACE 2013/06/06 15:01:27 watcher.go:72: Watching: /home/life/leanote/bin/src/github.com/leanote/leanote/conf/routes
  3. Go to /@tests to run the tests.
  4. Listening on :9000
  5. ...
  • 尝试访问,记得先关闭下防火墙

恭喜你, 打开浏览器输入: http://localhost:9000体验leanote吧!

  • 配置支持https

创建证书

  1. 首先,创建证书和私钥的目录
  2. # mkdir -p /etc/nginx/cert
  3. # cd /etc/nginx/cert
  4. 创建服务器私钥,命令会让你输入一个口令:
  5. # openssl genrsa -des3 -out nginx.key 2048
  6. 创建签名请求的证书(CSR):
  7. # openssl req -new -key nginx.key -out nginx.csr
  8. 在加载SSL支持的Nginx并使用上述私钥时除去必须的口令:
  9. # cp nginx.key nginx.key.org
  10. # openssl rsa -in nginx.key.org -out nginx.key
  11. 最后标记证书使用上述私钥和CSR:
  12. # openssl x509 -req -days 365 -in nginx.csr -signkey nginx.key -out nginx.crt

配置Nginx

配置nginx.conf

  1. # vim /etc/nginx/nginx.conf 添加入一下内容
  2. #本配置只有http部分, 不全, 详细配置请百度Nginx相关知识
  3. http {
  4. include /etc/nginx/mime.types;
  5. default_type application/octet-stream;
  6. upstream note.cloud.top {
  7. server localhost:9000;
  8. }
  9. # http
  10. server
  11. {
  12. listen 80;
  13. server_name note.cloud.top;
  14. # 强制https
  15. # 如果不需要, 请注释这一行rewrite
  16. rewrite ^/(.*) https://note.cloud.top/$1 permanent;
  17. location / {
  18. proxy_pass http://note.cloud.top;
  19. proxy_set_header Host $host;
  20. proxy_set_header X-Real-IP $remote_addr;
  21. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  22. }
  23. }
  24. # https
  25. server
  26. {
  27. listen 443 ssl;
  28. server_name note.cloud.top;
  29. ssl_certificate /etc/nginx/cert/nginx.crt; # 修改路径, 到nginx.crt, 下同
  30. ssl_certificate_key /etc/nginx/cert/nginx.key;
  31. location / {
  32. proxy_pass http://note.cloud.top;
  33. proxy_set_header Host $host;
  34. proxy_set_header X-Real-IP $remote_addr;
  35. proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  36. }
  37. }
  38. }

启动Nginx

  1. service nginx start
  2. chkconfig nginx on
  • 笔记系统开机自启

注意

官方文档并没有给出这项设置,其实最简单的办法就是向rc.local文件中添加一条命令,开机自动执行,但是这里推荐使用supervisor服务进行管理,supervisor的详细介绍见:http://www.supervisord.org/**

方法1:

  1. # vim /etc/rc.d/rc.local
  2. 添加下面的内容,这样的化开机后就不会有影响
  3. nohup bash /data/leanote/bin/run.sh &

方法2-推荐使用
使用supervisor服务进行管理的优点是服务异常后自动重启,可靠性较高

  • 安装supervisor服务
yum install epel-release -y && yum install supervisor -y
  • 配置supervisor
  1. vim /etc/supervisord.conf 在文件末尾加入以下内容
  2. ···
  3. [program:webvirtmgr]
  4. command=bash /data/leanote/bin/run.sh
  5. autostart=true
  6. autorestart=true
  7. logfile=/dev/null
  8. log_stderr=true
  9. user=root
  10. ···

logfile我们定义到磁盘黑洞中,就不用占用磁盘的空间,同时减少部分磁盘IO开销

  • 启动supervisor服务并添加到开机自启中
# chkconfig supervisord on && service supervisord start
  • 防火墙配置
  1. #清空配置
  2. iptables -F
  3. iptables -X
  4. #如果是远程ssh连接配置务必先执行这条命令,否则会断开ssh连接,无法进行后续工作
  5. iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  6. iptables -P INPUT DROP
  7. iptables -P OUTPUT ACCEPT
  8. iptables -P FORWARD DROP
  9. #允许80443900053(DNS)端口
  10. iptables -A INPUT -p tcp --dport 80 -j ACCEPT
  11. iptables -A INPUT -p tcp --dport 443 -j ACCEPT
  12. iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
  13. iptables -A INPUT -p tcp --sport 53 -j ACCEPT
  14. iptables -A INPUT -p udp --sport 53 -j ACCEPT
  15. #允许ping
  16. iptables -A INPUT -p icmp -j ACCEPT
  17. #允许loopback!(不然会导致DNS无法正常关闭等问题)
  18. iptables -A INPUT -i lo -p all -j ACCEPT
  19. #丢弃坏的TCP包
  20. iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP
  21. #处理IP碎片数量,防止攻击,允许每秒100
  22. iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
  23. #设置ICMP包过滤,允许每秒1个包,限制触发条件是10个包
  24. iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT
  25. service iptables save
  26. service iptables restart
  • 其它配置

修改leanote运行端口

比如想以8080端口启动.修改conf/app.conf:

  1. http.port=8080
  2. site.url=http://note.cloud.top:8080

请重启Leanote, 使用http://note.cloud.top:8080

绑定域名

提示

site.url其实是自己可以自定义的,因为在浏览器中我们登录注销后url会自动变成这个语句设置的值,所以务必设置正确。

  1. site.url=http://note.cloud.top
  2. site.url=https://note.cloud.top
  3. 请重启Leanote, 使用http://note.cloud.top 或者 https:note.cloud.top 进行访问

转载于:https://www.cnblogs.com/tchroot/p/7732754.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/421548
推荐阅读
相关标签
  

闽ICP备14008679号