2020-8-22-nginx

部署nginx、配置https和反向代理、负载均衡

部署nginx

1快速创建一个nginx容器

$ docker run -d -p80:80 nginx

2将配置文件复制出来到指定目录

$ docker cp nginx容器id:/etc/nginx/ /home/nginx/conf/

3暂停容器,并删除容器

$ docker stop nginx容器id
$ docker container prune

4创建容器

$ docker run -d --restart=always -p 80:80 --name nginx-test-web \
  -v /home/nginx/www:/usr/share/nginx/html \
  -v /home/nginx/conf/:/etc/nginx/ \
  -v /home/nginx/logs:/var/log/nginx \
  nginx

5nginx特点

反向代理、负载均衡、动静分离


配置https和反向代理

1在/home/nginx/conf/目录下创建一个名为cert的文件夹,并将证书放入

2进入/home/nginx/conf/conf.d目录,创建一个以.conf结尾的文件,文件内容如下

server {
    listen 443;
    server_name abcde.cool;
    ssl on;
    root html;
    index index.html index.htm;
    
    #配置证书
    ssl_certificate   cert/4236706_abcde.cool.pem;
    ssl_certificate_key  cert/4236706_abcde.cool.key;
    
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

	#配置反向代理,注意地址不可为127.0.0.1
    location ^~/subject {#当路径为/subject时,服务器地址指向http://117.50.141.71:8081
        proxy_pass http://117.50.141.71:8081;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }

    location ^~/mall {
        proxy_pass http://117.50.141.71:8088;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
    }


    location / {
        root html;
        index index.html index.htm;
    }

    
}

负载均衡

server{
	listen       80;
    server_name  localhost;
    proxy_read_timeout 600;
    charset utf-8;
    
    location /hello{
    	proxy_pass http://helloservers;#指向服务器组
    }    	
}
upstream helloservers{#服务器组	
    server 192.168.17.1:8080 weight=1;
    server 192.168.17.1:8081 weight=1;
    server 192.168.17.1:8082 weight=1;
}

目前Nginx的upstream模块支持6种方式的负载均衡策略(算法):轮询(默认方式)、weight(权重方式)、ip_hash(依据ip分配方式)、least_conn(最少连接方式)、fair(第三方提供的响应时间方式)、url_hash(第三方通过的依据URL分配方式)

posted @ 2024-03-22 17:10  SylvesterZhang  阅读(35)  评论(0)    收藏  举报