安装Nginx
docker pull nginx # 下载nginx
docker run \
--name nginx \
-p 80:80 \
-d \
nginx # 测试容器的运行
mkdir -p /data/nginx/www
mkdir -p /data/nginx/logs
docker cp nginx:/etc/nginx/nginx.conf /data/nginx/
docker cp nginx:/etc/nginx/conf.d/ /data/nginx/
mv /data/nginx/conf.d /data/nginx/conf
docker stop nginx # 停止容器
docker rm nginx # 删除容器
docker run \
-d \
-p 80:80 \
--name nginx \
-v /data/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx/www/:/usr/share/nginx/html/ \
-v /data/nginx/logs/:/var/log/nginx/ \
-v /data/nginx/conf/:/etc/nginx/conf.d/ \
--restart=always \
nginx
反向代理
# www.baidu.com 根据不同的域名转发到不同的项目 server可以有多个
server {
listen 80; # 端口
server_name www.baidu.com # 域名
location / {
root /usr/share/nginx/html/; # 转发到哪个目录
index index.html index.htm index.php;
proxy_pass http:hao123.com; # 反向代理到hao123
}
}
负载均衡
upstream webservers {
server 192.168.100.128:8080;
server 192.168.100.129:8080;
}
server {
listen 80;
server_name localhost;
localhost /api/ {
proxy_pass http://webservers/admin/; # 负载均衡
}
}
负载均衡策略
名称 |
说明 |
轮询 |
默认方式 |
weight |
权重方式,默认为1,权值越高,被分配的就越多 |
ip_hash |
根据ip分配,相同的ip固定访问一个后端 |
least_conn |
根据连接数分配,优先分配给连接数少的后端服务 |
url_hash |
根据url分配,相同url固定访问一个后端 |
fair |
根据响应时间分配,需要时间短的优先分配 |