Ubuntu 使用笔记

格式化移动硬盘

  • 首先使用fdisk -l查看当前磁盘情况,此处/dev/sdb是外接的移动硬盘
  • 使用命令fdisk /dev/sdb开始执行分区
  • 开机自动挂载,nano /etc/fstab添加一行/dev/sdb1 /home/freeman/homecloud/ ext4 defaults 0 0

修改主机名

修改以下两个文件中的的新的主机名,保存并重启。

sudo nano /etc/hostname
sudo nano /etc/hosts

添加命令别名

添加一行新的别名定义到文件~/.bashrc,比如:alias l='ls -l',保存并重新登录。

安装sshd服务

  • sudo apt-get install openssh-server,
  • 打开root账户ssh设置 sudo nano /etc/ssh/ssd_config 设置 PermitRootLogin yes

安装编译环境

sudo apt-get install build_essential gcc g++

安装docker环境

  • 安装指南
  • 添加你的用户到docker用户组,避免使用sudo, sudo usermod -aG docker $user
  • 因为国内访问hub.docker.com速度非常慢,可以添加国内的镜像站点,目前有阿里云和daocloud提供,打开配置文件/etc/default/docker,修改设置如下:DOCKER_OPTS="--registry-mirror=https://xvfa2uzp.mirror.aliyuncs.com", 完成后重启服务sudo service docker restart,使用查找命令验证修改后的速度docker search ubuntu
  • 如何开机自动启动某个容器?将命令docker start containername添加到/etc/rc.local/文件中。

安装python环境

  • 设置pypi国内镜像,创建或编辑文件~/.pip/pip.conf
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/

安装nodejs环境

官方指南
将npm registry设置为淘宝npm源,全局安装n模块来管理和更新node和npm。

安装dotnet环境

官方安装指南

安装 gitlab-ce服务

安装letsencrypt服务

git clone https://github.com/kshcherban/acme-nginx
cd acme-nginx
python setup.py install
sudo acme-nginx -d domain.com -d www.domain.com

定时任务,每个月1日更新证书,因为更新证书需要root权限,所以需要使用root账户下的crontab

sudo crontab -e
0 0 1 * * acme-nginx -d domain.com -d www.domain.com

安装nginx

  • 直接安装 sudo apt-get install nginx

安装MySQL 5.7

  • docker方式安装
docker run -d \
--name mysql \
-p 3306:3306 \
-v /home/freeman/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=password \
mysql:5.7.14 \
--character-set-server=utf8mb4 \
--collation-server=utf8mb4_unicode_ci \

  • 本地安装指南

  • 打开root用户远程访问能力

  • GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'; flush privileges;

  • 修改配置文件/etc/mysql/mysql.conf.d/mysqld.cnf注释掉行bind-address = 127.0.0.1

使用speedtest-cli测试网速

speedtest-cli是一个用Python编写的轻量级Linux命令行工具,在Python2.4至3.4版本下均可运行。它基于Speedtest.net的基础架构来测量网络的上/下行速率。安装speedtest-cli很简单,只需要下载其Python脚本文件。

wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py;
chmod a+rx speedtest_cli.py;
sudo mv speedtest_cli.py /usr/local/bin/speedtest-cli;
sudo chown root:root /usr/local/bin/speedtest-cli;

然后就可以在命令行运行测试:speedtest-cli,下图是一个样例测试结果,上行速度就代表你的ECS配置带宽。

Speedtest结果

安装配置HAProxy

访问 Debian/Ubuntu HAProxy packages 选择你需要安装的版本进行安装。以下以ubutntu 14.04 安装HAProxy 1.6为例,安装完成后执行 haproxy -v 命令查看版本。

  • sudo apt-get install software-properties-common

  • sudo add-apt-repository ppa:vbernat/haproxy-1.6

  • sudo apt-get update

  • sudo apt-get install haproxy

  • 启动和停止

  • sudo service haproxy start 启动服务

  • sudo service haproxy stop 停止服务

  • sudo service haproxy restart 重启服务

  • 配置WEB管理

  • 打开配置文件 etc/haproxy/haproxy.cfg,添加如下配置,打开WEB管理功能。

# 统计页面配置
listen admin_stats 
    bind *:1080
    stats enable
    stats  uri  /admin?stats 
    stats auth username:password
    stats hide-version
    stats admin if TRUE
    stats  refresh  30s

使用公钥登录Bitbucket.org

