nginx修改http协议为2.0 & docker添加端口到已运行容器中

nginx修改http协议为2.0 & docker添加端口到已运行容器中

1、先查看nginx版本

2.0协议的参数为:–with-http_v2_module 如果查看的结果中没有这个参数则目前不支持2.0 后续编译后支持

#进入容器
docker exec -it webpro-nginx bash
cd /usr/local/nginx
#此命令可查看出nginx版本以及编译参数
./sbin/nginx -V
   nginx version: nginx/1.15.2
#停止nginx
./sbin/nginx -s stop

2、编译新nginx

注意:这里 --prefix=这里还是nginx现在安装目录;执行make不要执行make install

#上传相同版本的源码包到服务器后并解压
docker cp nginx-1.15.2.tar.gz webpro-nginx:/tmp/
docker exec -it webpro-nginx bash 
cd /tmp 
tar -zxf nginx-1.15.2.tar.gz 
cd nginx-1.15.2
#重新编译
./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --with-http_gzip_static_module --with-http_v2_module
#执行编译
make
#在源码包现在目录下objs有个nginx可执行程序复制到nginx目录
cp objs/nginx /usr/local/nginx/sbin/

3.如果没有正式证书可以生成自定义证书(可选)

#创建秘钥目录
mkdir /usr/local/nginx/keys
cd /usr/local/nginx/keys
#生成一个key,会让输入一个密码,输入密码时候记住密码
openssl genrsa -des3 -out ssl.key 4096
mv ssl.key ssla.key
#输出一个不要密码的key
openssl rsa -in ssla.key -out ssl.key
rm ssla.key
#然后根据这个key文件生成证书请求文件
openssl req -new -key ssl.key -out ssl.csr

img

#最后根据这2个文件(ssl.key ssl.csr)生成crt证书文件
openssl x509 -req -days 365 -in ssl.csr -signkey ssl.key -out ssl.crt

3、编辑nginx配置文件

cd /usr/local/nginx
vi conf.d/webpro-private.conf 
#添加下列内容
        listen 443 ssl http2;
        server_name  webpro-nginx  #上边生成证书写授权网址那写此地址
        ssl_certificate "/usr/local/nginx/keys/ssl.crt";
        ssl_certificate_key "/usr/local/nginx/keys/ssl.key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
        ssl_prefer_server_ciphers on;

docker添加协议到已运行容器中

1、查看容器

#查看nginx容器id
docker ps
58860aec140a        harbor.raykite.com/webpro/webpro_nginx:v3     "/root/run.sh"           10 months ago       Up 5 days           0.0.0.0:80-82->80-82/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:2222->22/tcp     webpro-nginx

2、停止docker

systemctl stop docker

3、修改文件

vi /webpro-private/data/lib/docker/containers/{container_id}/hostconfig.json

找到PortBindings值,在这个json合集里边追加新端口

PortBindings":{"443/tcp":[{"HostIp":"","HostPort":"443"}],"80/tcp":[{"HostIp":"","HostPort":"80"}]}
vi /webpro-private/data/lib/docker/containers/{container_id}/config.v2.json

添加:Config->ExposedPortsNetworkSettings->Ports

"ExposedPorts":{"443/tcp":{},"80/tcp":{}}
#Ports如果是空的可不用管

4、启动docker

systemctl start docker

5、查看是否新端口映射出来

docker ps
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值