Skip to content

Latest commit

 

History

History
398 lines (276 loc) · 11.9 KB

051. 阿里云服务器指南.md

File metadata and controls

398 lines (276 loc) · 11.9 KB

一、准备

阿里云账号注册

参考 新手上云指南 >> 完成 注册账号 和 个人实名认证。

购买ECS服务器

点击 前往云服务器ECS >>,点击 立即购买

接下来主要给大家简单介绍购买环节中该如何选择,未提到的表示保持推荐默认即可,仅供参考:

① 基础配置

  • 付费模式:「包年包月」;

    • 包年包月:7x24 小时流量稳定时选择(推荐);

    • 按量付费:用多少是多少,一般用于流量在某个期间突增的情况,比如上线一个抢红包活动什么的;

  • 地域:「西南1(成都)

  • 网络及可用区:「默认专有网络」、「随机分配可用区

② 实例和镜像

  • 实例:「2vCPU / 4GiB

    • 一般个人用 2核4G 应该够了,根据需要来,然后在结果列表中选一个价格合适的即可。
    • 如果你选择的是 突然性能实例 规格族,则无需打开突发性能实例(单独收费)
  • 镜像:「CentOS - 7.9 64位

    • CentOS社区已宣布CentOS 8在2021年12月31日停止服务,一般选择 ^7.9
    • 安全加固默认即可

③ 存储

  • 系统盘:「ESSD云盘 - 40Gib

    • 根据需求来,如果你只是测试,或者学习用,直接拉到 20Gib
  • 数据盘:根据需要(额外收费)

  • 快照服务:根据需要(单独收费)

④ 带宽和安全组

  • 公网IP:勾选 分配公网 IPv4 地址
  • 带宽计费模式:「按使用流量
  • 带宽峰值:「5Mbps」(根据需要)
  • 安全组:「新建安全组
  • 开通IPv4端口:勾选 「HTTP(80) HTTPS(443) SSH(22)」 即可

⑤ 管理设置

  • 登录凭据:「自定义密码
  • 登录名:默认 root
  • 登录密码/确认密码(记得保存好)

⑥ 高级选项(选填)

  • 实例名称:默认即可
  • 描述:选填
  • 主机名:在终端显示的名称,终端显示效果如:[root@Li-HONGYAO ~]#
  • ...

⑦ 确认订单

  • 选择购买时长(是否自动续费根据个人情况来定);

  • 勾选服务协议,确认下单即可;

  • 如果你选择3个月,获取域名备案码,不然得花100元1个,其实就是捆绑销售;

  • 仔细检查一下所选配置 / 在这里你也可以修改之前配置;

购买域名

  • 前往 万网 >> 查询 → 购买域名;

  • 前往 ICP 备案 >>,点击右下角 我要备案 然后根据提示进行即可;

    • 管局审核时间约为10天
    • 建议域名购买3天后再去备案(工信部同步数据)
    • 提示:备案需购买至少3个月的ECS服务器才让你备(万恶的捆绑销售呀)
  • 前往 云解析 DNS >>,进入控制台 → 域名解析 → 选中要解析的域名点击操作 / 解析设置 → 添加记录

    • 你可以绑定多个子域名来使用,设置面板中,你只需将 记录值 指向你的 公网IP 即可。

OSS云存储

  • 前往 对象存储 OSS >> 开通
  • Bucket 列表 → 创建Bucket
    • Buket 名称:随意填写
    • 地域:「有地域属性」-「西南1(成都)
    • 存储类型:「标准存储
    • 存储冗余类型:「本地冗余存储
    • 读写权限:「公共读
    • 所属资源组:「默认资源组
    • 版本控制:「未开通」(按需:单独计费)
    • 服务端加密方式:「
    • 实时日志查询:「未开通」(按需:单独计费)
    • 定时备份:「未开通」(按需:单独计费)
  • 跨域设置
    • 登录阿里云后台,在对象存储OSS中进入对应的Buket → 数据安全 → 跨域设置 → 创建规则
      • 来源 / 允许 Headers:「*
      • 允许 Mthods:「根据需要选择即可

二、核心

登录阿里云账号 → 进入云服务器 ECS 控制台 → 左侧菜单栏选择实例与镜像 → 实例 查看实例信息

连接服务器

FinalShell *

Workbench 远程连接

在实例列表中 操作 列中选择 远程连接 → 选择 Workbench 远程连接

通过网页可以对ECS实例进行远程控制,支持复制粘贴文本,支持多操作系统用户登录同一台实例,支持可视化查看系统文件资源。

Tips: 直接在实例点击远程连接,不用安装工具,网页内操作,但是操作不是很方便。

包管理工具

包管理工具:yum >>

常用指令:

  1. 列出所有可更新的软件清单命令:yum check-update

  2. 更新所有软件命令:yum update

  3. 仅安装指定的软件命令:yum install <package_name>

  4. 仅更新指定的软件命令:yum update <package_name>

  5. 列出所有可安裝的软件清单命令:yum list

  6. 删除软件包命令:yum remove <package_name>

  7. 查找软件包命令:yum search <keyword>

三、环境配置

