暂时回不去上课了,无聊的时候把最近遇到的问题,还有一些笔记给总结一下,希望对大家有点用。
本文主要讲的是nginx
部署静态网页和动态网页等多种情况。
如果不了解nginx
的可以提前准备了解一下关于nginx
的资料,已经怎么工作的
环境准备
如果是Ubuntu来当做服务器的话,可以执行以下命令来安装Nginx
(请确保80端口没有被占用):
1 | sudo apt-get install update |
1 | sudo apt-get install nginx |
ps: 如果80端口被占用会一直报错的
Nginx常用命令:
1 | 重启Nginx服务器 |
也可以直接调用/etc/init.d/nginx
命令操作:
1 | 查看help文档 |
文件目录
文件目录:/etc/nginx
常用的目录以及文件,一般的修改方法有两种:
- 添加自己的配置文件到
conf.d
目录 - 修改默认的配置文件
nginx.conf
1 | . |
Nginx 部署静态文件
Nginx部署静态文件包含三步:
- 首先我们把打包过的HTML文件上传到服务器
- 得到HTML文件的绝对路径(pwd可以完成)
- 修改Nginx配置文件
具体怎么上传文件到服务器可以Google或者Baidu去找资料,在这里就不详细说了。
修改Nginx配置:
ps:我们一般只需要修改http
里面的配置
假设在服务器里面我们的文件是: /home/ubuntu/build
, 文件里面包含了index.html
第一种方法:直接修改配置文件
然后我们需要配置Nginx (/etc/nginx/nginx.conf
),添加以下代码到文件里http
的配置里面(两种法法任意一种都可以):
1 | # 第一种方法 |
/etc/nginx/nginx.conf
的详细代码:
1 | user www-data; |
第二种方法:添加新的配置文件
- 在
/etc/nginx/conf.d
的文件夹下面创建config.conf
- 把配置代码写入到
config.conf
- 加载到默认的配置文件中
把上面提到的那两种方法写入/etc/nginx/conf.d/config.conf
的配置文件中,然后修改/etc/nginx/nginx.conf
的配置文件,具体代码如下:
1 | user www-data; |
ps:在最后会把具体的文件上传的
Nginx + gunicorn + supervisor + flask
大部分时候我们写的不仅仅是静态HTML文件,比如说带后台的web(flask,spring)等等,这时候我们需要Nginx来配置相对应的服务。这里我们用flask给大家演示一下怎么配置。
首先需要安装gunicorn,supervisor:
1 | pip3 install gunicorn |
假设我们当前文件夹下面有run.py
的文件,代码如下:
1 | from flask import Flask |
使用gunicorn
来启动flask服务:
1 | run 是指run.py |
如果正常启动我们在浏览器访问127.0.0.1:8000
就能看到hello world
使用supervisor管理进程:
Supervisor 是一个 客户端/服务器
系统,允许其用户在类 UNIX
操作系统上控制进程。当进程被意外杀死,Supervisor 可以主动将其拉起。
使用如下命令构建配置文件:
1 | echo_supervisord_conf > /etc/supervisord.conf |
编辑配置文件,内容如下:
1 | [program:gunicorn] |
ps:关于如何找到gunicorn的路径:
1 | ➜ ~ > which gunicorn |
输入下面命令来启动服务:
1 | supervisord -c /etc/supervisord.conf |
supervisor常用命令
1 | 查看supervisor状态 |
ps:更多命令可查看官方文档
使用Nginx反向代理flask服务
修改配置的server:
1 | server { |
ps:更多详情请看官方文档
Demo文件下载