centos+nginx+uwsgi+Django实现IP+port访问服务器的示例分析(centos,django,nginx,开发技术)

时间:2024-05-04 00:20:37 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

服务器

进入阿里云网站注册账号进行购买,选择地区和服务器系统配置

购买成功之后添加安全组(设置可访问端口,不知道怎么设置的,网站有文档,这里不赘述了)

centos+nginx+uwsgi+Django实现IP+port访问服务器的示例分析

centos+nginx+uwsgi+Django实现IP+port访问服务器的示例分析

购买成功之后已经创建了一个实例,点击远程连接会有一个密码(不记得了可以重启实例进行设置)自己本地做好文档记录

进入远程连接界面后使用root+登录密码(这个密码我是重置实例密码获取到的)进行连接

centos+nginx+uwsgi+Django实现IP+port访问服务器的示例分析

远程连接服务器工具

我使用的是fianlshell

安装

cddir(进入你安装的目录)curl-ofinalshell_install.shwww.hostbuf.com/downloads/finalshell_install.sh;chmod+xfinalshell_install.sh;sudo./finalshell_install.sh

连接

centos+nginx+uwsgi+Django实现IP+port访问服务器的示例分析 centos+nginx+uwsgi+Django实现IP+port访问服务器的示例分析

完成连接进行环境配置

环境配置

python3安装: 参考这篇文章进行安装(编译安装前(make && make install) 先执行命令:yum install libffi-devel -y (解决:ModuleNotFoundError: No module named '_ctypes'))

pip3的使用:

因为已经安装了python3,python3安装目录下已经存在了pip3,很多安装包必须使用pip3进行安装;centos已经安装的python2中存在pip我们需要建立软连接(ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3)

mysql安装

下载mysql源安装包:wgethttp://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm安装mysql源:yumlocalinstallmysql57-community-release-el7-8.noarch.rpm安装mysql源:yuminstallmysql-devel安装MySQL(总计851M,翻墙):yuminstallmysql-community-server执行命令:pip3installmysqlclient启动MYSQL服务:systemctlstartmysqld查看MYSQLd的启动状态:systemctlstatusmysqld开机启动:systemctlenablemysqld修改root本地登录密码:获取密码:grep'temporarypassword'/var/log/mysqld.log进入mysql:mysql-uroot-p设置密码:setpasswordfor'root'@'localhost'=password('你的数据库密码');

* 安装过程中可能出现重置密码失败的情况,我实现的情况是:1、实现mysql免密登录;2、重置密码(可能出现password不存在的情况,更password为authentication_string );3、刷新重置列表:FLUSH PRIVILEGES 4、退出mysql; 5、输入mysql -u root -p。进行密码登录;复制代码

Django安装

执行:pip3 install django

执行:django-admin help 进行验证是否安装成功

uwsgi安装

执行:pip3 install uwsgi

验证:uwsgi --version

注意:如果出现错误需要建立软连接:ln -s /usr/local/python3/bin/uwsgi /usr/bin/uwsgi

nginx安装

执行:yum install nginx

验证:nginx -V

注意:使用yum安装可能出现错误,这是因为安装了python3导致的,这个时候需要去修改文件内容(根据报错信息进行百度,进行错误修改)

注意

上面我们已经将所需要的环境和软件已经安装完毕了,这中间可能出现一些问题,我们需要搜索一些资料进行修改。因为这里每个人遇见的问题可能不一样,因此没有一一列举,还请包涵;

下面我们就创建django项目,实现IP加port对服务器进行访问;

创建Django项目

在根目录下创建Django项目

cd/mkdirprojectscdprojectsdjango-adminstartprojecttest

数据库中创建test 数据库

mysql-uroot-pcreatdatabasetest;

*test项目的settings 文件

DEBUG=FalseALLOWED_HOSTS=['你的服务器IP']INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','test'#你的项目名称]DATABASES={'default':{'ENGINE':'django.db.backends.mysql','NAME':'test','USER':'root','PASSWORD':'mysql登录密码','HOST':'localhost','PORT':'3306',}}

:warning:这里最好是一个本地项目能够正常运行的项目拖入到projects目录下,进行上面的修改就好了

执行数据迁移指令

python3manage.pymakemigrationspython3manage.pymigrate

完成Django项目的创建

nginx.conf文件的配置

文件路径:/etc/nginx/nginx.conf

对下面的内容进行修改

centos+nginx+uwsgi+Django实现IP+port访问服务器的示例分析

这里的IP(如果是阿里云esc服务器的化)要使用服务器的私有IP

nginx的一些操作指令

systemctlstartnginx.service开启systemctlstopnginx.service暂停systemctlreloadnginx.service重启systemctlstatusnginx.service查看状态

注意:在你重复开启nginx的时候,你需要先杀死nginx进程才可以开启nginx不然会有错误。

错误文档查看路径:/var/log/nginx/error.log和/var/log/nginx/access.log

uwsgi的使用和配置

在/projects/test路径下创建uwsgi.ini文件(与manage.py在同一个目录下)

uswgi中的内容如下

[uwsgi]wsgi-file=/server/http_practice/http_practice/wsgi.py#项目目录chdir=/projes/test#指定项目的applicationmodule=test.wsgi:application#指定sock的文件路径#socket=你的IP+端口号(这里的IP要使用服务器(如果是阿里云esc服务器的化)的私有IP,端口要与nginx.conf中写的IP+port一致)#进程个数workers=5pidfile=uwsgi.pid#指定IP端口http=172.18.81.20:80#指定静态文件#static-map=/static=/opt/proj/teacher/static#启动uwsgi的用户名和用户组uid=rootgid=root#启用主进程master=true#自动移除unixSocket和pid文件当服务停止的时候vacuum=true#序列化接受的内容,如果可能的话thunder-lock=true#启用线程enable-threads=true#设置自中断时间harakiri=30#设置缓冲post-buffering=4096#设置日志目录daemonize=uwsgi.log

启动项目

启动nginx:systemctl start nginx.service

启动uwsgi:uwsgi3 --ini uwsgi.ini(若出现端口被占有,输入:sudo fuser -k 8080(你配置的端口)/tcp)

访问你的Django项目

浏览器输入:IP+port+django中设置的url

浏览器访问失败问题查找

uwsgi错误文档查询:/projects/test/uwsgi.log(该文件启动uwsgi会自动生成)nginx错误文档查询:/var/log/nginx/error.log和/var/log/nginx/access.log
 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:centos+nginx+uwsgi+Django实现IP+port访问服务器的示例分析的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:jQuery操作元素追加内容示例下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18