Construção de ambiente de fundação 0-Python

instalar sob a janela


1. Instale o Python

Baixe python-3.7.0-amd64.exe, instale diretamente na próxima etapa, lembre-se de verificar Add Python 3.7 to PATH
https://www.python.org/downloads/release/python-370/

2. Instale as bibliotecas e serviços exigidos pelo servidor da web

1. Instale o mysql, veja o tutorial de instalação do mysql

安装完测试正常后,使用以下命令部署web的后台数据库框架
mysql -u root -p < schema.sql

2.pip3 instalar jinja2 aiomysql aiohttp

3. Instale pyCharm64

O desenvolvimento do win deve ter um ambiente de desenvolvimento integrado, é muito conveniente usar o pyCharm.

Baixar Pro, crack, assim você pode escrever css, js código de
https://blog.csdn.net/u014044812/article/details/78727496

K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5FIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSUzAiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJXUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IlJEIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUkMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJEQyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkRCIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUk0iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkFDIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiRFBOIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiR08iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJQUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkNMIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSU1UiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifV0sImhhc2giOiI4OTA4Mjg5LzAiLCJncmFjZVBlcmlvZERheXMiOjAsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-Owt3/+LdCpedvF0eQ8635yYt0+ZLtCfIHOKzSrx5hBtbKGYRPFDrdgQAK6lJjexl2emLBcUq729K1+ukY9Js0nx1NH09l9Rw4c7k9wUksLl6RWx7Hcdcma1AHolfSp79NynSMZzQQLFohNyjD+dXfXM5GYd2OTHya0zYjTNMmAJuuRsapJMP9F1z7UTpMpLMxS/JaCWdyX6qIs+funJdPF7bjzYAQBvtbz+6SANBgN36gG1B2xHhccTn6WE8vagwwSNuM70egpahcTktoHxI7uS1JGN9gKAr6nbp+8DbFz3a2wd+XoF3nSJb/d2f/6zJR8yJF8AOyb30kwg3zf5cWw==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG++2+wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog==

Instale no Centos


1. Instale o Python

Instale o compilador gcc e o zlib com antecedência ao compilar o zlib-devel

Baixe o pacote de instalação do Python

cd /usr/local/src
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz

2. Descompacte

tar -zxvf Python-3.7.0.tgz

3. Compile e instale o pacote

cd Python-3.7.0
./configure --prefix=/usr/local/python
make && make install

4. Adicione variáveis ​​de ambiente

#echo PATH='/usr/local/python/bin/:$PATH' >> /etc/profile
<br>#source /etc/profile

Às vezes, ocorre o seguinte erro

ModuleNotFoundError: No module named '_ctypes'

Basta instalar da seguinte maneira:

yum install libffi-devel -y

5. Verifique se é bem-sucedido, execute o seguinte código

python3.7
Python 3.7.0 (default, Nov 27 2018, 10:35:54)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
2. Modifique a versão padrão do python (esta etapa pode não ser necessária, pois fará com que o supervisorctl não inicie, o supervisorctl pode ser executado apenas no python2)

1. Verifique se a versão padrão do python é 2.7.5

