使用docker部署nginx并支持https

这篇具有很好参考价值的文章主要介绍了使用docker部署nginx并支持https。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

配置nginx支持https,其实也简单,搞个证书,然后修改下配置文件就好了。我以前一篇文章(使用docker部署多个nginx站点并配置负载均衡)为例,做个记录。

如前所述,我使用docker,部署了3个nginx。一个做负载均衡服务器,另外两个做应用。结构如下:
docker nginx ssl,计算机安全,Web,应用,nginx,docker,https
那么,支持https,也是在负载均衡这里进行设置。详细记录如下:

一、制作证书

反正docker跑在linux下,证书就在linux里制作了。
1、安装openssl
yum install -y openssl openssl-devel

2、制作密钥
openssl genrsa -out szdata.key 2048

3、制作证书
openssl req -new -x509 -days 3650 -key szdata.key -out szdata.crt
输入信息,回车,回车,就好了。
docker nginx ssl,计算机安全,Web,应用,nginx,docker,https
如此,证书即生成于当前目录了。

二、重新创建nginx容器

像我的情况,重新创建负载均衡这个容器就行了。脚本如下:

sudo docker run --name nginx-szdata-lb --privileged -it -p 8443:443 \
-v /home/admin/szdata/nginx/conf/lb.conf:/etc/nginx/nginx.conf:ro \
-v /home/admin/szdata/nginx/conf/conf.d:/etc/nginx/conf.d:ro \
-v /home/admin/szdata/nginx/logs:/var/log/nginx \
-v /home/admin/szdata/nginx/cert:/etc/nginx/cert \
-d nginx

docker nginx ssl,计算机安全,Web,应用,nginx,docker,httpsdocker nginx ssl,计算机安全,Web,应用,nginx,docker,https
docker容器删除、重建很平常,这时就体现出挂载方式部署的优越性了。不然配置文件跟着被删,太麻烦。

注意到其中一个文件cert,用于存放证书。

三、修改nginx配置

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

	#负载均衡
    upstream szdata-web{
	   server 192.168.175.128:8001;
	   server 192.168.175.128:8002;
    }

	#重点
    server {
        listen 443 ssl;
        server_name localhost;  
        # 注意文件位置,是从/etc/nginx/下开始算起的
        ssl_certificate cert/szdata.crt;
        ssl_certificate_key cert/szdata.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
        ssl_prefer_server_ciphers on;

        location / {
            proxy_set_header HOST $host;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://szdata-web;
        }

        location /pubzy/ {
            alias   /usr/share/nginx/html/;
        }
    }
    #这个好像没什么卵用。不起作用。存疑。
    server {
        listen       80;
        server_name  localhost;    
        return 301 https://$host$request_uri; 
    }

}

有关负载均衡,请看我前一篇文章:使用docker部署多个nginx站点并配置负载均衡

然后输入 https://ip:8443/,就可以访问了。

四、小结

从配置看,nginx还是用了转发。外部使用https请求,nginx转发到了http。

总的来看,设置nginx支持https还是比较简单的。自己制作的网站证书,虽然浏览器不认,但这并不妨碍浏览器与服务器之间进行加密传输。试想如果没有https,那么我们登录的时候,账号密码就是明文传输,今时今日的客户无法接受。所以https是标配。

不过,站点改为https后,之前如果有一些外链是http的话,将引用不了。文章来源地址https://www.toymoban.com/news/detail-619247.html

