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

Linux服务器Python生产环境配置

407次阅读
没有评论

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

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19351
评论数
4
阅读量
7985951
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集

Prometheus:监控系统的部署与指标收集 在云原生体系中,Prometheus 已成为最主流的监控与报警...
星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛NAS-7:手把手教你免费内网穿透-Cloudflare tunnel

星哥带你玩飞牛 NAS-7:手把手教你免费内网穿透 -Cloudflare tunnel 前言 大家好,我是星...
12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换,告别多工具切换

12.2K Star 爆火!开源免费的 FileConverter:右键一键搞定音视频 / 图片 / 文档转换...
安装并使用谷歌AI编程工具Antigravity(亲测有效)

安装并使用谷歌AI编程工具Antigravity(亲测有效)

  安装并使用谷歌 AI 编程工具 Antigravity(亲测有效) 引言 Antigravity...
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的NAS中!

星哥带你玩飞牛 NAS-10:备份微信聊天记录、数据到你的 NAS 中! 大家对「数据安全感」的需求越来越高 ...
开发者福利:免费 .frii.site 子域名,一分钟申请即用

开发者福利:免费 .frii.site 子域名,一分钟申请即用

  开发者福利:免费 .frii.site 子域名,一分钟申请即用 前言 在学习 Web 开发、部署...
星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛NAS-12:开源笔记的进化之路,效率玩家的新选择

星哥带你玩飞牛 NAS-12:开源笔记的进化之路,效率玩家的新选择 前言 如何高效管理知识与笔记,已经成为技术...
自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个AI智能体—跟创业大佬对话

自己手撸一个 AI 智能体 — 跟创业大佬对话 前言 智能体(Agent)已经成为创业者和技术人绕...
150元打造低成本NAS小钢炮,捡一块3865U工控板

150元打造低成本NAS小钢炮,捡一块3865U工控板

150 元打造低成本 NAS 小钢炮,捡一块 3865U 工控板 一块二手的熊猫 B3 工控板 3865U,搭...