python
Python 2.7.5 (default, Jul 13 2018, 13:06:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

2. Modifique o caminho padrão do sistema em Python, pois, ao inserir comandos Python no terminal, o padrão é apontar para Python 2.7.5

mv /usr/bin/python /usr/bin/python-2.7.5
``` 

3.建立新的软连接,指向Python-3.7.0  

ln -s /usr/local/python/bin/python3.7 / usr / bin / python
 `` `

4. Abra um novo terminal, entre no ambiente python através do comando python, você pode ver que apontamos para o nosso python 3.7.0 recém-instalado:

python
Python 3.7.0 (default, Nov 27 2018, 10:35:54)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("test")
test
>>> exit()

5. Após alterar o python padrão, encontrei um erro ao instalar usando o yum

 yum install openssh-server
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                            ^
SyntaxError: invalid syntax

6. Como o yum depende do python, então aqui modificamos o python padrão, devemos modificar o yum, para que ele seja executado na versão antiga:

vi /usr/bin/yum   

将第一行中的“#!/usr/bin/python”   
修改为“#!/usr/bin/python-2.7.5”
保存即可

7. Se houver outros erros, talvez seja necessário modificar os dois arquivos

yum install tree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================================================
 Package                Arch                     Version                        Repository              Size
=============================================================================================================
Installing:
 tree                   x86_64                   1.6.0-10.el7                   base                    46 k

Transaction Summary
=============================================================================================================
Install  1 Package

Total download size: 46 k
Installed size: 87 k
Is this ok [y/d/N]: y
Downloading packages:
  File "/usr/libexec/urlgrabber-ext-down", line 28
    except OSError, e:
                  ^
SyntaxError: invalid syntax


Exiting on user cancel

1. vim /usr/libexec/urlgrabber-ext-down

将/usr/bin/python改为/usr/bin/python-2.7.5。

2. vim /usr/bin/yum-config-manager

解决办法同上: #!/usr/bin/python换成 #!/usr/bin/python-2.7.5 
3. Instale as bibliotecas e serviços exigidos pelo servidor da web

1. Instale o mysql, veja o tutorial de instalação do mysql

安装完测试正常后,使用以下命令部署web的后台数据库框架
mysql -u root -p < schema.sql

2.pip3 instalar jinja2 aiomysql aiohttp

3.yum instala o supervisor nginx do openssh-server dos2unix

As duas ferramentas a seguir são usadas aqui

  • 1. Supervisor: uma ferramenta para monitorar o processo de serviço;

O principal objetivo desta ferramenta é usar o Supervisor para iniciar nosso processo app.py, para que, se houver um problema com o processo app.py, o log seja salvo e reiniciado.

Use echo_supervisord_conf para gerar o arquivo de configuração padrão, que é salvo em supervisord.conf

echo_supervisord_conf > /etc/supervisord.conf

Modifique as duas últimas linhas do /etc/supervisord.conf

[include]
files = /etc/supervisord.d/*.conf

Adicione o arquivo de configuração awesome.conf em /etc/supervisord.d/

[program:awesome]
command     = /srv/awesome/www/app.py
directory   = /srv/awesome/www
user        = root
startsecs   = 3
redirect_stderr         = true
stdout_logfile_maxbytes = 50MB
stdout_logfile_backups  = 10
stdout_logfile          = /srv/awesome/log/app.log

Para ver quem possui as permissões do www a ser executado, configure quem é o usuário no awesome.conf acima.

[root@centos awesome]# ls -l
total 24
drwxr-xr-x 2 root root 4096 Nov 27 17:23 log
lrwxrwxrwx 1 root root   21 Nov 27 16:56 www -> www-18-11-27_16.56.28
drwxr-xr-x 4 root root 4096 Nov 27 16:09 www-18-11-27_16.08.59
drwxr-xr-x 4 root root 4096 Nov 27 16:26 www-18-11-27_16.26.12
drwxr-xr-x 4 root root 4096 Nov 27 16:28 www-18-11-27_16.28.37
drwxr-xr-x 4 root root 4096 Nov 27 16:53 www-18-11-27_16.53.41
drwxr-xr-x 5 root root 4096 Nov 27 17:11 www-18-11-27_16.56.28

Referência: https://www.cnblogs.com/wswang/p/5795766.html

supervisorctl stop program_name  # 停止某一个进程,program_name 为 [program:x] 里的 x

supervisorctl start program_name  # 启动某个进程

supervisorctl restart program_name  # 重启某个进程

supervisorctl stop groupworker:  # 结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)

supervisorctl stop groupworker:name1  # 结束 groupworker:name1 这个进程 (start,restart 同理)

supervisorctl stop all  # 停止全部进程,注:start、restartUnlinking stale socket /tmp/supervisor.sock
、stop 都不会载入最新的配置文件

supervisorctl reload  # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程

supervisorctl update  # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
[root@centos awesome]# supervisorctl stop awesome
awesome: stopped
[root@centos awesome]# supervisorctl start awesome
awesome: started
[root@centos awesome]# supervisorctl status
awesome                          RUNNING   pid 30182, uptime 0:00:13

Teste se o processo supervisord entra em vigor, encontre o processo do kill app.py, você pode descobrir que um novo ID do processo app.py aparece

[root@centos awesome]# ps -aux | grep python
root     11340  0.0  1.4 573812 14660 ?        Ssl  Nov23   0:39 /usr/bin/python -Es /usr/sbin/tuned -l -P
root     30161  0.0  1.6 225936 17072 ?        Ss   17:23   0:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root     30182  0.0  2.6 250196 26612 ?        S    17:28   0:00 python3 /srv/awesome/www/app.py
root     30350  0.0  0.0 112704   972 pts/0    R+   18:00   0:00 grep --color=auto python
[root@centos awesome]# kill 30182
[root@centos awesome]# ps -aux | grep python
root     11340  0.0  1.4 573812 14660 ?        Ssl  Nov23   0:39 /usr/bin/python -Es /usr/sbin/tuned -l -P
root     30161  0.0  1.6 225936 17068 ?        Ss   17:23   0:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root     30364  0.0  2.6 249844 26440 ?        S    18:01   0:00 python3 /srv/awesome/www/app.py
root     30366  0.0  0.0 112704   976 pts/0    R+   18:01   0:00 grep --color=auto python


  • 2. Nginx: servidor web de alto desempenho + responsável pelo proxy reverso;

Usando o próprio assíncio do Python, escrevemos um servidor assíncrono de alto desempenho. No entanto, também precisamos de um servidor Web de alto desempenho, escolha Nginx aqui, ele pode lidar com recursos estáticos e, ao mesmo tempo, como um proxy reverso para enviar solicitações dinâmicas ao processamento de código Python

Combinação dinâmica e estática, nosso servidor python é dinâmico e será modificado; o Nginx é estático, atuando como proxy e mais seguro.Por exemplo, se o servidor python tiver um problema, ele não emitirá informações de depuração diretamente para o cliente devido a negligência. Um servidor Nginx retorna diretamente um erro 502 ao cliente.

[Falha na transferência da imagem da cadeia externa, o site de origem pode ter um mecanismo de cadeia anti-roubo, é recomendável salvar a imagem e enviá-la diretamente (img-I6JFuSpA-1581847379782) (https://cdn.liaoxuefeng.com/cdn/files/attachments/0014328837392452ed92e4e29l38800038) )]

[root@centos ~]# ps -aux | grep nginx
root       737  0.0  0.0 112704   968 pts/0    S+   10:00   0:00 grep --color=auto nginx
root     30865  0.0  0.2 120792  2100 ?        Ss   Nov27   0:00 nginx: master process nginx
nginx    30866  0.0  0.3 121180  3584 ?        S    Nov27   0:00 nginx: worker process

systemctl restart nginx.service / service nginx restart

systemctl stop nginx.service / service nginx stop

systemctl start nginx.service / service nginx start

status systemctl nginx.service / service nginx status

Como não há interface no servidor Alibaba Cloud e não sei se o nginx é iniciado normalmente, posso usar o curl para acessar o conteúdo da página da web e copiá-lo para ganhar para ver se a página html é exibida corretamente.

Como segue:

[root@centos nginx]# curl http://127.0.0.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <title>Test Page for the Nginx HTTP Server on Fedora</title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <style type="text/css">
            /*<![CDATA[*/
            body {
                background-color: #fff;
                color: #000;
                font-size: 0.9em;
                font-family: sans-serif,helvetica;
                margin: 0;
                padding: 0;
            }
            :link {
                color: #c00;
            }
            :visited {
                color: #c00;
            }
            a:hover {
                color: #f50;
            }
            h1 {
                text-align: center;
                margin: 0;
                padding: 0.6em 2em 0.4em;
                background-color: #294172;
                color: #fff;
                font-weight: normal;
                font-size: 1.75em;
                border-bottom: 2px solid #000;
            }
            h1 strong {
                font-weight: bold;
                font-size: 1.5em;
            }
            h2 {
                text-align: center;
                background-color: #3C6EB4;
                font-size: 1.1em;
                font-weight: bold;
                color: #fff;
                margin: 0;
                padding: 0.5em;
                border-bottom: 2px solid #294172;
            }
            hr {
                display: none;
            }
            .content {
                padding: 1em 5em;
            }
            .alert {
                border: 2px solid #000;
            }

            img {
                border: 2px solid #fff;
                padding: 2px;
                margin: 2px;
            }
            a:hover img {
                border: 2px solid #294172;
            }
            .logos {
                margin: 1em;
                text-align: center;
            }
            /*]]>*/
        </style>
    </head>

    <body>
        <h1>Welcome to <strong>nginx</strong> on Fedora!</h1>

        <div class="content">
            <p>This page is used to test the proper operation of the
            <strong>nginx</strong> HTTP server after it has been
            installed. If you can read this page, it means that the
            web server installed at this site is working
            properly.</p>

            <div class="alert">
                <h2>Website Administrator</h2>
                <div class="content">
                    <p>This is the default <tt>index.html</tt> page that
                    is distributed with <strong>nginx</strong> on
                    Fedora.  It is located in
                    <tt>/usr/share/nginx/html</tt>.</p>

                    <p>You should now put your content in a location of
                    your choice and edit the <tt>root</tt> configuration
                    directive in the <strong>nginx</strong>
                    configuration file
                    <tt>/etc/nginx/nginx.conf</tt>.</p>

                </div>
            </div>

            <div class="logos">
                <a href="http://nginx.net/"><img
                    src="nginx-logo.png"
                    alt="[ Powered by nginx ]"
                    width="121" height="32" /></a>

                <a href="http://fedoraproject.org/"><img
                    src="poweredby.png"
                    alt="[ Powered by Fedora ]"
                    width="88" height="31" /></a>
            </div>
        </div>
    </body>
</html>

Se o computador local puder ser acessado normalmente e a rede externa não puder ser acessada, você precisará verificar a configuração do grupo de segurança no Alibaba Cloud para ver se as portas 80 e 443 estão abertas.

https://blog.csdn.net/lzl18918615216/article/details/80049471

https://helpcdn.aliyun.com/document_detail/25471.html

Se ainda assim não funcionar, pode ser necessário configurar as regras do firewall.

https://blog.csdn.net/lzl18918615216/article/details/80049471

Instale no Ubuntu


1. Instale o Python

1 、 atualização apt-get

2 、 atualização apt-get

Instale o python3.5 diretamente e verifique se há um problema na instalação do Distributed sob 3.6

3. apt-get install python3.6

4 、 apt-get install python3.6-dev

O Ubuntu tem o python3.4 instalado por padrão

root@ubuntu:/usr/bin# python3 -V
Python 3.4.3

Então, precisamos alterar o padrão para python3.6

Defina a versão padrão do python:

root@ubuntu:/usr/bin# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode
root@ubuntu:/usr/bin# update-alternatives --list python
/usr/bin/python2.7
root@ubuntu:/usr/bin# python -V
Python 2.7.6

Defina a versão padrão do python3

root@ubuntu:/usr/bin# update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
update-alternatives: using /usr/bin/python3.6 to provide /usr/bin/python3 (python3) in auto mode
root@ubuntu:/usr/bin# update-alternatives --list python3
/usr/bin/python3.6
root@ubuntu:/usr/bin# python3 -V
Python 3.6.2

5. Defina pip:

  • apt-get install python3-pip # Python3
  • apt-get install python-pip # Python2

6. Veja pip3 -V

root@ubuntu:/usr/bin# pip3
Traceback (most recent call last):
  File "/usr/bin/pip3", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1479, in <module>
    register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'

AttributeError: o módulo 'importlib._bootstrap' não tem atributo 'SourceFileLoader'.

Finalmente encontrado: distribut só pode ser instalado na versão python 3.5.x.

7, instale o apt-get install python3, o apt-get install python3.5-dev alterne para 3.5

root@ubuntu:/usr/bin# update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).

  Selection    Path                Priority   Status
------------------------------------------------------------
  0            /usr/bin/python3.6   1         auto mode
  1            /usr/bin/python3.5   1         manual mode
* 2            /usr/bin/python3.6   1         manual mode

Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/python3.5 to provide /usr/bin/python3 (python3) in manual mode
root@ubuntu:/usr/bin# pip3 -V
pip 1.5.4 from /usr/lib/python3/dist-packages (python 3.5)

8. Atualize o pip3

pip3 install --upgrade setuptools
2. Instale as bibliotecas e serviços exigidos pelo servidor da web

1. Instale o mysql, veja o tutorial de instalação do mysql

安装完测试正常后,使用以下命令部署web的后台数据库框架
mysql -u root -p < schema.sql

2.pip3 instalar jinja2 aiomysql aiohttp

criptografia de instalação idna_ssl do pip3

3.apt-get install libssl-dev openssh-server supervisor nginx dos2unix

4. Configure o Supervisor: uma ferramenta para monitorar o progresso do serviço

Escreva um arquivo de configuração do Supervisor awesome.conf e armazene-o no diretório /etc/supervisor/conf.d/:

[program:awesome]

command     = /srv/awesome/www/app.py
directory   = /srv/awesome/www
user        = root
startsecs   = 3

redirect_stderr         = true
stdout_logfile_maxbytes = 50MB
stdout_logfile_backups  = 10
stdout_logfile          = /srv/awesome/log/app.log

Crie uma pasta incrível em srv.

Use fabfile_win.py para sincronizar o projeto com o ubuntu, lembre-se de modificar o ip e o nome do usuário.

env.user = 'linye'
env.sudo_user = 'root'
# env.hosts = ['123.123.123.123']
env.host_string = '192.168.61.128' # 改成你的服务器ip

Crie / srv / awesome / log / pasta

service supervisor start

Quando aparecer unix:///var/run/supervisor.sock no such file, crie um você mesmo, com permissões

touch /var/run/supervisor.sock
chmod 777 /var/run/supervisor.sock

5. Nginx: servidor web de alto desempenho + responsável pelo proxy reverso;

O conteúdo em / etc / nginx / sites-available / default é alterado da seguinte maneira:

server {
    listen      80; # 监听80端口

    root       /srv/awesome/www;
    access_log /srv/awesome/log/access_log;
    error_log  /srv/awesome/log/error_log;

    # server_name awesome.liaoxuefeng.com; # 配置域名

    # 处理静态文件/favicon.ico:
    location /favicon.ico {
        root /srv/awesome/www;
    }

    # 处理静态资源:
    location ~ ^\/static\/.*$ {
        root /srv/awesome/www;
    }

    # 动态请求转发到9000端口:
    location / {
        proxy_pass       http://127.0.0.1:9000;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

/etc/init.d/nginx reload

Publicado 106 artigos originais · elogiou 76 · 130.000 visitas +

Acho que você gosta

Origin blog.csdn.net/Creator_Ly/article/details/93178538
Recomendado
Clasificación