zoukankan      html  css  js  c++  java
  • Docker中启动Nginx镜像,配置aspnetcore 网站代理

    docker上启动nginx,并配置修改nginx的配置文件

     

    1.使用docker 下载nginx 镜像  docker pull nginx

    2.启动nginx

    docker run --name nginx -p 80:80 -d nginx

    这样就简单的把nginx启动了,但是我们想要改变配置文件nginx.conf ,进入容器,命令:

    docker exec -it nginx bash

    nginx.conf配置文件在 /etc/nginx/  下面,但是你使用vim nginx.conf 或者vi nginx.conf

    会发现vi或者vim命令没有用,解决办法:apt-get  update  完成之后 apt-get install vim

    此时你就可以自己定制nginx.con文件了,改好配置文件之后重启容器,步骤,先把容器停了

    docker stop nginx  然后重启 docker start nginx

    这样不是很方便,还有第二种方式,挂载配置文件,就是把装有docker宿主机上面的nginx.conf配置文件映射到启动的nginx容器里面,这需要你首先准备好nginx.con配置文件,如果你应经准备好了,下一步是启动nginx

    命令:docker run --name nginx -p 80:80 -v /home/docker-nginx/nginx.conf:/etc/nginx/nginx.conf -v /home/docker-nginx/log:/var/log/nginx -v /home/docker-nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf -d nginx

    解释下上面的命令:

    --name  给你启动的容器起个名字,以后可以使用这个名字启动或者停止容器

    -p 映射端口,将docker宿主机的80端口和容器的80端口进行绑定

    -v 挂载文件用的,第一个-v 表示将你本地的nginx.conf覆盖你要起启动的容器的nginx.conf文件,第二个表示将日志文件进行挂载,就是把nginx服务器的日志写到你docker宿主机的/home/docker-nginx/log/下面

    第三个-v 表示的和第一个-v意思一样的。

    -d 表示启动的是哪个镜像

    我个人更喜欢第二种映射的方式,麻烦的是需要自己准备好nginx.conf 和default.conf文件,我是直接从容器里面复制的,然后根据自己的需要改的

    有问题,欢迎留言交流。

    aspnetcore 网站需要增加配置,配置详情可以下载我的示例代码:下载链接 https://files.cnblogs.com/files/davies/WebNginx.rar

    微软也给了官方配置说明文档:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/proxy-load-balancer?view=aspnetcore-3.1#forwarded-headers-middleware-options

    重点在Startup 增加配置。详细见示例代码。 

    nginx的代理配置如下:(文件位置:etc/nginx/conf.d/default.conf)

    location /ms-marketing

    {

    proxy_pass http://localhost:5005;

    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection keep-alive;
    proxy_set_header Host $host;
    proxy_cache_bypass $http_upgrade;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    }

    假设我的nginx的访问地址为:http://localhost:8080 ,

    则这里的配置表示:将链接:http://localhost:8080/ms-marketing/pro 转发到 http://localhost:5005/ms-marketing/pro。

    注意nginx配置里 http://localhost:5005;不能写成 http://localhost:5005/ms-marketing/; 

  • 相关阅读:
    retain和copy的区别 #import @class 的区别
    UImageview加边框 加阴影
    iOS中有两种支持机制:Notification和KVO(KeyValue Observing)
    Windows上编译,学习Objectivec
    CAAnimation动画
    ObjectiveC 熟记小概念
    cocos2d工具大全
    cocos2d 0.99.5版本屏幕默认是横屏,怎么修改为竖屏呢?
    ObjectiveC 的 self 和 super 详解
    ObjectiveC 的属性与合成方法使用详解
  • 原文地址:https://www.cnblogs.com/davies/p/12147736.html
Copyright © 2011-2022 走看看