docker的使用

4.1 ngnix

http://www.baidu.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;
    }
    
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   # 开启

五、本单元知识总结

1.数据可视化的概念
2.数据可视化发展历史
3.数据可视化的应用场景
4.数据可视化的发展前景
5.前端可视化解决方案
6.canvas&svg
7.其他数据可视化技术(webGL,zrender,d3.js,three.js)

你可能感兴趣的:(服务器,nginx,apache)