文章目录
在正式开始第四期之前,还有两个任务
nginx、uwsgi、flask、django这些是什么东西,要懂个大概。
使用云服务器前的一些准备
nginx、uwsgi、flask、django(tomcat)是什么
在讲uWSGI和WSGI之前,先要弄清楚web开发的两大块,web服务器
和web框架
。
web服务器
即用来接受客户端请求,建立连接,转发响应的程序。至于转发的内容是什么,交由web框架
来处理,即处理这些业务逻辑。如查询数据库、生成实时信息等。Nginx和uwsgi就是一个web服务器
,Django或flask就是web框架
。
参考了这两位大佬的文章,写的很好
uwsgi、wsgi和nginx的区别和关系
nginx与uWSGI
个人感觉
web框架&web服务器
web框架
就是搭建网页所需要的html等文件,能让你的程序先在本地(127.0.0.1)跑起来
web服务器
是为了让web框架能够放在网上所需要的系统
uwsgi的作用:
- 部署单个节点,实现简单的服务器搭建
- 轻量级,好部署
也就是说,如果只有一个界面的话,用uwsgi就能完成
但是如果要把某个东西同时放到不同的端口,或者放到自己的域名下,就需要nginx了。
nginx(tomcat)的作用:
- 反向代理(uwsgi无法完成),可以拦截一些web攻击,保护后端的web服务器
- 负载均衡,根据轮询算法,分配请求到多节点web服务器
- 缓存静态资源,加快访问速度,释放web服务器的内存占用,专项专用
tomcat跟nginx应该差不多,但是没用过
nginx与uwsgi关系如下:
中间的反向代理服务器就是nginx
右边的3台web服务器就是uWSGI
flask与django
用来构造网站(确定页面分路径、端口;加载图片、构造html)
其中flask可以作为python的一个模块在python中使用(django没用过不知道,应该类似)
使用云服务器所需准备
博主用的是华为云弹性云服务器,常常是直接在官网给的网页版远程界面敲代码的,感觉其实也不错,可以直接复制粘贴什么的
远程连接工具
- putty连接服务器
- Navicat连接服务器上的数据库
查看系统版本
cat /etc/redhat-release
域名管理
- 购买域名
- 实名认证(需要2~3天)
- 将域名解析到自己的公网ip上
- 申请SSL证书
具体每一步都可以在CSDN上找到很多教程,建议购买域名和云服务器在同一个平台
各个步骤都完成后,在自己的电脑上ping一下你的域名,能ping通(显示公网ip)就没有问题。
宝塔
宝塔面板是一款服务器管理软件,可以帮你快速搞好uwsgi、nginx等关系,建好一个简单的网站,同时WordPress等网站模板也需要在宝塔面板搭建
(然而,搭建了宝塔面板后,nginx、mysql就不能再另外下载,所以感觉宝塔虽然很好用,但太好用了(学不到知识了。所以最后还是没有用上。。。
(也可能只是我不会兼容
WordPress建站教程(只是因为我用过这个并且搭成功过一次)
WordPress建站教程(其一)
python的虚拟环境
使用pip下载virtualenv
pip3 install --upgrade --default-timeout=1000 virtualenv -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
创建新环境步骤
mkdir test
cd test
virtual -p python3 【任意名字】
source 【上述名字】/bin/activate
pip3 install --default-timeout=1000 【库名字】 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
deactivate # 退出当前环境
云服务器安全组设置
出于保护服务器的目的,一般云服务器的各端口不会向外开放,如要在个人电脑上访问某端口,还需要设置安全组,开放该端口
上图为未开放端口
配置完成后
以华为云为例开放端口
开放端口
内网穿透
我也不会!!!
常见问题
uwsgi在Centos7.2下载不下来
手动(wget)下载各版本nginx
配置Nginx环境变量
配置Nginx环境变量使每次打开nginx不用跑到nginx的文件夹下面而是直接输入nginx就行
解决Nginx报错
曾经遇到过的一个报错信息:
nginx: [emerg] the “ssl” parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx