docker的初步使用
4.1 ngnix
http://www.百度.com
ip 机器 192.168.1.1:8000
tomcat ngnix apache
4.1.1nginx介绍
Nginx 是一个很强大的高性能Web和反向代理服务,它具有很多非常优越的特性:
在连接高并发的情况下,Nginx是Apache服务不错的替代品:Nginx在美国是做虚拟主机生意的老板们经常选择的软件平台之一。能够支持高达 5万 个并发连接数的响应
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
server 192.168.0.19;
}
2、权重 weight(服务器性能配制不一样,网络、带宽、内存、硬盘、CPU)
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=3;
server 192.168.0.15 weight=7;
}
3、ip_hash( IP绑定)
上述方式存在一个问题就是说,在负载均衡系统中,假如用户在某台服务器上登录了,那么该用户第二次请求的时候,因为我们是负载均衡系统,每次请求都会重新定位到服务器集群中的某一个,那么已经登录某一个服务器的用户再重新定位到另一个服务器,其登录信息将会丢失,这样显然是不妥的。
我们可以采用ip_hash指令解决这个问题,如果客户已经访问了某个服务器,当用户再次访问时,会将该请求通过哈希算法,自动定位到该服务器。
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4、fair(第三方插件)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
5、url_hash(第三方插件)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
4.1.2 nginx反向代理
反向代理服务器决定哪台服务器提供服务。返回代理服务器不提供服务器。只是请求的转发。
flask部署
4.1.1 docker安装centos7
docker pull centos:centos7
yum install
$ docker run -itd -p 8000:8000 --name centos centos
docker ps
gunicorn
centos7部署flask
docker pull nginx
docker run --name nginx -p 8080:80 -d nginx
docker exec -it 72b638714b47 /bin/bash
apt-get update
apt-get install vim
apt-get install wget -y
wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz
apt-get install -y gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
# 解压
tar -zxvf Python-3.9.1.tgz
cd Python-3.9.1
mkdir -p /usr/local/python3
apt-get install gcc
./configure --prefix=/usr/local/python3 # 指定安装目录为/opt/python39
make # 相当于把源码包里面的代码编译成linux服务器可以识别的代码
make install
#建立软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
并将/usr/local/python3/bin加入PATH
(1)vim /etc/profile
(2)按“I”,然后贴上下面内容:
# vim ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin:/usr/local/python3/bin
export PATH
:wq保存
为了永久生效path设置,添加到/etc/profile全局环境变量配置文件中 重载配置文件/etc/profile
source /etc/profile
python3
安装pip3
apt-get install python3-pip
pip3 install gunicorn
gunicorn test:app
gunicorn -w 4 -b 127.0.0.1:8001 main:app --deamon
vim /etc/nginx/conf.d/default.conf
location /api/ {
proxy_pass http://127.0.0.1:8001; #
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
==================
location /api/ {
proxy_pass http://localhost:8001/; #
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
service nginx restart
apt-get update && apt-get install procps
ps -aux
requirements.txt可以通过pip命令自动生成和安装,这种情况更适用于此项目是单独的虚拟python环境
生成requirements.txt文件
pip freeze > requirements.txt
pip3 freeze > requirements.txt
安装requirements.txt依赖
pip install -r requirements.txt
pip3 install -r requirements.txt
docker cp /www/runoob 96f7f14e99ab:/www/
vue部署
npm run build:prod
需求
统计每个月总营业额
订单表
id checkout_time amount
sql = "select number,sum(amount) from orders group by checkout_time"
service nginx restart # 重启
docker ps # 查看
docker start nginx # 开启
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggbjee
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13