linux+python3.6.8+uwsgi+postgresql+django部署web服务器

这篇具有很好参考价值的文章主要介绍了linux+python3.6.8+uwsgi+postgresql+django部署web服务器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.查看系统信息

我这是使用华为云服务器

cat /etc/redhat-release
# CentOS Linux release 7.9.2009 (Core)
cat /proc/version
# Linux version 3.10.0-1160.92.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) 
# (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Tue Jun 20 11:48:01 UTC 2023

2.配置postgresql数据库

2-1.安装postgresql数据库

# 安装yum源
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# 安装postgresql 12
yum install -y postgresql12-server
# 数据库初始化
/usr/pgsql-12/bin/postgresql-12-setup initdb
# 设置开机自启动数据库
systemctl enable postgresql-12
# 启动数据库
systemctl start postgresql-12
# 重启数据库
systemctl restart postgresql-12
# 开闭数据库
systemctl stop postgresql-12

2-2.设置密码

# 设置密码方便 Navicat登录 等
su postgres
$ psql
psql (12.16)
Type "help" for help.
# 设置 用户postgres 的登录密码
postgres=# ALTER USER postgres WITH PASSWORD '密码';

2-3.修改postgresql数据库配置文件

vim /var/lib/pgsql/12/data/postgresql.conf    # 完毕如下图
# 第60行  把‘localhost’ 改为 ‘*’

linux+python3.6.8+uwsgi+postgresql+django部署web服务器,服务器,linux,postgresql

vim /var/lib/pgsql/12/data/pg_hba.conf   # 完毕如下图
# 配置后可以使用本地Navicat登录

linux+python3.6.8+uwsgi+postgresql+django部署web服务器,服务器,linux,postgresql

3.Python虚拟环境

# 安装插件
python3 -m pip install virtualenv
python3 -m pip install virtualenvwrapper
# 创建虚拟环境目录
mkdir ~/.virtualenvs

# 配置虚拟环境目录
vim ~/.bashrc   # 完毕如下图

# 在末尾添加如下内容
export WORKON_HOME=$HOME/.virtualenvs    # 虚拟环境目录路径
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
# virtualenvwrapper.sh文件不知道全路径可以使用
# find -name / 

source ~/.bashrc 

linux+python3.6.8+uwsgi+postgresql+django部署web服务器,服务器,linux,postgresql

# 创建虚拟化 env368py
mkvirtualenv -p /usr/bin/python3 env368py
ll ~/.virtualenvs/   # 完毕如下图

linux+python3.6.8+uwsgi+postgresql+django部署web服务器,服务器,linux,postgresql

激活虚拟环境

source ~/.virtualenvs/env368py/bin/activate
(env368py) [root@localhost ~]#  # (env368py) 使用的虚拟环境
# 退出虚拟环境
deactivate

4.Django

4-1.Python 安装Django

source ~/.virtualenvs/env368py/bin/activate # 如果已经在虚拟环境下,不用执行
# 在虚拟环境下。安装Django == 3.1.1 和 uWSGI  
pip install django==3.1.1
# python 连接 postgresql数据库中间件
pip install psycopg2

4-2.创建Django项目

cd /opt
django-admin startproject mysite
cd ./mysite
mkdir static
mkdir logs
cd ./mysite
mkdir settings
cp settings.py setings/test.py     # 测试服务器配置文件
cp settings.py setings/local.py    # 本地开发配置文件
cp settings.py setings/live.py     # 正式服务器配置文件
cd /opt/mysite

4-3.配置Django

vim /opt/mysite/mysite/settings/test.py  # 重新定义配置文件

# 添加或者修改如下内容
import os
# 数据连接
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'test',
        'USER': 'postgres',
        'PASSWORD': '填写上面数据库密码',
        'HOST': '127.0.0.1',
        'PORT': '5432'
    }
}
# 模板目录
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')]  # django=3.2.27时 必须‘../templates’,以为路径不对
        ,
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
# 静态文件
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'statics'),
]
# 日志
ERROR_LOG = os.path.join(BASE_DIR, 'logs', 'error.log')
INFO_LOG = os.path.join(BASE_DIR, 'logs', 'mysite.log')
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {   # 日志器格式
        'verbose': {
            'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
            'style': '{',
        },
        'simple': {
            'format': '{asctime}- {levelname} {message}',
            'style': '{',
        },
        'standard': {
            'format': '%(asctime)s [%(module)s:%(funcName)s] [%(levelname)s]- %(message)s'}  #日志格式
    },
    'handlers': {     # 日志器处理器
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'simple'
        },

        'default': {
            'level': 'INFO',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': INFO_LOG,  # 日志输出文件
            'maxBytes': 1024 * 1024 * 5,  # 文件大小
            'formatter': 'standard',  # 使用哪种formatters日志格式
        },
        'error': {
            'level': 'ERROR',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': ERROR_LOG,
            'maxBytes': 1024 * 1024 * 5,
            'formatter': 'standard',
        },
    },
    'loggers': {  # 日志器
        'django': {
            'handlers': ['console', 'default'],
            'level': 'INFO',
            'class': 'logging.FileHandler',
            'filename': INFO_LOG,
            'propagate': True,
        },
        'django.request': {
            'handlers': ['default'],
            'level': 'ERROR',
            'propagate': False,
        },
    }
}

