阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux服务器Python生产环境配置

104次阅读
没有评论

共计 3564 个字符,预计需要花费 9 分钟才能阅读完成。

经常我们做 Linux 运维配置的时候会重复查找一些教程,所以打算从运维层面开始做一些知识积累。先做一些简单的整理,后期再根据需求持续更新。

本文记录 Debian Linux 服务器下 Python 生产环境的配置流程和注意事项。

初始化操作系统:Debian Linux

1. 修改 root 用户密码

对一台刚安装好的 Debian 系统,首先应该去修改它的 root 用户密码。使用 root 用户登录远程主机。

ssh root@xxx.xxx.xxx.xxx

这时,命令行会出现警告,表示这是一个新的地址,存在安全风险。键入 yes,表示接受。然后,就应该可以顺利登入远程主机。

接着,修改 root 用户的密码。

passwd

2. 新建用户

首先,添加一个用户组(这里假定为 admin 用户组)。

addgroup admin

然后,添加一个新用户(假定为 foo)。

useradd -d /home/foo -s /bin/bash -m foo 

上面命令中,参数 d 指定用户的主目录,参数 s 指定用户的 shell,参数 m 表示如果该目录不存在,则创建该目录。

接着,设置新用户的密码。

passwd foo 

将新用户(foo)添加到用户组(admin)。

usermod -a -G admin foo 

Debian 系统默认没有 sudo,所以需要先安装 sudo 才行。

apt-get install sudo

接着,为新用户设定 sudo 权限。

visudo 

visudo 命令会打开 sudo 设置文件 /etc/sudoers,找到下面这一行。

root    ALL=(ALL:ALL) ALL

在这一行的下面,再添加一行。

root    ALL=(ALL:ALL) ALL
foo    ALL=(ALL) NOPASSWD: ALL

上面的 NOPASSWD 表示,切换 sudo 的时候,不需要输入密码,我喜欢这样比较省事。如果出于安全考虑,也可以强制要求输入密码。

root    ALL=(ALL:ALL) ALL
foo    ALL=(ALL:ALL) ALL

然后,先退出 root 用户的登录,再用新用户的身份登录,检查到这一步为止,是否一切正常。

exit
ssh foo@xxx.xxx.xxx.xxx

3.SSH 设置

首先,确定本机有 SSH 公钥(一般是文件 ~/.ssh/id_rsa.pub),如果没有的话,使用 ssh-keygen 命令生成一个(可参考我写的 SSH 教程)。

在本机上另开一个 shell 窗口,将本机的公钥拷贝到服务器的 authorized_keys 文件。

cat ~/.ssh/id_rsa.pub | ssh foo@xxx.xxx.xxx.xxx 'mkdir -p .ssh && cat - >> ~/.ssh/authorized_keys'

# 或者在服务器端,运行下面命令

echo "ssh-rsa [your public key]" > ~/.ssh/authorized_keys

然后,进入服务器,编辑 SSH 配置文件 /etc/ssh/sshd_config

sudo cp /etc/ssh/sshd_config ~
sudo nano /etc/ssh/sshd_config

在配置文件中,将 SSH 的默认端口 22 改掉,可以改成从 1025 到 65536 之间的任意一个整数(这里假定为 25000)。

Port 25000

然后,检查几个设置是否设成下面这样,确保去除前面的 #号。

Protocol 2

PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

UseDNS no

上面主要是禁止 root 用户登录,以及禁止用密码方式登录。
接着,在配置文件的末尾,指定允许登陆的用户。

AllowUsers bill

保存后,退出文件编辑。
接着,改变 authorized_keys 文件的权限。

sudo chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh/

然后,重启 SSHD。

sudo service ssh restart

# 或者

sudo /etc/init.d/ssh restart

下面的一步是可选的。在本机~/.ssh 文件夹下创建 config 文件,内容如下。

Host s1
HostName xxx.xxx.xxx.xxx
User foo
Port 25000

最后,在本机另开一个 shell 窗口,测试 SSH 能否顺利登录。

ssh s1

4. 运行环境配置

首先,检查服务器的区域设置。

locale

如果结果不是 en_US.UTF-8,建议都设成它。

sudo locale-gen en_US en_US.UTF-8 en_CA.UTF-8
sudo dpkg-reconfigure locales

然后,更新软件。

sudo apt-get update
sudo apt-get upgrade

最后,再根据需要,做一些安全设置,比如搭建防火墙,关闭 HTTP、HTTPs、SSH 以外的端口,再比如安装 Fail2Ban,详细可参考这篇《Securing a Linux Server》。

安装常用软件

安装常用包

sudo apt-get install curl git

安装 VIM

sudo apt-get install vim

#下载配置
curl https://gist.githubusercontent.com/fengluo/3749890/raw >> ~/.vimrc

我们使用 Vundle 来管理安装 VIM 插件

git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim

安装好了之后可以打开 vim 运行

:PluginInstall

也可以直接从命令行安装配置

vim +PluginInstall +qall

部署 Python 环境

sudo apt-get install python-pip python-dev build-essential

# 更新 pip
sudo pip install --upgrade pip

安装 virtualenv

virtualenv 可以帮助我们创建一个隔离的 python 环境。各个 python 应用之间应该使用独立的 python 环境,保证不会互相干扰。

sudo pip install virtualenv

安装 supervisor

Supervisor 是个强大的进程管理工具,帮助用户监控和控制系统进程。

pip install supervisor

# 如果不会写配置,可以用下面的命令来生成一个配置
echo_supervisord_conf > /etc/supervisord.conf

安装 MySQL

sudo apt-get install mysql-server

sudo apt-get install libmysqlclient-dev

安装 Nginx

sudo apt-get install nginx

————————————– 分割线 ————————————–

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

Nginx 日志过滤 使用 ngx_log_if 不记录特定日志 http://www.linuxidc.com/Linux/2014-07/104686.htm

————————————– 分割线 ————————————–

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计3564字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中