到了这里,关于使用docker部署nginx并支持https的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux下Nginx配置SSL模块,Nginx安装SSL,Nginx支持https配置详细教程

    前提:Linux安装Nginx,参考教程:CentOS7安装Nginx完整教程,Linux系统下保姆式安装Nginx教程 | 老麻 安装好Nginx之后,需要支持SSL时,要单独安装SSL模块,方法如下: 输入 ./nginx –V 命令,注意V是大写,查看配置是否包含“–with-http_ssl_module”,包含则表示已配置好SSL,如果不包

    2024年02月08日
    浏览(40)
  • nginx配置ssl支持https的详细步骤

    文章概要 :在建站的时候我们通常要让网站通过https进行访问,不然使用http过程中,所有信息都是未加密的,并且用户访问的时候浏览器会屏蔽我们的网站。本文介绍如何通过nginx配置ssl以支持通过https协议访问网站。 本文内容来自:谷流仓AI - ai.guliucang.com 打开nginx.conf配置

    2024年03月28日
    浏览(42)
  • Linux配置Nginx SSL支持Https配置教程

    继承上篇 Linux安装Nginx 执行: ./nginx -V 命令 如果有输出 --–with-http_ssl_module 则说明已安装好SSL模块 进入安装目录 /usr/local/nginx-1.22.1 执行安装命令: ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 执行编译命令: make 注意:make成功后不要执行 make insta

    2024年01月18日
    浏览(32)
  • Docker使用nginx部署VUE项目

    目录 一、安装Docker和一些基本Docker命令 二、打包VUE项目 三、写nginx配置文件 四、写Dockerfile文件 五、构建镜像 六、运行容器 七、挂载目录 八、使用docker-compose部署项目 总结 安装略,基本指令如下: vue项目根目录进入终端输入npm run build打包项目,在项目根目录会生成一个

    2024年02月07日
    浏览(34)
  • SpringBoot + Vue2项目打包部署到服务器后,使用Nginx配置SSL证书,配置访问HTTP协议转HTTPS协议

    配置nginx.conf文件,这个文件一般在/etc/nginx/...中,由于每个人的体质不一样,也有可能在别的路径里,自己找找... 证书存放位置,可自定义存放位置 两个文件 后端配置 把.pfx拷贝到resource下,然后配置一下yml

    2024年02月02日
    浏览(49)
  • docker使用nginx部署vue刷新页面404

    从docker内部复制出来的配置文件是这样的,但是刷新页面之后就显示404,关键是我两个前端项目都是用的这一个配置文件,但是只有一个项目出现刷新浏览器显示404的问题,这给我搞懵了!!! 在网上查找问题原因和解决办法,但是大多数都说是资源找不到,让修改配置文件

    2024年01月18日
    浏览(33)
  • 【Docker】使用Docker安装Nginx及部署前后端分离项目应用

            Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。它是由 伊戈尔·赛索耶夫 为俄罗斯访问量第二的Rambler.ru站点开发的,公开版本1.19.6发布于2020年12月15日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、简单的配置

    2024年01月22日
    浏览(35)
  • 使用 Debian、Docker 和 Nginx 部署 Web 应用

    本文将介绍基于 Debian 的系统上使用 Docker 和 Nginx 进行 Web 应用部署的过程。着重介绍了 Debian、Docker 和 Nginx 的安装和配置。 通过 SSH 连接到服务器。 更新软件包列表: sudo apt update 升级已安装的软件包: sudo apt upgrade 1. 为 Web 应用创建一个新的 Nginx 配置文件: 2. 将以下内容

    2024年02月11日
    浏览(26)
  • docker nginx ssl设置

    使用docker运行nginx,配置代理,和ssl设置,进行https访问 本次在centos环境中 1.已安装docker,docker-compose 2.运行了一个后端服务容器,提供基本的接口访问【可选】 3.一个域名(已经解析到服务器上)【必要】 4.ssl证书【必要】 使用阿里云免费证书 登陆阿里云管理控制台,搜索

    2024年02月13日
    浏览(24)
  • 傻瓜式教学Docker 使用docker compose部署 php nginx mysql

    首先你可以准备这个三个服务,也可以在docker compose 文件中 直接拉去指定镜像,这里演示的是镜像服务已经在本地安装好了,提供如下: PHP 日常用的扩展都有了应该, 这两个你也可以移到上面的RUN一同安装 Nginx Mysql 直接从官方镜像资源中拉去 这样你将产生三个镜像 下面开始利用

    2024年02月01日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包