1. nginx

安装指令:

$ yum -y install nginx

配置文件:/etc/nginx/nginx.conf

静态文件路径:/usr/share/nginx/html

更改配置文件 → 启动:nginx [-s reload/stop]

2. mongodb

  • 前往 清华大学开源软件镜像站 >>,搜索 mongodb,找到你要安装的版本

  • 配置文件目录:/etc/mongod.conf

  • 启动:systemctl start/stop/restart mongod

  • 查看进程列表:ps auxf |grep mongod

# mongod.conf

# for documentation of all options  
# see:http://docs.mongodb.org/manual/reference/configuration-options/

# 写入日志数据的位置
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

# 数据库存储位置
storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true

# 流程如何运行
processManagement:
  fork: true  # fork and run in background
  pidFilePath: /var/run/mongodb/mongod.pid  # location of pidfile
  timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.


#security:
security:
  authorization: enabled

3. nodejs

1)前往 清华大学开源软件镜像站 >>,搜索 nodejs-release,找到你要安装的版本,并根据系统 / 位数选择对应的压缩包,鼠标右键 复制链接地址

2)切换到服务器,输入如下指令进行下载

$ curl -O https://mirrors.tuna.tsinghua.edu.cn/nodejs-release/v16.15.0/node-v16.15.0-linux-x64.tar.gz

Tips:O 是大写字母,不要下载太高的版本,最好和本地node保持一致。

3)解压下载文件

# 解压
$ tar xvzf node-v16.15.0-linux-x64.tar.gz
# 移动至/usr/local/nod目录并添加软连接
$ cp -af node-v18.1.0-linux-x64 /usr/local/node && ln -s /usr/local/node/bin/* /usr/bin

5)验证

[root@lee node-v16.9.1-linux-x64]# which node
/usr/bin/node
[root@lee node-v16.9.1-linux-x64]# node -v
v16.9.1

6)删除不必要的文件

$ rm -rf xxx

四、部署

前端项目建议存放的位置:/usr/share/nginx/html

后端项目建议存放的位置:/usr/share/apis

H5

**提示:**一般来说,如果我要部署多个项目,我会将其部署至二级目录,并且通过项目来分类。比如我现在有一个项目叫 hope520,其中包括了 H5 页面和一个后台管理系统 Admin,那么我的目录结构大致是这样的:

/usr/share/nginx/html/
.
├── hope520            # 项目名
    ├── hope520-h5     # H5代码部署位置
	  └── hope520-admin  # Admin代码部署位置
...

下面直接给配置表,仅供参考:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
worker_rlimit_nofile 10240;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;

events {
     worker_connections 10240;
}


http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;

    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;

    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;

    # 公网ip访问(刷新)跳转
    #server {
        #listen 80 default;
        #return 200  404.html;
    #}


     # 新希望520活动
     server {
        listen       443 ssl;
        ssl_certificate m.zhishidaren.cn.crt;
        ssl_certificate_key m.zhishidaren.cn.key;
        server_name  m.zhishidaren.cn;
                
        location /hope520-h5/ {
                alias /usr/share/nginx/html/hope520/hope520-h5/;
                try_files $uri $uri/ /hope520-h5/index.html;
        }

        location /hope520-admin/ {
                alias /usr/share/nginx/html/hope520/hope520-admin/;
                try_files $uri $uri/ /hope520-admin/index.html;
        }
        location /bLHmc4ic08.txt {
                root /usr/share/nginx/html/hope520;
        }

        location /xW4vpPkPvo.txt {
                root /usr/share/nginx/html/hope520;
        }
       
        location / {
                proxy_pass http://127.0.0.1:8888;
                #proxy_hide_header Content-Security-Policy;     
        }

    }

# Settings for a TLS enabled server.
#
#    server {
#        listen       443 ssl http2;
#        listen       [::]:443 ssl http2;
#        server_name  _;
#        root         /usr/share/nginx/html;
#
#        ssl_certificate "/etc/pki/nginx/server.crt";
#        ssl_certificate_key "/etc/pki/nginx/private/server.key";
#        ssl_session_cache shared:SSL:1m;
#        ssl_session_timeout  10m;
#        ssl_ciphers HIGH:!aNULL:!MD5;
#        ssl_prefer_server_ciphers on;
#
#        # Load configuration files for the default server block.
#        include /etc/nginx/default.d/*.conf;
#
#        error_page 404 /404.html;
#            location = /40x.html {
#        }
#
#        error_page 500 502 503 504 /50x.html;
#            location = /50x.html {
#        }
#    }

}

node

node 部署通常使用 pm2 >> 管理

你在远程服务器上的node项目结构应该是这样的:

/usr/share/apis
.
├── 项目A          
├── 项目B
...
cosystem.config.js

关于 pm2 如何管理 node 项目,请 参考这里 >>

六、常用操作

  • systemctl start/stop/restart mongod:启动/停止/重启服务
  • ps auxf |grep mongod:查看进程
  • whereis xxx:查看某个软件的安装位置
  • pwd xxx:查看某个文件的位置
  • cat:查看某个文件的内容s

更多命令,参考这里 >>