Django + postgresql + gunicorn + nginx在centos7上部署

news/2024/7/9 22:51:27 标签: postgresql, django, nginx

参考:How To Set Up Django with Postgres, Nginx, and Gunicorn on CentOS 7

环境配置

安装组件:

sudo yum install epel-release
sudo yum install postgresql-server postgresql-devel postgresql-contrib gcc nginx

初始化pg库并配置为允许密码验证:

sudo postgresql-setup initdb
sudo vim /var/lib/pgsql/data/pg_hba.conf

修改为:

. . .

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
#host    all             all             127.0.0.1/32            ident
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
#host    all             all             ::1/128                 ident
host    all             all             ::1/128                 md5

启动服务:

sudo systemctl start postgresql
sudo systemctl enable postgresql

postgresql_35">postgresql配置

centos7中postgresql配置文件位置:

/var/lib/pgsql/data/postgresql.conf

如何修改绑定端口

修改/var/lib/pgsql/data/postgresql.conf文件中的port:

port = 5431                             # (change requires restart)
# Note: In RHEL/Fedora installations, you can't set the port number here;
# adjust it in the service file instead.

发现无效。仔细看注释:在RHEL/Fedora系统中不能在这配置端口,而要去修改service文件,好吧……

service文件位置为:

/usr/lib/systemd/system/postgresql.service 

修改端口配置:

# Port number for server to listen on
Environment=PGPORT=5431
systemctl daemon-reload

如何修改监听IP

默认情况下数据库不接受外部访问。

如何让数据库接受来自所有IP的连接?

配置监听IP的话,就可以修改/var/lib/pgsql/data/postgresql.conf了:

listen_addresses = '*'

Gunicorn服务配置

vim /etc/systemd/system/gunicorn.service
[Unit]
Description=gunicorn daemon
After=network.target

[Service]
User=root
Group=root
WorkingDirectory=/home/django-data-assets/
ExecStart=/root/miniconda3/envs/django_env/bin/gunicorn --workers 3 --bind unix:/home/django-data-assets.sock core.wsgi

[Install]
WantedBy=multi-user.target

sudo systemctl start gunicorn
sudo systemctl enable gunicorn
sudo systemctl restart gunicorn

Nginx配置

vim /etc/nginx/nginx.conf
    # Django Server
    server {
        listen 35888;
        server_name  127.0.0.1;

        location = /favicon.ico {
         root /home/django-data-assets/static;
        }

        # 注意下面的location后面没有等号=, 否则找static文件就404
        location /static/ {
            root /home/django-data-assets;
        }

        location / {
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_pass http://unix:/home/django-data-assets.sock;
        }

        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

sudo nginx -t
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl restart nginx

关闭防火墙

firewall-cmd --state

systemctl stop firewalld
systemctl disable firewalld
systemctl mask --now firewalld

清除iptables规则:

iptables -F

遇到过的坑是,已经执行了systemctl stop firewalld,结果firewall-cmd --state还是显示running。
解决办法:重启centos即可。


http://www.niftyadmin.cn/n/905469.html

相关文章

Linux基础命令---mv

mv 将文件或者目录移动到另一个地方,或者重命名。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 1、语法 mv [选项] [-T] src dst mv [选项] src directory mv [选项] -t directory src 2、选项列表 选项 说明 --…

QGIS基础

下载安装 官网下载地址:https://qgis.org/en/site/forusers/download.html 选择稳定版本:3.16 配置地图插件 菜单栏-Plugins-Manage and Install Plugins 取消在线搜索,选择Install from ZIP离线安装插件: 选择quick_map_ser…

动手动脑5

1.使用Files. walkFileTree()找出指定文件夹下所有扩展名为.txt和.java的文件。 import java.io.IOException;import java.nio.file.FileSystems;import java.nio.file.FileVisitResult;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.PathMatche…

作业十 分类与监督学习,朴素贝叶斯分类算法

1. 分类与聚类的本质区别? 二者的本质区别是:对受众的标签类别是已知还是未知! 具体解释就是,分类对受众标签类别是已知的。即事先定义的类别,类别数量,甚至类别间的层级关系都是已知的。然后利用训练和学习…

网络信息安全与防护手段

网络安全产品有以下几大特点:第一,网络安全来源于安全策略与技术的多样化,如果采用一种统一的技术和策略也就不安全了。第二,网络的安全机制与技术要不断地变化。第三,随着网络在社会各个方面的延伸,进入网…

联想YOGA 3笔记本如何U盘启动

拿到一个YOGA 3 pro 1370笔记本,自带win 8.1系统,十分老旧,希望升级到win 10。 尝试u盘启动安装系统,结果踩了不少坑,记录如下。 进入bios 开机时按 fn f2、 fn f12、enter、del,都无反应。查了yoga笔…

编写一个程序,指定一个文件夹,能自动计算出其总容量

package filetest; import java.io.File; import java.io.IOException;public class FileEdit { double size0.0; //计算文件或文件夹的大小,单位MB public double getSize(File file){ //判断文件是否存在 if(file.exists()) { if(!file.isFile()) { //获取文件大小…

如何为Postgresql添加一个自增的主键列

对于没有主键的Postgresql数据表,执行以下语句即可增添自增的主键列id: ALTER TABLE table_name ADD COLUMN id BIGSERIAL PRIMARY KEY;