如何运行Python Web框架(Ubuntu 18.04)

Python是某些Web开发人员的流行语言。 它具有框架和Django等框架,可以加快边缘Web开发。 本指南将介绍如何在Hostwinds VPS服务器上获取Django框架,以通过Internet服务。

您将需要以下内容才能开始:

  • Hostwinds Linux Cloud VPS服务器
  • SSH访问
  • Ubuntu 18.04
  • 指向服务器的域名

我们将使用:

  • NGINX Web服务器
  • Django Python框架
  • uWSGI充当两者之间的接口。

创建一个用户

系统上的大多数服务不需要以root身份运行,出于安全原因,我们将设置一个非root用户来运行本指南中的其余命令。您可以将此用户打电话。在这里,我正在创建一个名为"用户"的用户:

adduser user

然后应该提示您输入此新用户的密码,创建您可以记住的密码,并使其他人猜测。它也会要求提供一些其他信息,但如果将所有这些字段留空,则不应影响任何内容。现在,我们确实希望这个用户运行一些根命令,所以对于我的"用户",我将把它们添加到一个名为"sudo"的组。

usermod -aG sudo user

这将使用户能够使用用户的密码使用"sudo"以"sudo"为运行正常保护的命令。

现在,使用"退出"命令,并将重新登录到服务器 使用SSH 作为您设置的用户。对于我们刚刚设置的用户,用户名将为"用户",并且当您运行adduser命令时,密码将是您设置的密码。

安装和设置Django

要使用Django,您需要设置一个Python环境。首先使用这些命令将软件更新到最新版本:

sudo apt update && sudo apt upgrade

现在,我们需要一些系统范围的软件。 值得庆幸的是,我们需要的一切都可以从Ubuntu存储库中获得,可以使用APT-GET安装。

sudo apt-get install python3-pip nginx

安装了系统级软件后,我们可以构建私有Django环境。 跑:

mkdir public_html
cd public_html
python3 -m venv django_serve

这将创建一个名为django_serve的文件夹,其中包含一些东西。 它有自己的版本的Python,当我们激活源文件时,使用PIP安装的软件将进入该目录而不是系统范围内。 下一步是激活私有Python文件并安装django。

source django-serve/bin/activate

现在,我们可以安装Django并使用以下命令启动Django项目:

pip install django
django-admin startproject my_site

要允许我们的Web服务器访问Django,我们需要将域添加到允许的主机。 您可以使用命令行文本编辑器在命令行上编辑或编辑文件。 许多人在Linux上可用,我们将在本指南中使用Nano。

使用nano,在mysite目录中编辑文件设置。如此:

nano mysite/settings.py

在文件中,找到读取的行:允许_hosts = []。

在括号中,使用引号添加您的网站的域名:

ALLOWED_HOSTS = ['yourdomain.com', 'www.yourdomain.com']

按下Control-x退出Nano当它要求保存时,按"Y"。

您可以使用deactivate命令返回常规shell。

创建一个新站点后,我们可以将注意力转向设置uWSGI。

uWSGI配置

UWSGI是一个协议软件,可在Python代码和WebServer软件之间进行通信。 为简单起见,我们将只能使用一个UWSGI实例。 我们将为我们的项目设置一个配置文件,并在后台创建一个系统服务以运行它。

首先,我们需要编写一个文件来配置uWSGI。

再一次,我们将使用nano编写文件:

nano mysite.ini

这是让我们开始的准系统INI文件:

#/home/user/public_html/mysite.ini
[uwsgi]
socket = 127.0.0.1:10080
chdir = /home/$USER/public_html/my_site
module = my_site.wsgi:application
processes = 4
threads = 2

使用您使用的用户名替换上面的$用户,并使用域名yuxite。

系统服务配置

设置UWSGI后,我们需要获得Linux在后台自动运行它。大多数现代Linux发行版用系统D软件管理了这一点。您需要创建所谓的"服务文件",以便能够管理UWSGI。

我们将调用我们的文件my_site.service。要打开它并设置服务,请运行:

sudo nano /etc/system/systemd/my_site.service
#/etc/system/systemd/my_site.service
#Tells Systemd about your site
[Unit]
Description=Guide test site.
After=network.target

#Where systemd should start it from.
[Service]
User=$USER
Group=www-data
WorkingDirectory=/home/user/public_html/my_site
Environment="PATH=/home/user/django_serve/bin"
ExecStart=/home/user/public_html/django_serve/bin/uwsgi my_site.ini

#For starting the service at boot.
[Install]
WantedBy=multi-user.target

将上面的$替换为您正在使用的用户名和域名使用域名。

NGINX配置

最后,我们需要设置nginx来收听UWSGI并将请求从Web传递给它。 此配置实际上非常简单。 从编辑新文件并再次使用您的域名替换下面的My_site:

sudo nano /etc/nginx/sites-available/my_site.conf
# /etc/nginx/sites-available

# tell it where to look for django
upstream django_serve {
    server 127.0.0.1:10800;
}

server {
    listen 80; #can be 443 if you have SSL set up.
    root /home/user/public_html/my_site/;
    server_name www.my_site.com;

    location / {
        uwsgi_pass django_serve;
        include uswgi_params;
    }
}

对于nginx来读取和使用此文件,我们需要将其添加到启用站点的目录中。 此命令创建一个软链接。

sudo  ln -s /etc/nginx/sites-available/my_site.conf /etc/nginx/site-enabled

现在,重新加载NGINX:

sudo systemctl restart nginx

现在,尝试访问VPS上的网站。 如果一切顺利,你应该看到这个:

Django的默认网页。

结论

虽然有很多方法可以设置UWSGI和NGINX,但这一个非常简单和简单。 希望,本指南足以让您开始,并一如既往,如果您有任何其他问题或疑虑,您可以联系到我们。

0
订阅评论
提醒
0 评论
内联反馈
查看所有评论