腾讯云

撒币就行了
腾讯云 django+nginx+uwsgi 网站上线_nginx

基本配置,下载安装

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, 发现点亮成功
腾讯云 django+nginx+uwsgi 网站上线_腾讯云_02
进入配置路径/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/ ,点亮成功