以下內容均在阿里雲 CentOS 7.0 64 位環境下運行
用 Nodejs 提供服務
文章目錄
更新 yum 並創建用戶
$ yum update # 最好更新,否則過程中有可能會出問題
$ useradd -m username
$ passwd username
$ usermod -a -G wheel username # 爲用戶添加 sudo 權限
安裝 Nginx
# install nginx
$ sudo yum install -y nginx
# start nginx
$ sudo systemctl start nginx.service
# Optional, auto run when power on
$ sudo systemctl enable nginx.service
支持 HTTPS
將 nginx 證書文件(一個 .key 一個 .pem 文件)上傳到服務器 /etc/nginx/cert/
目錄下(如沒有,要手動創建)。以下代碼不具有適用性,如果看不懂,就手動自己實現上面的操作。
# server_ip 爲服務器 ip
# local_cert_fold 爲本地證書存放文件夾
# 留意,此處要輸入兩遍密碼
$ ssh root@server_ip \
"[ -d /etc/nginx/cert/ ] && echo ok || mkdir -p /etc/nginx/cert/" && \
scp /local_cert_fold/* root@server_ip:/etc/nginx/cert/
修改 /etc/nginx/nginx.conf
中的配置,my_ssl_cert
替換爲自己的文件名
ssl_certificate "cert/my_ssl_cert.pem";
ssl_certificate_key "cert/my_ssl_cert.key";
重啓 nginx
$ sudo systemctl restart nginx.service
安裝 Nodejs
安裝 nvm,方便 nodejs 的版本管理。若安裝後出現 nvm: command not found
,新打開個 terminal 或重新登錄即可,詳見 nvm github
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
安裝 nodejs
$ nvm install --lts
安裝 cnpm(可選)
$ npm i -g cnpm --registry=https://registry.npm.taobao.org
安裝 pm2
$ cnpm i -g pm2
推薦
Jenkins & Docker
Docker
詳見 Get Docker Engine - Community for CentOS
- Uninstall old versions
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- Install Docker Engine - Community
# Install required packages.
# yum-utils provides the yum-config-manager utility,
# and device-mapper-persistent-data
# and lvm2 are required by the devicemapper storage driver.
$ sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
# 此處用了國內鏡像
# 原鏡像爲 https://download.docker.com/linux/centos/docker-ce.repo
$ sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#Install the latest version of Docker Engine - Community and containerd
$ sudo yum -y install docker-ce docker-ce-cli containerd.io
# Start Docker
$ sudo systemctl start docker.service
# Optional, set docker auto run when power on
$ sudo systemctl enable docker.service
Jenkins
此處選擇的 docker 模式,所以要先完成 docker 的安裝,詳見 安裝Jenkins
- 安裝 jenkins 鏡像
$ docker run \
-u root \
--name="jenkins" \
--rm \
-d \
-p 8080:8080 \
-p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkinsci/blueocean
- 訪問
http://server_ip:8080
完成後續步驟,詳見 安裝後設置嚮導,需要輸入 admin password 的見下文
$ docker logs jenkins # 查看 admin password
# OR
$ docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword
Nginx 可視化管理
安裝 MariaDB(MySQL)
$ yum install -y mariadb-server
$ systemctl start mariadb.service
快速啓動
找個目錄,新建兩個文件,詳見 nginx-proxy-manager
config.json
{
"database": {
"engine": "mysql",
"host": "db",
"name": "npm",
"user": "npm",
"password": "npm",
"port": 3306
}
}
docker-compose.yml
version: "3"
services:
app:
image: jc21/nginx-proxy-manager:latest
restart: always
ports:
- 80:80
- 81:81
- 443:443
volumes:
- ./config.json:/app/config/production.json
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
depends_on:
- db
environment:
# if you want pretty colors in your docker logs:
- FORCE_COLOR=1
db:
image: mariadb:latest
restart: always
environment:
MYSQL_ROOT_PASSWORD: "npm"
MYSQL_DATABASE: "npm"
MYSQL_USER: "npm"
MYSQL_PASSWORD: "npm"
volumes:
- ./data/mysql:/var/lib/mysql
在此目錄下運行 docker-compose up -d
後,訪問 http://server_ip:81
即可
MongoDB
詳見 Install MongoDB Community Edition
- Create a /etc/yum.repos.d/mongodb-org-4.2.repo file
$ vim /etc/yum.repos.d/mongodb-org-4.2.repo # 粘貼入以下內容
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
- Install the MongoDB packages and start MongoDB
$ yum install -y mongodb-org
$ systemctl start mongod.service