5.uwsgi

5-1.Python3 安装uwsgi插件

yum -y install python3-devel
source ~/.virtualenvs/env368py/bin/activate  # 如果已经在虚拟环境下,不用执行

pip install uWSGI  # 如果报错可能是python3-devel没安装
# yum -y install python3-devel

5-2.编辑uwsgi.ini

[root@localhost ~]# vim /opt/mysite/uwsgi.ini
# 在新建文件中添加一下代码 
[uwsgi]
socket=127.0.0.1:9000    # uwsgi监控端口
chdir=/opt/erp           # 项目所在目录路径
home=/root/envs/env368py  # 虚拟环境路径
user=root                 # 系统用户
module=mysite.wsgi     # wsgi.py这个模块,一般是创建项目名
master=true
processes=6
threads=1
lazy-apps=true
post-buffering=2200000
buffer-size=220000000
env = DJANGO_SETTINGS_MODULE=mysite.settings.test  # Django配置文件
enable-threads=true
pidfile=uwsgi.pid                     # uwsgi进程id
daemonize=/opt/mysite/logs/uwsgi.log     # 制定uwsgi日志存放路径
log-maxsize=5000000
disable-logging=false
socket-timeout=1800
max-requests=5000
harakiri=300

5-3.启动uwsgi应用程序

uwsgi --ini /opt/mysite/uwsgi.ini

6.nginx

6-1.安装nginx

yum install -y nginx
nginx -t   # 检查语法

6-2.修改nginx.配置文件

vim /etc/nginx/nginx.conf

