Aliyun Cloud Server Envionment Preparation
环境搭建
购买了一款Ubuntu系统的阿里云服务器,简单记录下部分环境搭建过程。
一、远程连接
AccessKey, AccessSecret(可选)
阿里云提供客户端便于管理实例,使用客户端需要密钥,通过阿里云官网可以进行申请,详情参考文档。
ssh端口修改和用户登录限制(可选)
默认阿里云root用户可以ssh登录到服务器,端口号默认为22,均需要修改
sudo vim /etc/ssh/sshd_config
修改后重启,并需要在阿里云控制台对服务器防火墙规则进行修改,开放相关端口方可远程连接。
# 重启sshd
service sshd restart
ssh -p PORT [USERNAME]@[IP]
为了提高安全性,还可以添加密钥验证。
ssh密钥登录服务器
- 在本地生成密钥对
ssh-keygen
安全起见,创建密钥对时设置密钥口令。
-
将公钥(xxx.pub)上传到服务器
参考命令:cat id_rsa.pub » ~/.ssh/authorized_keys
-
服务器端配置允许RSA密钥登录
在配置文件/etc/ssh/sshd_config中添加如下配置:
RSAAuthentication yes PubkeyAuthentication yes
-
(可选)禁用密码登录
-
重启SSH服务
service sshd restart
二、用户和组
新建组
groupadd -g 1314 testgroup
新建用户
useradd -g testgroup testuser
passwd testuser
# 指定用户登录默认终端为bash
chsh -s /bin/bash testuser
新建sudo用户
visudo
……
三、开发环境
-
Python安装Anaconda
-
Java
-
Scala
四、代理服务
- nginx
nginx安装
apt install nginx
执行完上述命令,访问[IP]:80看到如下界面说明nginx服务已正常运行
默认情况下,nginx服务开机自启。
systemctl list-unit-files | grep nginx
配置静态图片资源服务代理
server {
listen YOUR_PORT;
server_name IP_OR_DOMAIN;
root ROOT_PATH_OF_RESOURCES;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
autoindex off;
}
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
access_log off;
add_header Cache-Control "public";
}
}
通过autoindex off关闭目录索引避免别人直接查看目录内的文件列表
配置SSL证书
数字证书管理服务商店购买或申请SSL证书,申请到证书后,以阿里云Nginx部署为例,下载证书公私钥文件部署到服务器上,修改Nginx配置,详细部署说明可参考文档。
一种示例配置如下(实际部署时选择高安全性的加密套件,并且视需求而定可以关闭80端口或者将80端口的http请求强制改写为https请求,本人选择前者):
server {
#HTTPS的默认访问端口443
#如果未在此处配置HTTPS的默认访问端口,可能会造成Nginx无法启动。
listen 443 ssl;
#填写证书绑定的域名
server_name <yourdomain>;
#填写证书文件绝对路径
ssl_certificate "/etc/nginx/conf.d/cert/cert.pem";
#填写证书私钥文件绝对路径
ssl_certificate_key "/etc/nginx/conf.d/cert/cert.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
#默认加密套件
ssl_ciphers HIGH:!aNULL:!MD5;
#自定义设置使用的TLS协议的类型以及加密套件(以下为配置示例,请您自行评估是否需要配置)
#TLS协议版本越高,HTTPS通信的安全性越高,但是相较于低版本TLS协议,高版本TLS协议对浏览器的兼容性较差。
#ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
#表示优先使用服务端加密套件。默认开启
ssl_prefer_server_ciphers on;
location / {
root html;
index index.html index.htm;
}
}
}
五、容器服务
-
docker
sudo apt install docker.io
六、数据库服务
-
PgSQL
-
MySQL
-
MongoDB
-
Redis
-
……
PostgreSQL
编译安装postgresql
由于个人电脑pgsql采用版本15,故服务器上选择安装pgsql 15, 你也可以到PostgreSQL: File Browser选择一个你需要的版本.
axel https://ftp.postgresql.org/pub/source/v15.6/postgresql-15.6.tar.gz
下载完后解压压缩包,执行configure脚本检测系统的特性(系统类型和版本、编译器、依赖库的可用性等)并设置pgsql软件包的配置文件(Makefile)以适应系统
postgresql-15.6.tar.gz
./configure --prefix=/opt/spacetimelab/software_repo/postgresql15.6
遇到错误提示缺失readline库,执行如下命令安装,安装完成后再执行上一条命令。
sudo apt install libreadline-dev
make
make install
安装完成后,创建数据目录和系统内的数据库用户:
mkdir -p /data/postgresql/
useradd postgres
chown -R postgres /data/postgresql
创建数据库以验证基本命令可以正常执行
# 初始化数据目录
initdb -D /data/postgresql
# 启动数据库服务
pg_ctl -D /data/postgresql start
# 创建测试数据库
createdb testdb
# 连接测试数据库
psql testdb
至此无问题,编译安装过程也没报错,说明pgsql正常安装完成。后续还需编译安装postgis插件,更改postgres配置项提高安全性,此处暂略。
关于常见配置
服务端口
要更改服务端口,仅需修改配置文件再重启服务。
pg_ctl -D /data/postgresql restart
远程连接IP
pg_hba.conf, postgresql.conf
Redis
Redis服务安装
Install Redis on Linux | Redis
sudo snap install redis
常见redis配置文件位置:/etc/redis/redis.conf
默认日志文件位置:/var/log/redis
注意:使用不同方式安装的redis配置文件位置不同,具体的可以通过命令查看。
通过redis
Redis客户端工具安装
redis-tools包含一些常用的Redis工具集合,提供很多命令来管理和操作Redis,执行客户端操作:如发送命令、查看服务状态、故障排除等。
sudo apt install redis-tools
redis-cli常用方式
-
连接远程redis
redis-cli -h host -p port -a password
-
发送命令
redis-cli set test 1 redis-cli get test
-
修改密码
CONFIG SET requirepass YOUR_PASSWORD
-
……
redis默认服务端口修改
配置文件、客户端ip白名单等均可在配置文件中修改。
重启redis后生效
systemctl restart redis
ACL(访问控制列表)
创建用户
ACL setuser USER
ACL setuser USER on
ACL setuser USER >PASSWORD
ES
docker network create elastic
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.13.0
docker run --name es01 --net elastic -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:8.13.0
sudo docker run --name es01 --net elastic -p 9200:9200 -it -d elasticsearch:8.13.0
sudo docker pull kibana:8.13.0
七、其他
-
浏览器驱动
-
Spark
-
……
Gitlab
配置不足以启动Gitlab
Spark
https://spark.apache.org/downloads.html
Apache Spark 是一个用于大规模数据处理的统一分析引擎。它提供了 Scala、Java、Python 和 R 的高级 API,并且拥有一个优化的引擎,支持用于数据分析的通用计算图。此外,Spark 还支持一系列丰富的高级工具,包括用于 SQL 和 DataFrames 的 Spark SQL,用于 pandas 工作负载的 pandas API,用于机器学习的 MLlib,用于图处理的 GraphX,以及用于流处理的 Structured Streaming。
Ubuntu下安装Spark
先安装java环境,简单起见可以:
sudo apt install default-jre
直接从官网下载https://dlcdn.apache.org/spark/spark-3.5.1/spark-3.5.1-bin-hadoop3.tgz
进行解压:
tar -xvf spark-3.5.1-bin-hadoop3.tar
配置环境变量:
export SPARK_HOME=/path/to/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
使环境变量生效:
source ~/.bashrc
Spark配置
默认情况下,conf目录下有相关配置文件的模板:
fairscheduler.xml.template
log4j2.properties.templat
metrics.properties.template
spark-defaults.conf.template
spark-env.sh.template
workers.template
-
spark-env.sh
这个文件用于设置 Spark 环境变量。你可以在这个文件中配置 JVM 选项、内存设置、以及其他与环境相关的配置。
-
spark-defaults.conf
默认配置。
-
workers
列出集群中所有Worker节点的主机名或IP地址。每个主机名或 IP 地址应该占一行。
-
log4j2.properties
配置Spark的日志记录行为。你可以在这个文件中设置日志级别、日志格式、日志输出位置等。
-
metrics.properties.template
设置 Spark 应用程序的指标收集和报告。这个文件的目的是定义如何收集和导出应用程序的度量信息,例如任务执行时间、内存使用情况、垃圾回收信息等。
-
……
PySpark
pip install pyspark -i https://mirror.baidu.com/pypi/simple