2

最近做小程序服务器的配置,这一篇是服务器配置的记录,方便以后安装配置。

购买服务器

之所以选腾讯云的原因很简单,那就是便宜,选用成都区,最低配置每月只需29¥。
腾讯云 官网注册登录就可以直接购买服务器了。
服务器系统我选择的是 ubuntu。

服务器配置

启动服务后使用新用户(此步骤不是必须)。

新建用户

首先确认使用的是 root 用户登录如果不是使用以下命令切换

sudo su

使用 adduser 命令创建用户

adduser username # username替换为你自己的用户名

接下来的步骤会让你输入密码和个人信息,自己设置就好。

使用usermod 命令将新建的用户添加到 sudo 组。

usermod -aG sudo username

关闭ssh密码登录使用密钥登录

安装openssh

因为是新系统,先执行一下 apt-get update

sudo apt-get update
sudo apt-get install openssh-server

启动ssh服务

可以通过sudo su命令来临时切换到root权限(不是所有的账号都可以切换到root权限,只有在/etc/sudoers文件中符合规则的用户能切换root身份)

sudo su
/etc/init.d/ssh start

使用密钥登录

  • 服务器端生成密钥对:
cd /home/gs # 打开新建的用户目录
mkdir .ssh
cd .ssh
ssh-keygen -b 2048 -t rsa

ssh-keygen的基本用法:

-b后面是指定加密后的字符串长度
-t后面是指定加密算法,常用的加密算法有rsa,dsa等

默认生成的文件如下:

id_rsa.pub  # 公钥文件
id_rsa      # 私钥文件
  • 新建 authorized_keys 文件

将本地机器的 id_rsa.pub 文件内容复制到 authorized_keys 文件

  • 测试使用公钥是否可以登录
ssh name@host  # name 是机器的用户名 host 是机器的地址

关闭ssh密码登录

确认可以通过私钥进行登录后,关闭ssh密码登录。

sudo su
vim /etc/ssh/sshd_config

将 PasswordAuthentication yes修改成PasswordAuthentication no

重启系统

sudo su
reboot

搭建开发环境

安装 zsh

在终端中输入下面命令进行安装:

sudo apt-get install zsh

输入下面命令进行替换zsh替换为你的默认shell:

chsh -s /bin/zsh

重启终端使用 zsh

安装oh-my-zsh

  • 通过curl安装
curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh
  • 通过wget安装
wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - | sh

安装 pip

sudo apt-get install python-pip  # 安装 pip
pip install --upgrade pip
sudo apt-get install python3-pip  # 安装 pip3
pip3 install --upgrade pip

安装 virtualenv

因为我使用 python3 作为开发环境,所以这里使用 pip3

sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper

在 .zshrc 添加以下内容

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

然后执行命令:

source .zshrc

现在可以输入 workon 测试 virtualenvwrapper 是否已经安装成功。

创建虚拟环境

mkvirtualenv py3 -p python3  # -p 参数指定 python 版本

测试虚拟环境

workon py3

安装 ipython

首先进入 py3 虚拟环境

workon py3

使用 pip 安装 ipython

pip install ipython # 安装 ipython 

配置 vim

python vim 配置使用的是 py-vim

需要先安装 ctags和 cmake

sudo apt-get install ctags
sudo apt-get install cmake

然后将 py-vim clone 到服务器

git clone https://github.com/gusibi/py-vim
cd py-vim
sh setup.sh 

使用 Caddy 配置 https

Caddy是一种新的Web服务器,由 go 编写,默认使用 https 协议。caddy 配置简单,容易上手。

安装 caddy 二进制文件

Caddy项目提供了一个安装脚本,可以检索和安装Caddy服务器的二进制文件。 可以执行以下命令直接安装:

curl -s https://getcaddy.com | bash

在安装过程中,脚本将使用sudo获取管理权限,以便将Caddy文件放在系统范围的目录中,因此可能会提示您输入密码。

配置 caddy 必要的目录

Caddy的自动TLS支持和unit文件需要特定的目录和文件权限。 我们将在这一步中创建它们。

首先,创建一个目录,该目录将容纳主要的配置文件Caddyfile 。

# 创建一个目录,该目录将容纳主要的配置文件Caddyfile
sudo mkdir /etc/caddy
# 将此目录的所有者更改为root用户及其组到www-data ,以便Caddy可以读取它
sudo chown -R root:www-data /etc/caddy
# 创建一个空的Caddyfile
sudo touch /etc/caddy/Caddyfile
# 在/etc/ssl创建另一个目录用来存储自动获得的SSL私钥和证书
sudo mkdir /etc/ssl/caddy
# 将此目录的所有者更改为root用户及其组到www-data
sudo chown -R www-data:root /etc/ssl/caddy
# 确保没有人可以通过删除其他人的所有访问权限来读取这些文件。
sudo chmod 0770 /etc/ssl/caddy
# 创建的最终目录是网站的发布目录
sudo mkdir /var/www
# 该目录应由www-data完全拥有。
sudo chown www-data:www-data /var/www
# 创建日志目录
sudo mkdir /var/log/caddy
# 将此目录的所有者更改为root用户及其组到www-data
sudo chown -R www-data:root /var/log/caddy

将 caddy 配置为系统服务

从官方的Caddy存储库下载文件。 curl命令的附加-o参数会将该文件保存在/etc/systemd/system/目录中,并使其对systemd可见。

sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service

reload 系统服务

sudo systemctl daemon-reload

将caddy 设置为开机启动

sudo systemctl enable caddy.service

检查 caddy 服务是否已正式加载

sudo systemctl status caddy.service

允许HTTP和HTTPS连接

Caddy使用HTTP和HTTPS协议提供网站,因此我们需要允许访问相应的端口,以便使网路可以从网路获取

sudo ufw allow http
sudo ufw allow https

现在修改caddy 配置 /etc/caddy/Caddyfile

https://your.domain {  # 启用 https
    gzip
    log /var/log/caddy/access.log  # 指定日志目录
    proxy / http://127.0.0.1:8888 {
        header_upstream Host {host}
        header_upstream X-Real-IP {remote}
        header_upstream X-Forwarded-For {remote}
        header_upstream X-Forwarded-Proto {scheme}
    }
}

保存文件,启动 caddy

sudo systemctl start caddy    # 启动 caddy
sudo systemctl restart caddy  # 重启 caddy
sudo systemctl stop caddy     # 关闭 caddy

现在启动服务,访问 https://your.domain 应该就能看到数据。
日志文件在 /var/log/caddy/ 目录下。

总结

小程序开发需要 https,这里我们使用了 caddy 作为 web 服务器。服务器配置好后可以直接存储为镜像,以后可以直接从镜像开启服务,就不再需要配置环境。

参考链接


最后,感谢女朋友支持。

欢迎关注(April_Louisa) 请我喝芬达
欢迎关注 请我喝芬达

goodspeed
1.7k 声望246 粉丝

公号 April_Louisa 欢迎关注