Docker and Nginx Reverse Proxy

Поділитися
Вставка
  • Опубліковано 10 вер 2024

КОМЕНТАРІ • 133

  • @NoirExtra
    @NoirExtra 4 роки тому +27

    I watched, readed tons of tutorials, tons of videos, let me say THANK YOU VERY MUCH ! You are the only one who shows reverse proxy with more than one service and with thoses services interacting with HTTP requests ! I want to cry man ^^ Again thank you very much for that awesome tutorial.
    PS : Which tool did you use to make your Diagram, it renders very nice ;)

  • @hopeitworks2085
    @hopeitworks2085 4 роки тому +17

    This is one such simple and an excellent video to learn. This helped me a lot. You are a life savior. Thank you

  • @christopherrodriguezconde7693
    @christopherrodriguezconde7693 3 роки тому +4

    Such a great video to learn more about not only Docker but also how to manage and setup a reverse proxy using Nginx! The only thing I would like to point out is that you can use "expose" on the docker-compose.yml for all those services except the nginx, as if it was a production environment, you would only want the reverse proxy to be visible to the host (rather than exposing the other ones to your host as well). Using "expose" will not publish the ports to the host machine - they’ll only be accessible to linked services (in this case the reverse proxy). Anyway, a small tip, but I really loved this video and your explanation. Keep the good work! :)

  • @goforshahriar
    @goforshahriar 4 роки тому +19

    Please cover the follwoing questions :
    1. What is reverse proxy
    2. Why do we need it
    3. How we can setup nginx to handle different ports, ips
    4. How we can map frontend and backend api with nginx
    4. Security aspect
    5. Alternative of nginx
    6. How is it different than k8s ingress

    • @kirillf.8053
      @kirillf.8053 4 роки тому +5

      I'd also add an additional question about how you can map multiple instances of the same backend app with nginx to load balance them.

    • @WesDoyle
      @WesDoyle  4 роки тому +5

      Good questions, will answer anything missing in a followup video. Thank you

    • @WesDoyle
      @WesDoyle  4 роки тому +3

      Good question, will answer in a followup video! Thanks for watching

    • @crimsonderiv
      @crimsonderiv 4 роки тому

      Hello, newcomer here. Has the questions been answered ?

    • @goforshahriar
      @goforshahriar 4 роки тому +1

      @@crimsonderiv no, not all.

  • @wamanyewle1103
    @wamanyewle1103 4 роки тому +1

    One of the best videos for NGINX understanding. Explained in very very simple language. Thank you

  • @realist.network
    @realist.network 2 роки тому +1

    Wes, you are exceptional at explaining things, compared to the dozens of blog posts I found. Thank you very much!

  • @galvanino
    @galvanino 4 роки тому +1

    Thanks. I'm trying to dockerize Nuxt-Django-MariaDB-Nginx. I have read a lot of information and I have saw meny video tutorials. In this journey your tutorial has unraveled many things for me.

  • @shanebenlolo4866
    @shanebenlolo4866 3 роки тому +2

    You just helped me solve a problem I've been stuck on for almost a month, thank you so much!

    • @WesDoyle
      @WesDoyle  3 роки тому

      nice! glad to hear it

  • @IntentStore
    @IntentStore 2 роки тому +1

    finally someone who pronounces it right

  • @jorgepvenegas
    @jorgepvenegas 2 роки тому +1

    This video covers so much and so clearly. Thanks for posting it!

  • @alexpaden5159
    @alexpaden5159 2 роки тому +1

    It's really really awesome that you structured these large multi container projects using the same templates as a single app (weather app). I don't know if the word is innovative but it's really helpful and easy to grasp.

  • @Grimreap191
    @Grimreap191 2 роки тому +1

    Really great tutorial. Couldn't find anything else like this online. Thanks a lot!

  • @paralagente2741
    @paralagente2741 4 місяці тому

    Thank you for explaining clearly!! Loved❤

  • @wiseskeshom4673
    @wiseskeshom4673 2 роки тому +1

    Thank you so much for this great video and well explanation. I learned a lot from your video.
    For you guys who Fork/Clone this nice project in early 2022, it seems like using node:latest in the weather_report dockerfile will not work because an issue of Node 17+ and OpenSSH (ref to a question in Stackoverflow). I fixed node version as 16.14.0 then it works great.

    • @WesDoyle
      @WesDoyle  2 роки тому +1

      thanks for the information!

  • @NiKo-yn4wn
    @NiKo-yn4wn 4 роки тому +19

    Hi, do you have recommendations on how setting up SSL using your approach?

  • @arsalanahmad1832
    @arsalanahmad1832 3 роки тому +1

    great tutorial man, I keep coming back to this again and again when I am lost. nicely explained. Keep up the great work

  • @dezwilliamz
    @dezwilliamz Рік тому

    The portions about "Volumes" really helped me understand how it worked. Thank you and great detailed video.
    Sub'd and liked!

  • @maymontalvan
    @maymontalvan 2 роки тому

    Genial!!!! Esto es lo que realmente estaba buscando, justo esto!!!! Gracias, tienes una suscriptora de habla hispana!!!

  • @roeifinkelstein118
    @roeifinkelstein118 2 роки тому +1

    This helped me a lot. Super clear and to the point. Just what I needed. Thanks Wes !

  • @erickvidbaz3086
    @erickvidbaz3086 3 роки тому +1

    Thank you very much Wes, great example!

  • @CodingEntrepreneurs
    @CodingEntrepreneurs 3 роки тому +5

    This is absolutely great Wes! Thanks for sharing

    • @WesDoyle
      @WesDoyle  3 роки тому

      Glad you enjoyed it!

  • @spicefiend
    @spicefiend 2 роки тому +1

    You got a really soothing voice dude

  • @ikumitsushima5989
    @ikumitsushima5989 5 місяців тому

    I love the content of your videos, thank you!

  • @diegofigueiredo7012
    @diegofigueiredo7012 4 роки тому +1

    I'm using jwilder nginx reverse proxy Project to Java application.... Works fine

  • @djmonteur
    @djmonteur 3 роки тому +1

    Wes, thank you very much for this clear example. It really helped me and I got a workin' local docker compose file. cheers!

  • @reillymclaren9506
    @reillymclaren9506 2 роки тому

    Very helpful! Thoroughly explained and very clear

  • @ariss3531
    @ariss3531 3 роки тому +2

    Hello guys, great videos Wes, can anyone help me with a problem i have? I need to be able to see the changes when I write new code for example on vue, if I change the the html and refresh the localhost, nothing is showing, i need to rebuild all the containers! How can i solve this? Thanks

  • @dawid_dahl
    @dawid_dahl 3 роки тому +1

    So grateful for this video. Thank you!

  • @markobradonjic3192
    @markobradonjic3192 4 роки тому +6

    Nice job mate, keep it going. Maybe one small improvement detail, you could have maybe just touched a bit on how the requests are proxied by Nginx to the different containers. All in all, great vid. :D

    • @arpanbanerjee8584
      @arpanbanerjee8584 3 роки тому

      Yes true, like how it works behind the scenes and why do we need it?

  • @kimanje2patrick290
    @kimanje2patrick290 4 роки тому +1

    Thanks a lot for a very nice example. This is the very video I needed

  • @georgesbataille69
    @georgesbataille69 3 роки тому +2

    Loved it. Keep up the good work.

  • @linusmeier9515
    @linusmeier9515 2 роки тому

    This is absolutely brilliant! Really what I was looking for - thank you so much!

  • @UgurMahirOzkaya
    @UgurMahirOzkaya 2 роки тому +1

    Great content! Ty Sir.

  • @ColdRooster
    @ColdRooster 2 роки тому +1

    Muchas gracias amigo

  • @PVINFOLTEC
    @PVINFOLTEC 2 роки тому

    Hi Wes, thanks for the tutorial, it helped me a lot!

  • @chandarayi5673
    @chandarayi5673 2 роки тому

    The best tutorial out there, thank you

  • @igorbragaia4895
    @igorbragaia4895 3 роки тому +2

    that's dope, bro! thanks a lot for the tutorial

  • @ameerhamza8735
    @ameerhamza8735 3 роки тому +1

    best tutorial out there. kudos 👍

  • @_chidiebere4763
    @_chidiebere4763 3 роки тому +1

    well Put!!! Thanks!

  • @Stoney_Eagle
    @Stoney_Eagle 3 роки тому +1

    I need a organized way of hosting my vps and home server so thanks for the info.
    I think it's better to limit the initial steps when you make a tutorial.
    If you start with just the docker proxy and then add an application at a time it would be easier to process the information. 😉

    • @WesDoyle
      @WesDoyle  3 роки тому +1

      Noted! Thanks for the feedback

  • @josemiguelsanchez9124
    @josemiguelsanchez9124 3 роки тому +1

    Excellent, excellent video... thanks a lot

  • @CripplingDuality
    @CripplingDuality 4 роки тому +2

    These ops videos are so well done. Nginx has been such a black box to me and this has changed that. Any chance you can compare docker/containerization with infrastructure-as-code? It'd be nice to see how these strategies complement/compete with each other. Great work as usual!

    • @WesDoyle
      @WesDoyle  4 роки тому +2

      Thanks Natesh Mayuranathan - and great idea. I will put this in the queue of ops videos to record.

  • @richardwng
    @richardwng 2 роки тому +1

    Hey man, awesome content right here. Would you mind sharing more about Nginx on Docker for Production build? Thanks in advance!

  • @AdharshMk96
    @AdharshMk96 3 роки тому +1

    I used nginx outside of docker ( installed in my host ) to make sure site is available even when I'm restarting docker etc..
    Do you think it's a good approach ? I blocked published ports of the apps inside docker in firewall.

  • @buscseik
    @buscseik 2 роки тому +1

    Thank you

  • @michaeljones9229
    @michaeljones9229 3 роки тому

    For some reason it is having trouble resolving my container... I get " [error] 31#31: *2 no resolver defined to resolve *container name* " when sending a request to my nginx container

  • @khatuntsovmikhail6223
    @khatuntsovmikhail6223 3 роки тому +1

    you pink courser just drive me nuts....

  • @ericdwkim
    @ericdwkim 2 роки тому

    Great explanation and detail. Subscribed!

  • @boi_doingthings
    @boi_doingthings 3 роки тому

    Man. Absolutely amazing.

  • @ghilesdjebara8066
    @ghilesdjebara8066 2 роки тому +1

    Hello man,
    Thank you so mcuh for your video, it already helped me so much.
    Your tutorial works perfectly how it is. However, when I try to use proxy_pass with a REGEX to match a URL, i get the "no resolver defined to resolve" error and a 502 error. Can you please give me a hint ?
    Thanks in advance.

  • @bl4ckd4g3r3
    @bl4ckd4g3r3 2 роки тому

    im trying to do the same with apache, but for some reason i only get the default "It works" page, locally it works find. but not when I build and upload it to aws with docker compose

  • @amritpalhh9836
    @amritpalhh9836 4 роки тому +1

    I have a rest api and I have a script I found online that makes it so that the front end waits for the backend in docker compose but once the backend runs the front end times out or gives me a code 1 error.
    I have extended the timeout time but it now gives a code 0 error. How do I solve this?

  • @wesselkalter
    @wesselkalter 4 роки тому +1

    Thank you for the great demo!

  • @MarcosPsaro
    @MarcosPsaro 2 роки тому +1

    Hi, how can I enhance the nginx-proxy response times, multi-threading, and throughput? which parameters should I modify in host config or nginx.conf file to do achieve that? Thanks in advance.

    • @WesDoyle
      @WesDoyle  2 роки тому

      I’ll make a note to cover nginx in depth in a future video!

  • @devendersingh238
    @devendersingh238 4 роки тому +1

    I like your channel and the explanations, if you can please consider these four aspects WHAT, WHY, WHEN and HOW. I specifically wants to learn .net core + docker on Linux + K8s.

    • @WesDoyle
      @WesDoyle  4 роки тому +1

      Hi Devender, nice -- K8s is a big topic, but definitely relevant to modern devops. Thanks for watching!

  • @omerapl3511
    @omerapl3511 Рік тому

    Great video!
    I have a follow-up question: What's the optimal approach to achieve the same outcome in a Kubernetes environment, specifically on EKS? Suppose I want to expose only the front-end application through Ingress without exposing the back-end application. What would be the recommended method for accomplishing this?

  • @memack101
    @memack101 4 роки тому +1

    Great video! Would love more complex production geared version of this video. Thanks

    • @WesDoyle
      @WesDoyle  4 роки тому

      Thanks Ramon! Will see what I can do about making a more in-depth follow up video. 👍

  • @vigorousvoices
    @vigorousvoices 3 роки тому +2

    Thanks for the great demo, it's helped me a lot with what I am doing right now.
    I have a question though, why is your axios sending the request to "localhost" and not to "reverse-proxy" that is defined in your docker-compose. By sending to localhost, is it not sending to the nginx that is installed in the Vujs container itself and not the one acting as the reverve proxy? Thanks

  • @msafdar5841
    @msafdar5841 Рік тому

    thank you for this awesome video

  • @magosimediahub1503
    @magosimediahub1503 5 місяців тому

    what if the microservices have diffrent yml file and the nginx has its own instead of making it just one file

  • @mrk9674
    @mrk9674 4 роки тому +1

    Why did you define "container name" in compose file? If this is set, containers cannot be scaled up ( multiple instances of the same container).

    • @WesDoyle
      @WesDoyle  4 роки тому +1

      Good point, MRK! If I was going to update this intending to scale those services, I would update to remove container name from the compose file.

  • @alexzander__6334
    @alexzander__6334 2 роки тому

    why there isnt an EXPOSE port inside the weather_report app's dockerfile ?

  • @zedium
    @zedium 2 роки тому

    Great tutorial 👌

  • @tigranrostomyan9231
    @tigranrostomyan9231 Рік тому

    Thank you SO MUCH

  • @Dorff_Meister
    @Dorff_Meister 3 роки тому +1

    Helpful, thanks!

  • @aarongoodrich6903
    @aarongoodrich6903 3 роки тому +1

    not a bad explanation here. one thing 'off' i notice. there's no reason to map the container ports to your host ports unless your planning to actually use the host ports

  • @tanchwa3740
    @tanchwa3740 2 роки тому

    So what does the remote address variable need to be set as for X forwarding?

  • @hamadaparis3556
    @hamadaparis3556 3 роки тому +1

    Hi so informative video, there is nginx container on the top of the tree serving subcontainers and also there is second nginx container serving specifically Vue app if that's right can I serve Vue app without second nginx config only through the top most nginx container or the second nginx image is required for serving Vue container ?

  • @joevu6629
    @joevu6629 3 роки тому

    Thanks u so much! Your lesson has helped me a lot

    • @WesDoyle
      @WesDoyle  3 роки тому

      Glad to hear that, Joe! Hope you are well.

  • @donha475
    @donha475 3 роки тому +1

    Is there any possible way to make it work when the python flask app is running on 127.0.0.1:5001 instead of 0.0.0.0:5000? I think it is impossible on Windows docker... (I tried using nginx to reverse proxy... does it work for you??)

    • @donha475
      @donha475 3 роки тому +1

      Caddy reverse proxy worked for this... not sure why I couldn't make nginx work...

  • @ghilesdjebara8066
    @ghilesdjebara8066 2 роки тому

    Thank you so much...

  • @StMarc-ow4wz
    @StMarc-ow4wz Рік тому

    How can we scale up the nginx reverse proxy container?

  • @dapmas7
    @dapmas7 2 роки тому +1

    Great video!
    What theme and Color scheme are you using for terminal here?

  • @harris9393
    @harris9393 4 роки тому +3

    Thank you for this great tutorial! One question though, why did you still open the ports for weather-report, temperature-service and precip-service when it is being handled by reverse-proxy?

    • @WesDoyle
      @WesDoyle  4 роки тому +1

      hey Harris! great point

  • @charliesta.abc123
    @charliesta.abc123 3 роки тому +1

    If you ever come to South Africa I'd like to buy you your favourite beverage Wes

    • @WesDoyle
      @WesDoyle  3 роки тому

      hope to take you up on that someday 😄

  • @user-rp9gi3xi5u
    @user-rp9gi3xi5u 3 роки тому +1

    Excellent

  • @janmacku4633
    @janmacku4633 3 роки тому

    Thanks, great video!

  • @arpanbanerjee8584
    @arpanbanerjee8584 3 роки тому

    Thanks for the to the point explanation !!
    There's one thing I do not understand, our Vue app can communicate to the backend servers alone right? what is the use of reverse proxy?
    generally in a web application we have a client and then we have a server, our client is hosted somewhere so is our server, we expose APIs from server , and we call them from the client giving proper hostname and API path making a complete URL. So, our client app is hosted and when a user clicks a button, our client app (Vue app here) will call the services.
    Where the proxy comes in place here and why do we need it? I am trying to compare a simple web app architecture with these dockerized version using nginx.

  • @shihabjamil7274
    @shihabjamil7274 2 роки тому

    Please upload another video using https on nginx using openssl.

  • @tanchwa3740
    @tanchwa3740 2 роки тому

    So I have a server where I have multiple services running as different containers, I have the ports all mapped to a port on the server, and then the microservices referenced by a different location for each in my Nginx conf file,
    however, only the first container is reachable by the location. the rest seem to fail to load some files such as /usr/share/nginx/html/Content/Fonts/fonts.css or venders.js in the same location... I don't know if these were set up by the container or what but I'm not sure how to get them to cooperate with the reverse proxy.

    • @tanchwa3740
      @tanchwa3740 2 роки тому

      not really sure what I'm doing wrong. The only thing I'm doing differently than you is that my stuff is hosted on an external box instead of on the same machine.

    • @tanchwa3740
      @tanchwa3740 2 роки тому

      any help from anyone would be appreciated I'm about to tear my hair out on all this

  • @ThingEngineer
    @ThingEngineer 4 роки тому +1

    What a great demo touching on so many areas without going down rabbit holes.

    • @whynottyg7250
      @whynottyg7250 3 роки тому +1

      What you talking about. He completly went off topic just had to show its 3 docker containers running and which ports they were on, Instead went through a docker compose file etc. Docker ps would have been enough

  • @Andbil
    @Andbil 4 роки тому

    I am trying to send a curl request to a route inside my own container. It's of oauth. If I do this I get a request denied error. I tried the container itself as the url, the docker IP (which I think using the container name basically does anyways) I tried localhost, the url I set in nginx. Nothing works

    • @WesDoyle
      @WesDoyle  4 роки тому +1

      Hi Andrew, are you using curl from a shell outside of your container? If you are on the host where Docker is running, you will need to expose the port on the container running your server

  • @KaydotOrigin
    @KaydotOrigin 3 роки тому

    New to Docker - trying to understand the image concept. I'm on Nginx in Docker Hub (hub.docker.com/_/nginx/?spm=5176.doc53764.2.3.gm0FWx) but theres no reference to nginx:1.17.10 that your reverse_proxy container utilises. Where can I find the most up-to-date nginx image? Or can this be substituted for nginx:stable ? Many thanks in advance

  • @uglevod184
    @uglevod184 3 роки тому

    ff.. why youtube translate title of video to russian ... of IT
    when i am want video only on rus lang.. its wrong
    iF i wanna on englisl i am take that

  • @skuttis4u
    @skuttis4u 3 роки тому

    What YAML editor are you using in the video?
    Also excellent explanation

  • @Chris-cl5gg
    @Chris-cl5gg 2 роки тому

    i pulled your repo and it just doesnt work. i did not change anything. just a git clone and docker compose up. it failed!!!

    • @WesDoyle
      @WesDoyle  2 роки тому

      Hi Chris, what details does the error message provide?

    • @Chris-cl5gg
      @Chris-cl5gg 2 роки тому

      @@WesDoyle I'm going to check it as soon as I get home

  • @MrDextre1480
    @MrDextre1480 4 роки тому +1

    hello friend and with apache can you do it the same with dccker?

    • @WesDoyle
      @WesDoyle  4 роки тому

      Hi dextre - yes, you can also run Apache in a container!

  • @MrEnsiferum77
    @MrEnsiferum77 4 роки тому +1

    Why we need nginx.conf file in the frontend app?

    • @WesDoyle
      @WesDoyle  4 роки тому +1

      Here we're using an nginx server to serve up the built Vue application!

    • @MrEnsiferum77
      @MrEnsiferum77 4 роки тому

      @@WesDoyle Is that mandatory, when u have reverse proxy or not? How the frontend app can know the microservices endpoints, if there is no nginx for the frontend....

  • @hemanshu877
    @hemanshu877 4 роки тому +1

    Hi , great explanation , I m struggling to get (react + laravel) webpack dev server in docker for development environment in my php app , if u know about that , could make video on that

    • @WesDoyle
      @WesDoyle  4 роки тому

      Hi Hemanshu Khodiyar, I've been meaning to get around to building a Laravel project for a long time now. I'll put it in the queue of ideas for future videos! Thanks for the message. 😀

  • @zaluq
    @zaluq 2 роки тому

    What editor are you using there ?

  • @wichukorndandecha
    @wichukorndandecha 4 роки тому +1

    What theme vscode?

    • @WesDoyle
      @WesDoyle  4 роки тому +3

      I'm using Night Wolf as a VS Code theme here.

  • @icomment4692
    @icomment4692 Рік тому

    502 error

  • @cim8097
    @cim8097 4 роки тому +2

    I prefer Traefik.

  • @williamdevjs9974
    @williamdevjs9974 3 роки тому

    15:54

  • @animatedbyJDK
    @animatedbyJDK 2 місяці тому

    Error response from daemon: error while creating mount source path '/run/desktop/mnt/host/wsl/docker-desktop-bind-mounts/Ubuntu-22.04/e6c980e4712950952a6941bed43e00b3d45f57d25fa4b8c5efadedc2310bf202': mkdir /run/desktop/mnt/host/wsl/docker-desktop-bind-mounts/Ubuntu-22.04/e6c980e4712950952a6941bed43e00b3d45f57d25fa4b8c5efadedc2310bf202: file exists
    please help Wes