Rumah pembangunan bahagian belakang tutorial php 五步教你实现使用Nginx+uWSGI+Django方法部署Django程序

五步教你实现使用Nginx+uWSGI+Django方法部署Django程序

Jul 29, 2016 am 09:15 AM
django nginx uwsgi

Django的部署可以有很多方式,采用nginx+uwsgi的方式是其中比较常见的一种方式。在这种方式中,我们的通常做法是,将nginx作为服务器最前端,它将接收WEB的所有请求,统一管理请求。nginx把所有静态请求自己来处理(这是NGINX的强项)。然后,NGINX将所有非静态请求通过uwsgi传递给Django,由Django来进行处理,从而完成一次WEB请求。可见,uwsgi的作用就类似一个桥接器。起到桥梁的作用。

NOTE:不使用nginx,只使用uwsgi+django也是可以实现WEB服务的。uwsgi也可以直接处理WEB请求。

为了完成上述的方式部署,我将分成两篇文章来分别进行阐述。
  • 第一步先解决uwsgi与django的桥接。解决在没有nginx的情况下,如何使用uwsgi+DJANGO来实现一个简单的Web服务器

  • 第二步解决uwsgi与Nginx的桥接。通过nginx与uwsgi的桥接,打通nginx与django的连通,从而比较完美的实现django的部署。

  • 本文将分成五步来详细阐述uwsgi+django的部署方式。nginx+uwsgi+django的部署将在下一篇 文章中阐述。本文大纲:
  • 环境介绍
  • 安装uwsgi
  • 测试uwsgi
  • 配置django
  • 连接django和uwsgi,实现简单的Web服务器
  • 环境介绍

  • Ubuntu 12.04.1 LTS
  • django 1.4.2
  • 安装uwsgi

    1.安装pip可以参考这篇文章:http://www.jsxubar.info/install-pip.html2.安装uwsgi
    <spanpalatino linotype new roman color:rgb>$ <spanpalatino linotype new roman color:rgb>export <spanpalatino linotype new roman color:rgb>LDFLAGS<spanpalatino linotype new roman color:rgb>=<spanpalatino linotype new roman color:rgb>"-Xlinker --no-as-needed"<spanpalatino linotype new roman color:rgb>$ pip install uwsgi
    </spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino>
    Salin selepas log masuk

    测试uwsgi

    在你的机器上写一个test.py
    # test.py
    def application(env, start_response):
        start_response('200 OK', [('Content-Type','text/html')])
        return "Hello World"
    
    Salin selepas log masuk
    然后执行shell命令:
    uwsgi --http :8001 --wsgi-file test.py
    
    Salin selepas log masuk
    访问网页:http://127.0.0.1:8001/看在网页上是否有Hello World

    配置django

    NOTE:

    请保证你的django项目是正常使用的。可以使用

    python manage.py runserver 0.0.0.0:8002

    来测试一下你的django项目是否能正常跑起来。

    请保证你的django程序已经关闭。编写django_wsgi.py文件,将其放在与文件manage.py同一个目录下。

    注意: 编写文件时需要注意语句os.environ.setdefault。比如,如果你的项目为mysite,则你的语句应该是 os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    Salin selepas log masuk

    <spanpalatino linotype new roman color:rgb font-style:italic>#!/usr/bin/env python<spanpalatino linotype new roman color:rgb font-style:italic># coding: utf-8<spanpalatino linotype new roman color:rgb font-weight:bold>import<spanpalatino linotype new roman color:rgb font-weight:bold>os<spanpalatino linotype new roman color:rgb font-weight:bold>import<spanpalatino linotype new roman color:rgb font-weight:bold>sys<spanpalatino linotype new roman color:rgb font-style:italic># 将系统的编码设置为UTF8<spanpalatino linotype new roman color:rgb>reload<spanpalatino linotype new roman>(<spanpalatino linotype new roman>sys<spanpalatino linotype new roman>)<spanpalatino linotype new roman>sys<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>setdefaultencoding<spanpalatino linotype new roman>(<spanpalatino linotype new roman color:rgb>'utf8'<spanpalatino linotype new roman>)<spanpalatino linotype new roman>os<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>environ<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>setdefault<spanpalatino linotype new roman>(<spanpalatino linotype new roman color:rgb>"DJANGO_SETTINGS_MODULE"<spanpalatino linotype new roman>,<spanpalatino linotype new roman color:rgb>"mysite.settings"<spanpalatino linotype new roman>)<spanpalatino linotype new roman color:rgb font-weight:bold>from<spanpalatino linotype new roman color:rgb font-weight:bold>django.core.handlers.wsgi<spanpalatino linotype new roman color:rgb font-weight:bold>import<spanpalatino linotype new roman>WSGIHandler<spanpalatino linotype new roman>application<spanpalatino linotype new roman color:rgb>=<spanpalatino linotype new roman>WSGIHandler<spanpalatino linotype new roman>()</spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino>
    Salin selepas log masuk

    连接django和uwsgi,实现简单的Web服务器

    我们假设你的Django项目的地址是/home/work/src/sites/testdjango1/testdjango/mysite,然后,就可以执行以下命令:
    uwsgi --http :8000 --chdir /home/work/src/sites/testdjango1/testdjango/mysite --module django_wsgi
    
    Salin selepas log masuk
    这样,你就可以在浏览器中访问你的Django程序了。所有的请求都是经过uwsgi传递给Django程序的。

    最后:

    关于如何将uwsgi与Nginx连接,可以期待下篇文章 《五步教你实现使用Nginx+Uwsgi+Django方法部署Django程序(下)》最后面,请大家要支持Django中国社区哦,单靠一两个人是不行的,一起推广一下,让Django社区更有力量哈!更有人气哈!推广链接: http://django-china.cn/

    参考、解释及其它

  • wsgi: WSGI是一种Web服务器网关接口。它是一个Web服务器(如nginx)与应用服务器(如uWSGI服务器)通信的一种规范。

    关于WSGI协议看这里:WSGI

  • uWSGI: http://uwsgi-docs.readthedocs.org/en/latest/index.html uWSGI是一个Web服务器,它实现了WSGI协议、uwsgi、http等协议。 Nginx中HttpUwsgiModule的作用是与uWSGI服务器进行交换。

  • uwsgi: uwsgi同WSGI一样是一种通信协议,而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器

    uwsgi协议是一个uWSGI服务器自有的协议,它用于定义传输信息的类型(type of information),每一个uwsgi packet前4byte为传输信息类型描述,它与WSGI相比是两样东西。

    关于uwsgi协议看这里:The uwsgi protocol

  • 有了uWSGI为什么还需要nginx?

    nginx具备优秀的静态内容处理能力,然后将动态内容转发给uWSGI服务器,这样可以达到很好的客户端响应。

  • 参考文献:http://heipark.iteye.com/blog/1750970

  • 当然,单单只有uWSGI是不够的,在实际的部署环境中,Nginx是必不可少的工具。

    在本篇文章中,我将一直延用“N步法”的风格来阐述如何将uWSGI与Nginx做连接来部署Django程序。并在最后,会较为完整的阐述本社区的部署方法。本文大纲:
  • 环境介绍
  • 配置uWSGI
  • 配置Nginx
  • Nginx+uWSGI+Django的实现方式
  • 一些建议
  • 环境介绍

  • Ubuntu 12.04.1 LTS
  • django 1.4.2
  • nginx/1.2.6
  • uWSGI 1.4.4
  • 关于uWSGI的安装可参见上一篇文章 上一篇文章《五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)》我们假定你已经安装好Nginx了。

    配置uWSGI

    在上一篇文章《五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)》中,我们是直接使用命令行来启动uWSGI,在实际部署环境中,我们常用的是配置文件的方式,而非命令行的方式。我的一般做法是用命令行来测试是否uWSGI安装成功,然后用配置文件来真正部署。另外,为了实现Nginx与uWSGI的连接,两者之间将采用soket来通讯方式。在本节中,我们将使用uWSGI配置文件的方式来改进uWSGI的启动方式。假定你的程序目录是 /home/work/src/sites/testdjango1/testdjango/mysite我们将要让Nginx采用8077端口与uWSGI通讯,请确保此端口没有被其它程序采用。注意,请确定你在上一节《五步教你实现使用Nginx+uWSGI+Django方法部署Django程序(上)》中的django_wsgi.py文件已经存在了。新建一个XML文件:djangochina_socket.xml,将它放在 /home/work/src/sites/testdjango1/testdjango/mysite 目录下:
    <spanpalatino linotype new roman color:rgb font-weight:bold><uwsgi><spanpalatino linotype new roman color:rgb font-weight:bold><socket>:8077<spanpalatino linotype new roman color:rgb font-weight:bold></spanpalatino></socket><spanpalatino linotype new roman color:rgb font-weight:bold><chdir>/home/work/src/sites/testdjango1/testdjango/mysite<spanpalatino linotype new roman color:rgb font-weight:bold></spanpalatino></chdir><spanpalatino linotype new roman color:rgb font-weight:bold><module>django_wsgi<spanpalatino linotype new roman color:rgb font-weight:bold></spanpalatino></module><spanpalatino linotype new roman color:rgb font-weight:bold><processes>4<spanpalatino linotype new roman color:rgb font-weight:bold></spanpalatino></processes><spanpalatino linotype new roman color:rgb font-style:italic><!-- 进程数 --><spanpalatino linotype new roman color:rgb font-weight:bold><daemonize>uwsgi.log<spanpalatino linotype new roman color:rgb font-weight:bold></spanpalatino></daemonize><spanpalatino linotype new roman color:rgb font-weight:bold></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></uwsgi></spanpalatino>
    Salin selepas log masuk
    在上面的配置中,我们使用 uwsgi.log 来记录日志,开启4个进程来处理请求。这样,我们就配置好uWSGI了。

    配置Nginx

    我们假设你将会把Nginx程序日志放到你的目录/home/work/var/test/logs/下,请确保该目录存在。我们假设你的Django的static目录是/home/work/src/sites/testdjango1/testdjango/collectedstatic/ , media目录是/home/work/src/sites/testdjango1/testdjango/public/media/,请确保这些目录存在。我们假设你的域名是 www.you.com (在调试时你可以设置成你的机器IP)我们假设你的域名端口是 80(在调试时你可以设置一些特殊端口如 8070)基于上面的假设,我们为conf/nginx.conf添加以下配置
    <spanpalatino linotype new roman color:rgb font-weight:bold>server<spanpalatino linotype new roman>{<spanpalatino linotype new roman>listen<spanpalatino linotype new roman color:rgb>80<spanpalatino linotype new roman>;<spanpalatino linotype new roman>server_name<spanpalatino linotype new roman>www<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>you<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>com<spanpalatino linotype new roman>;<spanpalatino linotype new roman>access_log<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>home<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>work<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>var<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>test<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>logs<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>access<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>log<spanpalatino linotype new roman>;<spanpalatino linotype new roman>error_log<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>home<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>work<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>var<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>test<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>logs<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>error<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>log<spanpalatino linotype new roman>;<spanpalatino linotype new roman color:rgb>#charse<spanpalatino linotype new roman>t<spanpalatino linotype new roman>koi8<spanpalatino linotype new roman color:rgb>-<spanpalatino linotype new roman>r<spanpalatino linotype new roman>;<spanpalatino linotype new roman color:rgb>#access<spanpalatino linotype new roman>_log<spanpalatino linotype new roman>logs<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>host<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>access<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>log<spanpalatino linotype new roman>main<spanpalatino linotype new roman>;<spanpalatino linotype new roman>location<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>{<spanpalatino linotype new roman><strong>include</strong><spanpalatino linotype new roman>uwsgi_params<spanpalatino linotype new roman>;<spanpalatino linotype new roman>uwsgi_pass<spanpalatino linotype new roman color:rgb>127<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman color:rgb>0<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman color:rgb>0<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman color:rgb>1<spanpalatino linotype new roman color:rgb>:<spanpalatino linotype new roman color:rgb>8077<spanpalatino linotype new roman>;<spanpalatino linotype new roman>}<spanpalatino linotype new roman color:rgb>#error_page<spanpalatino linotype new roman color:rgb font-weight:bold>404<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman color:rgb font-weight:bold>404<spanpalatino linotype new roman color:rgb font-weight:bold>.html<spanpalatino linotype new roman color:rgb>;<spanpalatino linotype new roman>#<spanpalatino linotype new roman color:rgb font-weight:bold>redirect<spanpalatino linotype new roman color:rgb font-weight:bold>server<spanpalatino linotype new roman color:rgb font-weight:bold>error<spanpalatino linotype new roman color:rgb font-weight:bold>pages<spanpalatino linotype new roman color:rgb font-weight:bold>to<spanpalatino linotype new roman color:rgb font-weight:bold>the<spanpalatino linotype new roman color:rgb font-weight:bold>static<spanpalatino linotype new roman color:rgb font-weight:bold>page<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman color:rgb font-weight:bold>50x<spanpalatino linotype new roman color:rgb font-weight:bold>.html<spanpalatino linotype new roman>#<spanpalatino linotype new roman color:rgb font-weight:bold>error_page<spanpalatino linotype new roman color:rgb font-weight:bold>500<spanpalatino linotype new roman color:rgb font-weight:bold>502<spanpalatino linotype new roman color:rgb font-weight:bold>503<spanpalatino linotype new roman color:rgb font-weight:bold>504<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman color:rgb font-weight:bold>50x<spanpalatino linotype new roman color:rgb font-weight:bold>.html<spanpalatino linotype new roman color:rgb>;<spanpalatino linotype new roman color:rgb font-weight:bold>location<spanpalatino linotype new roman color:rgb>=<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman color:rgb font-weight:bold>50x<spanpalatino linotype new roman color:rgb font-weight:bold>.html<spanpalatino linotype new roman>{<spanpalatino linotype new roman>root<spanpalatino linotype new roman>html<spanpalatino linotype new roman>;<spanpalatino linotype new roman>}<spanpalatino linotype new roman color:rgb font-weight:bold>location<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman color:rgb font-weight:bold>static<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>{<spanpalatino linotype new roman>alias<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>home<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>work<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>src<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>sites<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>testdjango1<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>testdjango<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>collectedstatic<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>;<spanpalatino linotype new roman>index<spanpalatino linotype new roman>index<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>html<spanpalatino linotype new roman>index<spanpalatino linotype new roman color:rgb>.<spanpalatino linotype new roman>htm<spanpalatino linotype new roman>;<spanpalatino linotype new roman>}<spanpalatino linotype new roman color:rgb font-weight:bold>location<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman color:rgb font-weight:bold>media<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>{<spanpalatino linotype new roman>alias<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>home<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>work<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>src<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>sites<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>testdjango1<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>testdjango<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>public<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>media<spanpalatino linotype new roman color:rgb>/<spanpalatino linotype new roman>;<spanpalatino linotype new roman>}<spanpalatino linotype new roman>}</spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino></spanpalatino>
    Salin selepas log masuk
    在上面的设置后,可以让Nginx来处理静态文件(/static/ 和 /media/ )。非静态文件请求Nginx会发给 socket 8077,然后让uWSGI来进行处理。

    Nginx+uWSGI+Django的实现方式

    在完成上面配置后,需要按以下步骤来做:
  • 重启Nginx服务器,以使Nginx的配置生效。

    nginx -s  reload
    
    Salin selepas log masuk

    重启后检查Nginx日志是否有异常。

  • 启动uWSGI服务器

    cd /home/work/src/sites/testdjango1/testdjango/mysite
    
    uwsgi -x djangochina_socket.xml
    
    Salin selepas log masuk

    检查日志 uwsgi.log 是否有异常发现。

  • 访问服务

    基于上面的假设你的域名是www.you.com

    因此,我们访问 www.you.com,如果发现程序与 单独使用Django启动的程序一模一样时,就说明成功啦!

  • 关闭服务的方法

    将uWSGi进程杀死即可。

  • 一些建议

  • uWSG配置文件的进程数,可以根据实际情况分配。不要开得太大,否则机器可能会内存耗用太高。一般来说,对于一个小社区来说,4个进程已经足够了。

  • 一般情况下,可以编写一下 stop.sh 脚本 来关闭uWSGI。

  • 以上就介绍了五步教你实现使用Nginx+uWSGI+Django方法部署Django程序,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    AI Hentai Generator

    AI Hentai Generator

    Menjana ai hentai secara percuma.

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Cara mengkonfigurasi nama domain pelayan awan di nginx Cara mengkonfigurasi nama domain pelayan awan di nginx Apr 14, 2025 pm 12:18 PM

    Cara mengkonfigurasi nama domain Nginx pada pelayan awan: Buat rekod yang menunjuk ke alamat IP awam pelayan awan. Tambah blok hos maya dalam fail konfigurasi Nginx, menyatakan port pendengaran, nama domain, dan direktori akar laman web. Mulakan semula nginx untuk memohon perubahan. Akses konfigurasi ujian nama domain. Nota Lain: Pasang sijil SSL untuk membolehkan HTTPS, pastikan firewall membenarkan trafik port 80, dan tunggu resolusi DNS berkuatkuasa.

    Cara memeriksa sama ada nginx dimulakan Cara memeriksa sama ada nginx dimulakan Apr 14, 2025 pm 01:03 PM

    Bagaimana untuk mengesahkan sama ada nginx dimulakan: 1. Gunakan baris arahan: status sistem sistem nginx (linux/unix), netstat -ano | Findstr 80 (Windows); 2. Periksa sama ada port 80 dibuka; 3. Semak mesej permulaan Nginx dalam log sistem; 4. Gunakan alat pihak ketiga, seperti Nagios, Zabbix, dan Icinga.

    Cara membuat cermin di Docker Cara membuat cermin di Docker Apr 15, 2025 am 11:27 AM

    Langkah -langkah untuk membuat imej Docker: Tulis Dockerfile yang mengandungi arahan membina. Bina imej di terminal, menggunakan arahan membina Docker. Tag imej dan tetapkan nama dan tag menggunakan arahan tag docker.

    Cara memeriksa versi nginx Cara memeriksa versi nginx Apr 14, 2025 am 11:57 AM

    Kaedah yang boleh menanyakan versi nginx adalah: gunakan perintah nginx -v; Lihat arahan versi dalam fail nginx.conf; Buka halaman ralat Nginx dan lihat tajuk halaman.

    Cara memulakan pelayan nginx Cara memulakan pelayan nginx Apr 14, 2025 pm 12:27 PM

    Memulakan pelayan Nginx memerlukan langkah-langkah yang berbeza mengikut sistem operasi yang berbeza: Sistem Linux/Unix: Pasang pakej Nginx (contohnya, menggunakan apt-get atau yum). Gunakan SystemCTL untuk memulakan perkhidmatan Nginx (contohnya, SUDO SystemCTL Mula Nginx). Sistem Windows: Muat turun dan pasang fail binari Windows. Mula Nginx menggunakan nginx.exe executable (contohnya, nginx.exe -c conf \ nginx.conf). Tidak kira sistem operasi yang anda gunakan, anda boleh mengakses IP pelayan

    Bagaimana untuk memeriksa sama ada Nginx dimulakan? Bagaimana untuk memeriksa sama ada Nginx dimulakan? Apr 14, 2025 pm 12:48 PM

    Di Linux, gunakan arahan berikut untuk memeriksa sama ada nginx dimulakan: Hakim status SistemCTL Nginx berdasarkan output arahan: Jika "Aktif: Aktif (Running)" dipaparkan, Nginx dimulakan. Jika "aktif: tidak aktif (mati)" dipaparkan, nginx dihentikan.

    Cara memulakan nginx di linux Cara memulakan nginx di linux Apr 14, 2025 pm 12:51 PM

    Langkah -langkah untuk memulakan Nginx di Linux: Periksa sama ada Nginx dipasang. Gunakan SistemCTL Mula Nginx untuk memulakan perkhidmatan Nginx. Gunakan SistemCTL Dayakan NGINX untuk membolehkan permulaan automatik Nginx pada permulaan sistem. Gunakan Status SistemCTL Nginx untuk mengesahkan bahawa permulaan berjaya. Lawati http: // localhost dalam pelayar web untuk melihat halaman selamat datang lalai.

    Cara menyelesaikan nginx403 Cara menyelesaikan nginx403 Apr 14, 2025 am 10:33 AM

    Bagaimana untuk memperbaiki kesilapan dilarang nginx 403? Semak keizinan fail atau direktori; 2. Semak .htaccess File; 3. Semak fail konfigurasi nginx; 4. Mulakan semula nginx. Penyebab lain yang mungkin termasuk peraturan firewall, tetapan selinux, atau isu aplikasi.

    See all articles