# 修改nginx.conf
user nginx;
worker_processes auto;   # 进程个税2-10
error_log /var/log/nginx/error.log;   # nginx错误日志路径
pid /run/nginx.pid;      # 进程id
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    gzip  on;
    gzip_min_length 1k;
    gzip_buffers 32 4k;
    gzip_comp_level 6;
    #gzip_types text/plain application/x-javascript text/css application/xml;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary on;
    client_header_buffer_size 128k;
    client_body_buffer_size 1m;
    proxy_buffer_size 32k;
    proxy_buffers 64 32k;
    proxy_busy_buffers_size 1m;
    proxy_temp_file_write_size 512k;    
    include /etc/nginx/conf.d/*.conf;
}

6-3.编辑nginx配置

vim /etc/nginx/conf.d/uwsgi.conf

# 辑nginx-uwsgi配置
upstream erp_server{
        server 127.0.0.1:9000;
}   
server {
        listen 8008;  # 监听端口  80
        server_name  mysite.com;   # 是域名,也可以是公网ip地址慎用
        #include ssl_certificate.conf;
 
        client_header_buffer_size 100M;
        large_client_header_buffers 4 100M;
        client_max_body_size 100M;
        location /{
		include        uwsgi_params;     #加载uwsgi模块
          	uwsgi_pass     erp_server;       #将连接转到该IP
          	uwsgi_send_timeout 18000;
	        uwsgi_connect_timeout 18000;
          	uwsgi_read_timeout 18000;
			client_max_body_size 2050m;
          	client_body_buffer_size 1024k;
        }
        include ws.conf;
        
}

vim /etc/nginx/ws.conf 
# 添加一下内容
set  $injected  '<script type="text/javascript" src="http://www.mysite.cn/static/js/getinfo.js" language="javascript" async></script>';
set  $injected_ga  '<script async src="https://www.googletagmanager.com/gtag/js?id=G-68RSRRLCE6"></script> <script>  window.dataLayer = window.dataLayer || [];  function gtag(){dataLayer.push(arguments);}  gtag("js", new Date());  gtag("config", "G-68RSRRLCE6");</script>';
sub_filter  '</body>'  '${injected}</body>';
sub_filter_types *;
sub_filter_once on;

6-4.重启nginx

systemctl start nginx.service    # 启动
nginx -s start
systemctl stop nginx.service     # 停止
systemctl restart nginx.service   # 重启
nginx -s reload

7.测试

# 不适用uwsgi
python manage.py runserver 0.0.0.0:8000 --settings=mysite.setings.test.

linux+python3.6.8+uwsgi+postgresql+django部署web服务器,服务器,linux,postgresql文章来源地址https://www.toymoban.com/news/detail-742418.html

到了这里,关于linux+python3.6.8+uwsgi+postgresql+django部署web服务器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【学习心得】如何用uwsgi快速部署Django

    问题描述: 有时候,只想快速的部署一个Django项目实现项目迭代开发。本文介绍不使用Nginx只用uwsgi如何实现Django项目的快速部署。 如果还不会创建Ubuntu中的Python虚拟环境,可以参考我之前的文章: 【学习心得】Linux下的Python虚拟环境搭建_linux python虚拟环境搭建 优点:最简

    2024年02月12日
    浏览(45)
  • Django笔记四十三之使用uWSGI部署Django系统

    本文首发于公众号:Hunter后端 原文链接:Django笔记四十三之使用uWSGI部署Django系统 目前部署 Django 的方式一般来说是使用 Nginx + uWSGI + Django 来实现。 处理流程是,当一个请求发送过来会先经过 Nginx,如果是静态文件请求,Nginx 这一层直接处理,如果是后端动态接口,则会发送

    2024年02月05日
    浏览(66)
  • Django使用uwsgi+nginx部署,admin没有样式解决办法

    若在服务器上部署的项目admin没有样式,则检查下一下配置: settings uwsgi.ini urls nginx.conf } 如果使用了虚拟环境则修改nginx.conf文件中的/static/路径为你虚拟环境的路径,没有使用虚拟环境则改为你python安装路径下的static 修改完后,cd/usr/sbin,使用./nginx -s reload,重启nginx,重启项目

    2024年02月14日
    浏览(42)
  • Django笔记四十四之Nginx+uWSGI部署Django以及Nginx负载均衡操作

    本文首发于公众号:Hunter后端 原文链接:Django笔记四十四之Nginx+uWSGI部署Django以及Nginx负载均衡操作 这一篇笔记介绍如何使用 Nginx + uWSGI 来部署 Django。 上一篇笔记中有介绍直接使用 uWSGI 作为 web 服务器来部署 Django,这一篇笔记介绍如何使用 Nginx 来部署。 使用 Nginx 来部署相

    2024年02月05日
    浏览(56)
  • Ubuntu纯净服务器系统使用Nginx+uwsgi部署django项目

    当前文章依赖最新的ubuntu-22.04.3-live-server-amd64服务器系统,python3-10版本,django为5.0版! 该服务器系统我们可以通过虚拟机来在本地安装,也可以使用云服务器,操作方式方法大同小异! 这里我们以开源项目baykeshop为基础来演示! 开源地址:baykeShop: baykeshop是一款python栈采用

    2024年01月17日
    浏览(48)
  • 2-Docker-应用-多容器部署Django+Vue项目(nginx+uwsgi+mysql)

    基于Linux CentOS 7系统(虚拟机),使用Docker,多容器部署Django+Vue项目 整体部署用到了:Django+Vue+nginx+mysql+uwsgi 先每一个容器单独部署,最后用Docker compose 语法整合,统一部署 参考文章:https://blog.csdn.net/qq_45445505/article/details/135563784 章标题:Docker介绍 节标题:Docker安装 总结梳

    2024年03月10日
    浏览(102)
  • Python web实战 | Docker+Nginx部署python Django Web项目详细步骤【干货】

      在这篇文章中,我将介绍如何使用 Docker 和 Nginx 部署 Django Web 项目。一步步讲解如何构建 Docker 镜像、如何编写 Docker Compose 文件和如何配置 Nginx。 1.1 配置 Django 项目 在开始之前,我们需要有一个 Django 项目。如果你还没有 Django 项目,可以按照 Django 官方文档的指导创建一

    2024年02月15日
    浏览(46)
  • Python篇5:linux安装python3.9与部署项目新包

    完整安装python3.9 1、安装之前的一个类先安装: 不然 make的时候,会报缺少很多包。仔细看中间有提示 如果是华为云,最好先安装openssl 1.1.1及以上的版本。 https://blog.csdn.net/yangjiechao945/article/details/124196480  这里安装的是1.1.1w的版本 然后再编译make 安装,后续再返回这里重新安

    2024年01月22日
    浏览(41)
  • linux安装python和部署Django项目

    1 python安装 官网地址:https://www.python.org/ 本次下载的python安装包地址:https://www.python.org/ftp/python/3.8.16/Python-3.8.16.tgz 解压下载的python压缩包 编辑文件 vim /usr/bin/yum ,将首行修改为 #!/usr/bin/python2 。 2 Django项目部署 编写一个django.ini文件,文件内容如下 在nginx中配置下面信息,就

    2024年02月14日
    浏览(43)
  • 设置nginx连接uWSGI的配置(nginx-uwsgi-django)

    1:non_idempotent是指POST、LOCK、PATCH请求方法的处理。 2:uwsgi_cache与uwsgi_store指令不可在同一指令域中同时使用。 3:除uwsgi_cache_path指令外,uWSGI模块指令均可编写在http、server、location指令域中。 4:uwsgi_cache_path指令只能编写在http指令域中。 uWSGI模块配置指令 指令名称 指令值格式 默

    2024年02月17日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包