首先使用命令ssh-keygen(一路默认)在客户机生成秘钥,生成的公钥(id_rsa.pub)和私钥(id_rsa)保存在家目录下的.ssh目录下,在bitbucket.org管理界面上新建SSH Key,并打开公钥文件,将内容复制到该新建的SSH Key上并保存。客户端通过 git clone git@bitbucket.org:freemanke/repo.git 等命令即可操作,不再需要输入用户名和密码。

运行ASP.NET Core应用时无法输出日志

在Ubuntu上运行ASP.NET Core应用时,需要先切换到应用所在根目录,否则因为系统默认使用终端当前目录作为工作目录,而无法找到配置和引用文件而发生错误。如下图root目录为终端当前目录而不是应用所在目录。


没有切换到应用所在目录,会导致运行时错误.png

正确的运行方式

使用supervisor后台运行.NET Core应用

  • 使用命令sudo apt-get install supervisor安装supervisor
  • 在supervisor配置目录下创建应用对应的配置文件sudo touch /etc/supervisor/conf.d/yuehuapi.conf, 编辑配置文件如下
[program:yuehuapi]
command=dotnet Fhit.Yuehu.Api.dll  #要执行的命令directory=/home/freeman/fhit.yuehu.api/publish/  #命令执行的目录environment=ASPNETCORE__ENVIRONMENT=Production  #环境变量
user=www-data  #进程执行的用户身份
stopsignal=INT
autostart=true  #是否自动启动
autorestart=true   #是否自动重启
startsecs=1  #自动重启间隔
stderr_logfile=/var/log/yuehuapi.err.log  #标准错误日志stdout_logfile=/var/log/yuehuapi.out.log  #标准输出日志
  • 开启supervisor WEB管理界面,sudo nano /etc/supervisor/supervisord.conf编辑supervisor服务配置文件,添加[inet_http_server]配置端如下:
Supervisor配置文件
  • 执行命令sudo service suupervisor restart 重启服务
  • 通过浏览地址:http://localhost:7002/ 查看当前应用状态
    Supervisor Web UI.png

配置Nginx负载均衡

  • Ningx负载均衡官方算法包括

  • 轮询 - 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。轮询模式会带来Session无法保持的问题,可以通过将Session保存到Redis缓存服务器上来解决Session的保持问题。

  • 基于权重的轮询 - 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况,如果后端服务器down掉,能自动剔除。

  • ip_hash - 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session不能跨服务器的问题。如果后端服务器down掉,要手工down掉。

  • 服务器参数

  • down - 表示单前的server暂时不参与负载

  • weight - 权重,默认为1。 weight越大,负载的权重就越大。

  • max_fails - 允许请求失败的次数默认为1。当超过最大次数时,返回proxy_next_upstream 模块定义的错误

  • fail_timeout - max_fails次失败后,暂停的时间

  • backup - 备用服务器,其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

  • 轮询配置实例

upstream yuehuapi {
    server 192.168.0.11:3723 max_fails=3 fail_timeout=30s;
    server 192.168.0.12:3723 max_fails=3 fail_timeout=30s;
    server 192.168.0.13:3723 max_fails=3 fail_timeout=30s;
}
server
{
    listen  80;
    server_name  domain.com;
    location / {
           proxy_pass http://yuehuapi;
}
  • 基于权重的轮询配置实例
upstream yuehuapi {
    server 192.168.0.11:3723 weight=10;
    server 192.168.0.12:3723 weight=20 down;
    server 192.168.0.13:3723 weight=30;
    server 192.168.0.14:3723 weight=50 backup;
    server 192.168.0.15:3723 weight=40 max_fails=3 fail_timeout=30s;
}
server
{
    listen  80;
    server_name  domain.com;
    location / {
           proxy_pass http://yuehuapi;
}
  • ip_hash配置实例
upstream yuehuapi {
        ip_hash;
    server 192.168.0.11:3723;
    server 192.168.0.12:3723;
}
server
{
    listen  80;
    server_name  domain.com;
    location / {
           proxy_pass http://yuehuapi;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • 新买的dell笔记本是ubuntu的系统(苦逼党一枚,不解释),所以决定用一下下,顺带学习一下ubuntu系统。 ...
    鸣祥阅读 288评论 0 0
  • 整体架构 部署步骤 基于 Docker 基本概念内存节点只保存状态到内存,例外情况是:持久的 queue 的内容将...
    mvictor阅读 12,728评论 5 30
  • 参考文档: 1.haproxy:http://www.haproxy.org/ 本文涉及haproxy的安装,并做...
    Netonline阅读 2,405评论 1 51
  • 目录: HAProxy是什么 HAProxy的核心能力和关键特性 HAProxy的安装和运行 使用HAProxy搭...
    kelgon阅读 79,664评论 9 159