如何使用VirtualHost多域VPS上的Certbot续订Let’s加密SSL

你们都知道Let’s Encrypt为我们提供100%免费的SSL,我们可以使用certbot工具自动创建,授权和续订SSL。我有一篇关于此的帖子:

如何使用来自加密的免费SSL为Nginx配置HTTPS

但是如果您的VPS用于具有VirtualHost配置的多个域,则certbot会卡住,因为它以错误的方式修改了vhost配置文件并使您的文件变得混乱。自动续订也会发生。所以我们必须先手动完成,然后我会指导你以后自动完成。

首先,发出续订命令:

certbot -d config9.com certonly

在此命令中,我确实指定了要续订的域。那你呢。

忽略有关pyasn安装的调试/警告,因为它不会影响我们的续订。

然后,它会问你这样:

How would you like to authenticate with the ACME CA?
 
 1: Apache Web Server plugin (apache)
 2: Spin up a temporary webserver (standalone)
 3: Place files in webroot directory (webroot)
 
 Select the appropriate number [1-3] then [enter] (press 'c' to cancel): 3

选择3将身份验证文件放入域的根文件夹。

接下来,指定域的根目录。

Input the webroot for config9.com: (Enter 'c' to cancel): /path/to/www/of/config9.com

然后,Certbot会向您发送挑战,并通过成功的消息通知您。

你应该对其他域做同样的事情。

<! - INLINE RELATED POSTS 1/3 // - >

相关: 乘客5的性能比较to unicorn / thin / puma / etc

如何在Centos 7上永久禁用SELinux

首先,检查当前的SELinux状态:

sestatus

结果:

SELinux status:                 enabled
SELinuxfs mount:                /sys/fs/selinux
SELinux root directory:         /etc/selinux
Loaded policy name:             targeted
Current mode:                   enforcing
Mode from config file:          enforcing
Policy MLS status:              enabled
Policy deny_unknown status:     allowed
Max kernel policy version:      31

现在编辑selinux配置文件:

vi /etc/selinux/config

设置SELINUX =禁用。结果:

#This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
 SELINUX=disabled
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted

如何在Centos 7中轻松安装Python 3.6

首先,您需要更新系统:

sudo yum update -y

SCL或Software Collections项目是一个开源项目。它的目标是让您在同一系统上安装和运行同一软件的多个版本。要安装Python 3.6 x64,您需要安装SCL:

sudo yum install -y centos-release-scl

现在安装Python 3.6 x64:

sudo yum install -y rh-python36

现在在这台机器上启用Python 3.6虚拟环境:

scl enable rh-python36 bash

要启用它,请在bash配置文件的底部永久添加这些行:

编辑bash_profile。

cd ~ && vi .bash_profile

添加以下行:

#add python36 to the bash permanently
scl enable rh-python36 bash

运行此命令立即应用:

exec bash

要开发Python应用程序,迟早需要开发工具:

sudo yum groupinstall -y "Development Tools"

要安装pipenv,我们需要root权限:

su - root
sudo yum install -y rh-python36

#Upgrade to new version of pip
pip install --upgrade pip 

#now install pipenv
pip install pipenv 

如何在Centos 7/6/5上安装,配置和优化HAProxy

这篇文章向您展示如何安装,配置&amp;在Centos 7/6/5上优化HAProxy以构建高性能负载均衡器,最大并发连接数为10000。

HAProxy是一种可靠的高性能TCP / HTTP负载均衡器。你可以在其官方网站。

此帖的当前稳定版本的HAProxy为1.9 官方文档

安装HAProxy

要安装HAProxy,您可以使用以下命令:

sudo yum install -y haproxy

启动HAProxy:

sudo systemctl start haproxy

停止HAProxy:

sudo systemctl stop haproxy

检查HAProxy状态:

sudo systemctl status haproxy

启用HAProxy在启动时运行

sudo systemctl enable haproxy

配置HAProxy

我们的网络将如下所示:

user -----> haproxy:9000 -------->backend1 (172.16.10.20:5000)
                         -------->backend2 (192.168.5.19:6000)

在此拓扑中,HAProxy将在端口9000上侦听用户请求,所有请求都将转发到2个后端:backend1(172.16.10.20:5000)和backend2(192.168.5.19:6000)

默认情况下,HAProxy主配置文件位于: /etc/haproxy/haproxy.cfg

我们需要配置HAProxy以满足我们的需求。首先,配置HAProxy前端侦听器。在配置文件主要前端部分中编辑前端侦听端口,如下所示:

---------------------------------------------------------------------
 main frontend which proxys to the backends
 ---------------------------------------------------------------------
 frontend  main *:9000
  acl url_static path_beg -i /static /images /javascript /stylesheets
  acl url_static path_end -i .jpg .gif .png .css .js
  use_backend static if url_static
 default_backend app

接下来我们需要修改我们的后端应用程序:

---------------------------------------------------------------------
 round robin balancing between the various backends
 ---------------------------------------------------------------------
 backend app
     balance     roundrobin
     server   backend1  172.16.10.20:5000 check
     server   backend2  192.168.5.19:6000 check
     #server  app1 127.0.0.1:5001 check
     #server  app2 127.0.0.1:5002 check
     #server  app3 127.0.0.1:5003 check
     #server  app4 127.0.0.1:5004 check

在重新启动HAProxy之前,我们需要验证配置文件是否与此命令有关:

 haproxy -c -V -f /etc/haproxy/haproxy.cfg 

在此命令中:

  • -c:检查
  • -V:详细
  • -f:文件

    如果一切顺利,你会看到如下输出:

    Configuration file is valid

    现在我们可以保存配置文件并重新启动HAProxy以应用更改:

    sudo systemctl restart haproxy

    检查HAProxy的状态:

    sudo systemctl status haproxy

    优化HAProxy

    首先,我们需要通过将这些行添加到主配置文件末尾来启用HAProxy统计页面/运行状况检查: /etc/haproxy/haproxy.cfg

    ---------------------------------------------------------------------
     HAProxy Stats at: 171.244.5.195:8088/haproxy?stats
     --------------------------------------------------------------------
     listen  stats   *:8088
             mode            http
             log             global
            maxconn 10     
            timeout client  100s     
            timeout server  100s     
            timeout connect 100s     
            timeout queue   100s     
            stats enable     
            stats hide-version     
            stats refresh 30s     
            stats show-node     
            stats auth admin:config91231passwd    
            stats uri  /haproxy?stats

如何在Linux crontab中运行scl enable rh-python36

因为scl enable rh-python36为Python创建新的虚拟环境,所以在这种环境中,您可以使用已安装的Python 3.6,但在crontab中运行时不会自动应用此虚拟环境。

因此,为了在Linux crontab中使用Python 3.6,您必须在激活的新虚拟环境中运行python文件。

我的run.sh文件:

#!/bin/bash
now=`date`
echo "[$now]Running script now ..."
scl enable rh-python36 "cd /opt/wdir/ && pipenv run python main.py" >> /var/log/logrun.txt
echo "[$now]All done now" 

和我的crontab:

* 7 * * * /opt/wdir/run.sh > /var/log/logrun.txt 

另一种方法是直接在crontab上设置scl:

* 7 * * *  scl enable rh-python36 "cd /opt/wdir/ && pipenv run python main.py" > /var/log/logrun.txt 

更多关于 Linux crontab here.

Happy working!