Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Recommendations for dotnet core reverse proxy

Recommendations for dotnet core reverse proxy

Scheduled Pinned Locked Moved The Lounge
csharpworkspaceasp-netapachewcf
17 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

    According to me reverse proxy is the way: ASP.NET Core: Compile Once, Host Everywhere[^]

    "The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012

    pkfoxP Offline
    pkfoxP Offline
    pkfox
    wrote on last edited by
    #3

    Hi, this is pretty much how I have mine setup - so am I right in thinking, you have to either start the service manually ( or via a script ) or run it as a daemon ?

    "We can't stop here - this is bat country" - Hunter S Thompson - RIP

    Kornfeld Eliyahu PeterK 1 Reply Last reply
    0
    • pkfoxP pkfox

      Hi, this is pretty much how I have mine setup - so am I right in thinking, you have to either start the service manually ( or via a script ) or run it as a daemon ?

      "We can't stop here - this is bat country" - Hunter S Thompson - RIP

      Kornfeld Eliyahu PeterK Offline
      Kornfeld Eliyahu PeterK Offline
      Kornfeld Eliyahu Peter
      wrote on last edited by
      #4

      No other way on Linux...

      "The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012

      "It never ceases to amaze me that a spacecraft launched in 1977 can be fixed remotely from Earth." ― Brian Cox

      pkfoxP 1 Reply Last reply
      0
      • Kornfeld Eliyahu PeterK Kornfeld Eliyahu Peter

        No other way on Linux...

        "The only place where Success comes before Work is in the dictionary." Vidal Sassoon, 1928 - 2012

        pkfoxP Offline
        pkfoxP Offline
        pkfox
        wrote on last edited by
        #5

        Thank you very much for clarifying

        "We can't stop here - this is bat country" - Hunter S Thompson - RIP

        1 Reply Last reply
        0
        • pkfoxP pkfox

          Hi all, in an effort to keep myself amused during this lockdown ( UK in my case ) I've been playing with building a NET Core webapi service, this is I've done. I have it running as a daemon on a Linux box on my LAN with NGInx setup as a reverse proxy. All is working ok. Am I doing this the correct way ? ( I'm not all that clued up with web stuff ) I thought a Web server such as Apache could be used to host the service not just as a reverse proxy but to host it entirely. What I'm trying to say is, when I've written WCF services to be hosted in a Windows environment in the past, I hosted them in IIS ( using WAS ) which took care of starting and stopping the whole caboodle, is this possible with Net core api services ( on Linux in this case ) ? As I say I'm not that clued up on the web side of things.

          "We can't stop here - this is bat country" - Hunter S Thompson - RIP

          P Offline
          P Offline
          Peter Shaw
          wrote on last edited by
          #6

          My Entire production setup at www.digital-solutions.me.uk all uses Nginx Well Mostly... uses Nginx :-) First up I have a wildcard domain, so *.digital-solutions.me.uk will ALWAYS hit my public IP address same with my personal domain too. My Firewall has exactly ONE port forward on port 80 and that hit's a VM running on hyper-v, the VM is a linux server install, that runs only Nginx nothing else. In the config for Nginx I list all my subdomains as virtual servers, and then in those virtual servers I proxy the connection to other servers,desktops,IoT devices, containers and VM's some of which run dotnet core apps, some which run Apache, and some which serve classic .NET apps from an IIS instance. The first VM to be hit is responsible for routing to the correct destination machine, I find that Nginx works perfectly and it can handle traffic through put really well too. It's routes to Windows, Linux, Bsd all manner of target systems, even Solaris :-) Anything that's not in the Nginx config for the frontend VM just get's blackholed and a reply is never sent for it. Those VMs that DO run dotnet core services on them, I keep the services running using SupervisorD: [Supervisor: A Process Control System — Supervisor 4.1.0 documentation](http://supervisord.org/) Shawty

          Still Crazy.... Best and ONLY way to be.

          pkfoxP 1 Reply Last reply
          0
          • P Peter Shaw

            My Entire production setup at www.digital-solutions.me.uk all uses Nginx Well Mostly... uses Nginx :-) First up I have a wildcard domain, so *.digital-solutions.me.uk will ALWAYS hit my public IP address same with my personal domain too. My Firewall has exactly ONE port forward on port 80 and that hit's a VM running on hyper-v, the VM is a linux server install, that runs only Nginx nothing else. In the config for Nginx I list all my subdomains as virtual servers, and then in those virtual servers I proxy the connection to other servers,desktops,IoT devices, containers and VM's some of which run dotnet core apps, some which run Apache, and some which serve classic .NET apps from an IIS instance. The first VM to be hit is responsible for routing to the correct destination machine, I find that Nginx works perfectly and it can handle traffic through put really well too. It's routes to Windows, Linux, Bsd all manner of target systems, even Solaris :-) Anything that's not in the Nginx config for the frontend VM just get's blackholed and a reply is never sent for it. Those VMs that DO run dotnet core services on them, I keep the services running using SupervisorD: [Supervisor: A Process Control System — Supervisor 4.1.0 documentation](http://supervisord.org/) Shawty

            Still Crazy.... Best and ONLY way to be.

            pkfoxP Offline
            pkfoxP Offline
            pkfox
            wrote on last edited by
            #7

            Thanks for this could I see your nginx.conf - I'm keen to learn this stuff

            "We can't stop here - this is bat country" - Hunter S Thompson - RIP

            P 1 Reply Last reply
            0
            • pkfoxP pkfox

              Thanks for this could I see your nginx.conf - I'm keen to learn this stuff

              "We can't stop here - this is bat country" - Hunter S Thompson - RIP

              P Offline
              P Offline
              Peter Shaw
              wrote on last edited by
              #8

              Yes sure, but for obvious reasons I'm not posting it publicly. Hunt me down on twitter I'm @shawty_ds We'll take it from there. I'm off to cook evening meal for the family right now, but I'll be back at my PC either in a few hours (Or tomorrow if I end up watching TV with the wife and drinking beer .... :-D ) You can also find me on gmail as "shawty.d.ds" Regards Shawty

              pkfoxP 1 Reply Last reply
              0
              • P Peter Shaw

                Yes sure, but for obvious reasons I'm not posting it publicly. Hunt me down on twitter I'm @shawty_ds We'll take it from there. I'm off to cook evening meal for the family right now, but I'll be back at my PC either in a few hours (Or tomorrow if I end up watching TV with the wife and drinking beer .... :-D ) You can also find me on gmail as "shawty.d.ds" Regards Shawty

                pkfoxP Offline
                pkfoxP Offline
                pkfox
                wrote on last edited by
                #9

                I don't use twitter have you an email address I can use ?

                "We can't stop here - this is bat country" - Hunter S Thompson - RIP

                P 2 Replies Last reply
                0
                • pkfoxP pkfox

                  I don't use twitter have you an email address I can use ?

                  "We can't stop here - this is bat country" - Hunter S Thompson - RIP

                  P Offline
                  P Offline
                  Peter Shaw
                  wrote on last edited by
                  #10

                  As I said in my last post :-) Im shawty.d.ds on gmail :-D

                  1 Reply Last reply
                  0
                  • pkfoxP pkfox

                    Hi all, in an effort to keep myself amused during this lockdown ( UK in my case ) I've been playing with building a NET Core webapi service, this is I've done. I have it running as a daemon on a Linux box on my LAN with NGInx setup as a reverse proxy. All is working ok. Am I doing this the correct way ? ( I'm not all that clued up with web stuff ) I thought a Web server such as Apache could be used to host the service not just as a reverse proxy but to host it entirely. What I'm trying to say is, when I've written WCF services to be hosted in a Windows environment in the past, I hosted them in IIS ( using WAS ) which took care of starting and stopping the whole caboodle, is this possible with Net core api services ( on Linux in this case ) ? As I say I'm not that clued up on the web side of things.

                    "We can't stop here - this is bat country" - Hunter S Thompson - RIP

                    S Offline
                    S Offline
                    scmtim
                    wrote on last edited by
                    #11

                    If you are using WebHostBuilder with UseKestrel() you don't need NGinx. To make sure it starts automatically or restarts on a crash on most Linux systems you would use systemd. [Manage Kestrel process with systemd](https://kimsereyblog.blogspot.com/2018/05/manage-kestrel-process-with-systemd.html)

                    P 1 Reply Last reply
                    0
                    • pkfoxP pkfox

                      I don't use twitter have you an email address I can use ?

                      "We can't stop here - this is bat country" - Hunter S Thompson - RIP

                      P Offline
                      P Offline
                      Peter Shaw
                      wrote on last edited by
                      #12

                      Didn't see an email from you yet.... just making sure shawty.d.ds at gmail

                      pkfoxP 1 Reply Last reply
                      0
                      • S scmtim

                        If you are using WebHostBuilder with UseKestrel() you don't need NGinx. To make sure it starts automatically or restarts on a crash on most Linux systems you would use systemd. [Manage Kestrel process with systemd](https://kimsereyblog.blogspot.com/2018/05/manage-kestrel-process-with-systemd.html)

                        P Offline
                        P Offline
                        Peter Shaw
                        wrote on last edited by
                        #13

                        That may be, but all the advice I've seen to date, even the official MS stuff, states that you should NEVER place a dotnet core app directly on a public facing IP as kestrel is not built to take the onslaught that more mature web servers are. It's always been best advice to proxy the inbound traffic to a dotnet core app, allowing you to take advantage of all sorts of things that kestrel doesn't do, such as virtual hosting and the many battle hardened security features these server apps have built into them.

                        pkfoxP 1 Reply Last reply
                        0
                        • P Peter Shaw

                          Didn't see an email from you yet.... just making sure shawty.d.ds at gmail

                          pkfoxP Offline
                          pkfoxP Offline
                          pkfox
                          wrote on last edited by
                          #14

                          Hi Peter, that's not a valid email address Pete Kane

                          "We can't stop here - this is bat country" - Hunter S Thompson - RIP

                          1 Reply Last reply
                          0
                          • P Peter Shaw

                            That may be, but all the advice I've seen to date, even the official MS stuff, states that you should NEVER place a dotnet core app directly on a public facing IP as kestrel is not built to take the onslaught that more mature web servers are. It's always been best advice to proxy the inbound traffic to a dotnet core app, allowing you to take advantage of all sorts of things that kestrel doesn't do, such as virtual hosting and the many battle hardened security features these server apps have built into them.

                            pkfoxP Offline
                            pkfoxP Offline
                            pkfox
                            wrote on last edited by
                            #15

                            Hi Peter, thanks for the stuff you sent me although it's largely over my head :laugh: - did you see my question in the General Programming C# category regarding asking how to expose my locally hosted service to remote clients ?

                            "We can't stop here - this is bat country" - Hunter S Thompson - RIP

                            P 1 Reply Last reply
                            0
                            • pkfoxP pkfox

                              Hi Peter, thanks for the stuff you sent me although it's largely over my head :laugh: - did you see my question in the General Programming C# category regarding asking how to expose my locally hosted service to remote clients ?

                              "We can't stop here - this is bat country" - Hunter S Thompson - RIP

                              P Offline
                              P Offline
                              Peter Shaw
                              wrote on last edited by
                              #16

                              It's easy once you know how :-) RE: Question, nope... you wanna spin me a link? Shawty

                              pkfoxP 1 Reply Last reply
                              0
                              • P Peter Shaw

                                It's easy once you know how :-) RE: Question, nope... you wanna spin me a link? Shawty

                                pkfoxP Offline
                                pkfoxP Offline
                                pkfox
                                wrote on last edited by
                                #17

                                [My Question](https://www.codeproject.com/Messages/5715945/Access-WebApi-remotely-Cmon-guys-I-dont-believe-no.aspx) Edit n.b Nginx and the API service are on the same box I just worked it out, nginx is listening to port 80 on my API box then proxy passing to the API service - so I need to port forward an external port on my router to port 80 on my API box- I have and it works - thanks for your help - do you mind if I bombard you with net core questions ?

                                "We can't stop here - this is bat country" - Hunter S Thompson - RIP

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups