阿里云服务器配置(django)

0 前言

最近在用django搭建一个web网站,然后使用到阿里云服务器,摸索摸索,磕磕碰碰的算是搭起来了,对于零基础的我,在这次学习中获得不少知识。

1 服务器与域名的购买

这个网上太多教程了,我用的是阿里云,不要问为什么,因为学生便宜。

        对于服务器以前从没接触过(就在aws上注册个账号玩了玩),所以刚开始是两眼一抹黑啊,不过熟悉了阿里云的界面就好了,这就需要认真的看了,真是应了那句:世上无难事,只要肯认真。

        域名的购买,还算顺利,就是备案的时间花了很久很久很久(吐槽一波)

万事俱备,只欠东风,就缺个安静的白天,慢慢的在服务器上操作了

2 服务器的部署

        话说在前面,我捣鼓这个服务器花了不少时间,Ubuntu系统我重置了很多遍,没办法,谁让我菜啊,可是我能够坚持啊

终于不负我望,终于搞好了。

       所以今天把需要用到的命令给整理下,也方便以后的回忆

1、对于新服务器先更新下系统

sudo apt-get update
sudo apt-get upgrade

2、安装必要软件

sudo apt-get install nginx
sudo apt-get install git python3 python3-pip
sudo pip3 install virtualenv

3、启动nginx服务,启动后在输入local host:8080或者域名就可以看到Welocom  to nginx

sudo service nginx start

4、代码部署

4.1、部署文件目录

/home/tianmai/
         sites/
              tianmo.xin/
                  env/
                  esay_blog/

网站代码放在sites/目录下,tianmo.xin是以网站域名来命名的文件夹,env/是python的虚拟环境目录,esay_blog是博客项目目录。

4.2、进入到tianmo.xin 目录下,然后运行virtualenv命令创建虚拟环境

tianmai@localhost:~$ cd ~/sites/tianmo.xin
tianmai@localhost:~/sites/tianmo.xin$ virtualenv --python=python3 env

注意: --python=python3 来指定克隆 Python3 的环境。因为 ubuntu 系统默认安装了 Python2,如果不特别指定的话 Virtualenv 默认克隆的是 Python2 的环境。

      检查是否创建成功,在tianmo.xin下运行ls命令,看到env文件夹则创建成功。

4.3、从github上把代码拉取下来

tianmai@localhost:~/sites/tianmo.xin$ git clone https://github.com/Tianmai1207/esay_blog.git

5、 激活虚拟环境

tianmai@localhost:~/sites/tianmo.xin$ source env/bin/activate

6、安装环境依赖,首先需要进入虚拟环境

tianmai@localhost:~/sites/tianmo.xin$ source env/bin/activate
(env)tianmai@localhost:~/sites/tianmo.xin$ cd esay_blog/
(env)tianmai@localhost:~/sites/tianmo.xin/esay_blog$ pip install -r requirements.txt

7、收集静态文件

(env)tianmai@localhost:~/sites/tianmo.xin/esay_blog$ python manage.py collectstatic

8、生成数据库

(env)tianmai@localhost:~/sites/tianmo.xin/esay_blog$ python manage.py migrate

9、创建超级用户

(env)tianmai@localhost:~/sites/tianmo.xin/esay_blog$ python manage.py createsuperuser

10、配置Nginx

首先在服务器/etc/nginx-available/目录下新建一个配置文件,文件名设置为域名名字,配置内容如下

/etc/nginx/sites-available/tianmo.xin

server {
    charset utf-8;
    listen 80;
    server_name tianmo.xin; ①

    location /static { ②
        alias /home/tianmai/sites/tianmo.xin/esay_blog/static; 
    }

    location / { ③
        proxy_set_header Host $host;
        proxy_pass http://unix:/tmp/tianmo.xin.socket;
    }
}

① 服务的域名为tianmo.xin。

② 所有URL 带有 /static 的请求均由 Nginx 处理,alias 指明了静态文件的存放目录。

③ 其它请求转发给 Django 处理。proxy_pass 后面使用了 unix 套接字,其作用是防止端口冲突,这里就不再详述。


11、将配置文件加入到启用的网站列表中去

配置文件在 /etc/nginx/sites-available/ 下,被启用网站目录在/etc/nginx/sites-enabled/。可以理解为从 sites-available/ 目录下发送了一个配置文件的快捷方式到 sites-enabled/ 目录。

(env)tianmai@localhost:~/sites/tianmo.xin/esay_blog$ sudo ln -s /etc/nginx/sites-available/tianmo.xin /etc/nginx/sites-enabled/tianmo.xin

12、安装并使用Gunicorn

Gunicorn一般用来管理多进程,有进程挂了Gunicorn 可以把它拉起来,防止服务器长时间停止服务,还可以动态调整 worker 的数量,请求多的时候增加 worker 的数量,请求少的时候减少。

在虚拟环境下安装Gunicorn

(env)tianmai@localhost:~/sites/tianmo.xin/esay_blog$ pip install gunicorn

用Gunicorn启动服务器进程

(env)tianmai@localhost:~/sites/tianmo.xin/esay_blog$ gunicorn --bind unix:/tep/tianmo.xin.socket esay_blog.wsgi:application

3 检验结果

输入域名 就可以看到网站能够访问



4 总结

        这次的服务器的配置也算是磕磕碰碰有了个结果,其实自己在把时间战线托的挺长的,这种做事的风格可不行哦,做为一名程序猿,哦,不。

        回想起来,从Django开发到配置,虽说是挺简单的,也都是照着下面链接的博客一步步实现的(对于这方面想仔细学习的请见参考链接),有时候还是需要做一些总结,本来学习就是一个过程,需要时刻的反思与回忆,比如说我看到那些机器学习的算法,不时常回忆下,很容易忘的,哎,心酸了。
        服务器的配置还有很多待优化的地方,哎,感慨下时间过的真快。

参考:

https://www.zmrenwu.com/post/20/

猜你喜欢

转载自blog.csdn.net/tian_panda/article/details/81034833
今日推荐