程序人生 A log of my life

vps 初始化

我一般喜欢用ubuntu 14.04或16.04,通常的初始化动作如下:

修改hostname

修改/etc/hosts 和 /etc/hostname 两个文件,起一个好记的名字,再reboot

修改时区

timedatectl set-timezone Asis/Shanghai

确认防火墙状态

sudo ufw status

工具

apt-get install mosh
apt-get install screen

jre

apt-get install default-jre

nginx

apt-get install nginx

nginx缺省没有完全开放gzip(只对html压缩),修改/etc/nginx/nginx.conf,gzip相关的配置修改为:

gzip on;
gzip_disable "msie6";

gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss application/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;

然后service nginx restart,配置好每个virtual server后 ln -s /etc/nginx/sites-available/xxx /etc/nginx/sites-enabled/

重新加载配置,可以不用restart,只需要reload,也可以用systemctl命令 systemctl reload nginx

cerbot

用于自动续期Letsencrypt的证书,

先安装,其中python3-pyasn1是为了规避执行中的一个告警,安装完之后就会自动添加到/etc/cron.d。

add-apt-repository ppa:certbot/certbot
apt update
apt install python-certbot-nginx
apt install python3-pyasn1

确认nginx已经配置好server block,就可以执行了, cerbot可以同时处理多个域名。

certbot --nginx -d sub1.xxx.com -d sub2.xxx.com

回答完向导就可以了,并且似乎nginx不需要reload即可生效,需要添加域名的化,可以用–expand,需要带上以前的老域名

certbot --nginx --expand -d sub1.xxx.com -d sub2.xxx.com -d sub3.xxx.com

续期可以直接 certbot renew,当然正常情况下应该不需要手动执行,因为安装时应该已经设置好了cron或timer,比如

systemctl list-timers

mariadb

apt-get install mariadb-server
mysql_secure_installation

install之后mariadb应该自动运行起来,mysql_secure_installation是一个向导可以帮助解决缺省情况不安全的mysql配置,建议执行一下。

注意1: 高版本的mysql和mariadb的root的密码验证方式修改了,导致jdbc不兼容,需要使用mysql命令行改一下:

update mysql.user set plugin = 'mysql_native_password' where User='root';
FLUSH PRIVILEGES;

注意2:如果mariadb安装出错,比如script return -1之类的,可以先删除所有mysql组件:

apt remove --purge mysql*
apt remove --purge mariadb*
apt autoremove
apt autoclean

再重新安装,如果还不行,试试reboot

参考

digitalocean网站上有很多文档,写的很好,值得一看。