腾讯云 django+nginx+uwsgi 网站上线 - Go语言中文社区

腾讯云 django+nginx+uwsgi 网站上线


腾讯云

撒币就行了
在这里插入图片描述

基本配置,下载安装

ssh登录进去,发现很多东西都没配置。

换yum源

可以跳过, 腾讯云自带腾讯源

#换yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
cd /etc/yum.repos.d/
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
yum -y update

安装各种基础软件

#安装各种基础软件
yum install -y gcc
yum install -y gcc-c++
yum install -y epel-release
yum install -y python36
yum install openssl-devel -y 
yum install zlib-devel -y
yum -y install automake autoconflibtool make
cd /usr/bin/
ln -s python3.6 python3

安装setuptools

# setuptools
cd ~
wget --no-check-certificate  https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
tar zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
python3 setup.py build
python3 setup.py install

安装pip

# pip
cd ~
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
tar xf pip-9.0.1.tar.gz 
cd pip-9.0.1
python3 setup.py build
python3 setup.py install

需要注意的是,如果一顿操作下来bash不能识别pip命令,说明pip所在路径/usr/local/bin没有被加入环境变量

pip换源

可以跳过, 腾讯云自带腾讯源

#pip换源
pip3 install pip -U
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

安装nginx

yum install pcre pcre-devel -y
rpm -qa pcre pcre-devel
yum install -y zlib zlib-devel
yum install mod_ssl -y
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install -y nginx

安装uwsgi

#uwsgi
yum install python36-devel.x86_64   -y
yum install libxml* -y
pip3 install uwsgi

安装django

pip3 install django

配置uwsgi

  1. 运行uwsgi要在超级用户下运行,否则报错。我在自己的PC上跑的时候就报错,当时百思不得其解。
  2. 在centos上,确保先安装python36-devel.x86_64 ,才能安装uwsgi。
  • 测试运行
uwsgi --http :8001 --chdir /home/tqc/PycharmProjects/django/blog --wsgi-file mysite/wsgi.py --master --processes 1 --threads 1 --stats 127.0.0.1:8000

命令行方式启动,用8001端口作为8000端口的代理

命令过长,设置配置文件:

#uwsgi.ini file
[uwsgi]

# Django-related settings
# the base directory (full path)
chdir           = /home/tqc/PycharmProjects/django/blog
# Django's wsgi file
module          = mysite.wsgi:application  #文件夹.文件名,不带py

# process-related settings
# master
master          = true
# maximum number of worker processes
processes       = 1
# the socket (use the full path to be safe)
socket = 127.0.0.1:8001  #如果绕过nginx直接解析,用http=...
stats = 127.0.0.1:8000		#用8001端口做8000端口的代理
# ... with appropriate permissions - may be needed
#chmod-socket    = 666
#chown-socket = nginx:nginx
# clear environment on exit
vacuum          = true
enable-threads = true

如果用http默认访问的80端口代理8000端口,的确可以实现访问了, 但是这样做加载不出css和图片,这时候我们就需要nginx来解析静态文件了

配置nginx

systemctl nginx启动nginx, 直接访问服务器公网ip, 发现点亮成功
在这里插入图片描述
进入配置路径/etc/nginx/conf.d/,找到default.conf,进行编辑

server {
    listen	 80; #监听80端口
    server_name  localhost;
    access_log      /var/log/nginx/myweb_access.log;
    error_log       /var/log/nginx/myweb_error.log;

    location / { #对于根目录的解析
        include uwsgi_params;
        #这行指定uwsgi开放的数据交换接口
        uwsgi_pass 127.0.0.1:8001;
        #这里与配置uwsgi的ini文件中module内容一致
        uwsgi_param UWSGI_SCRIPT mysite.wsgi;
        #这里与配置uwsgi的ini文件中chdir内容一致
        uwsgi_param UWSGI_CHDIR  /home/tqc/PycharmProjects/django/blog;
    }

    location ^~ /static/ {
        root /home/tqc/PycharmProjects/django/blog;
        #这行指定静态文件的搜索目录, localhost/static/test.css => /home/test_project/static/test.css
        #注意,这里location行中指定的地址也会在转换后的地址中
    }
}

上线

需要注意的是django的settings.py需要添加两个ALLOWED_HOSTS:公网ip和域名

uwsgi --ini uwsgi.ini & 
systemctl nginx start

打开网址 http://www.tqcblog.cn/lyrj/ ,点亮成功

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/TQCAI666/article/details/86723106
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-01 21:39:13
  • 阅读 ( 1910 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