Ubuntu 使用筆記

格式化移動硬盤

  • 首先使用fdisk -l查看當前磁盤情況,此處/dev/sdb是外接的移動硬盤
  • 使用命令fdisk /dev/sdb開始執(zhí)行分區(qū)
  • 開機自動掛載,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

安裝編譯環(huán)境

sudo apt-get install build_essential gcc g++

安裝docker環(huán)境

  • 安裝指南
  • 添加你的用戶到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環(huán)境

  • 設置pypi國內鏡像,創(chuàng)建或編輯文件~/.pip/pip.conf
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/

安裝nodejs環(huán)境

官方指南
將npm registry設置為淘寶npm源,全局安裝n模塊來管理和更新node和npm。

安裝dotnet環(huán)境

官方安裝指南

安裝 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測試網(wǎng)速

speedtest-cli是一個用Python編寫的輕量級Linux命令行工具,在Python2.4至3.4版本下均可運行。它基于Speedtest.net的基礎架構來測量網(wǎng)絡的上/下行速率。安裝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為例,安裝完成后執(zhí)行 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管理功能。

# 統(tǒng)計頁面配置
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應用時,需要先切換到應用所在根目錄,否則因為系統(tǒng)默認使用終端當前目錄作為工作目錄,而無法找到配置和引用文件而發(fā)生錯誤。如下圖root目錄為終端當前目錄而不是應用所在目錄。


沒有切換到應用所在目錄,會導致運行時錯誤.png

正確的運行方式

使用supervisor后臺運行.NET Core應用

  • 使用命令sudo apt-get install supervisor安裝supervisor
  • 在supervisor配置目錄下創(chuàng)建應用對應的配置文件sudo touch /etc/supervisor/conf.d/yuehuapi.conf, 編輯配置文件如下
[program:yuehuapi]
command=dotnet Fhit.Yuehu.Api.dll  #要執(zhí)行的命令directory=/home/freeman/fhit.yuehu.api/publish/  #命令執(zhí)行的目錄environment=ASPNETCORE__ENVIRONMENT=Production  #環(huán)境變量
user=www-data  #進程執(zhí)行的用戶身份
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配置文件
  • 執(zhí)行命令sudo service suupervisor restart 重啟服務
  • 通過瀏覽地址:http://localhost:7002/ 查看當前應用狀態(tài)
    Supervisor Web UI.png

配置Nginx負載均衡

  • Ningx負載均衡官方算法包括

  • 輪詢 - 每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。輪詢模式會帶來Session無法保持的問題,可以通過將Session保存到Redis緩存服務器上來解決Session的保持問題。

  • 基于權重的輪詢 - 指定輪詢幾率,weight和訪問比率成正比,用于后端服務器性能不均的情況,如果后端服務器down掉,能自動剔除。

  • ip_hash - 每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session不能跨服務器的問題。如果后端服務器down掉,要手工down掉。

  • 服務器參數(shù)

  • down - 表示單前的server暫時不參與負載

  • weight - 權重,默認為1。 weight越大,負載的權重就越大。

  • max_fails - 允許請求失敗的次數(shù)默認為1。當超過最大次數(shù)時,返回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;
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,724評論 19 139
  • 新買的dell筆記本是ubuntu的系統(tǒng)(苦逼黨一枚,不解釋),所以決定用一下下,順帶學習一下ubuntu系統(tǒng)。 ...
    鳴祥閱讀 338評論 0 0
  • 整體架構 部署步驟 基于 Docker 基本概念內存節(jié)點只保存狀態(tài)到內存,例外情況是:持久的 queue 的內容將...
    mvictor閱讀 12,915評論 5 30
  • 參考文檔: 1.haproxy:http://www.haproxy.org/ 本文涉及haproxy的安裝,并做...
    Netonline閱讀 2,495評論 1 51
  • 目錄: HAProxy是什么 HAProxy的核心能力和關鍵特性 HAProxy的安裝和運行 使用HAProxy搭...
    kelgon閱讀 80,546評論 9 159

友情鏈接更多精彩內容