<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>
<div>Hi Ajay,</div>
<div><br>
</div>
<div>If you generate the configuration, and issue a nginx reload – it won't cause any downtime. The master process will reread the configuration, start new workers, and gracefully shut down the old ones.</div>
<div>There's absolutely no downtime involved in this process.</div>
<div><br>
</div>
<div>
<div id="MAC_OUTLOOK_SIGNATURE"></div>
</div>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:12pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>nginx <<a href="mailto:nginx-bounces@nginx.org">nginx-bounces@nginx.org</a>> on behalf of Ajay Garg <<a href="mailto:ajaygargnsit@gmail.com">ajaygargnsit@gmail.com</a>><br>
<span style="font-weight:bold">Reply-To: </span>"<a href="mailto:nginx@nginx.org">nginx@nginx.org</a>" <<a href="mailto:nginx@nginx.org">nginx@nginx.org</a>><br>
<span style="font-weight:bold">Date: </span>Sunday, 9 April 2017 at 15.55<br>
<span style="font-weight:bold">To: </span>"<a href="mailto:nginx@nginx.org">nginx@nginx.org</a>" <<a href="mailto:nginx@nginx.org">nginx@nginx.org</a>><br>
<span style="font-weight:bold">Subject: </span>Mechanism to avoid restarting nginx upon every change<br>
</div>
<div><br>
</div>
<span style="mso-bookmark:_MailOriginalBody">
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div>
<div dir="ltr">
<div>Hi All.<br>
<br>
</div>
<div>We are wanting to implement a solution, wherein the user gets proxied to the appropriate local-url, depending upon the credentials.<br>
</div>
<div>Following architecture works like a charm (thanks a ton to<span class="gmail-go"><a href="mailto:francis@daoine.org">francis@daoine.org</a></span>, without whom I would not have been able to reach here) ::<br>
<br>
</div>
<div>####################################################<br>
server {<br>
                listen 2000 ssl;<br>
<br>
                ssl_certificate /etc/nginx/ssl/nginx.crt;<br>
                ssl_certificate_key /etc/nginx/ssl/nginx.key;<br>
<br>
                location / {<br>
                              <wbr>          auth_basic 'Restricted';<br>
                              <wbr>          auth_basic_user_file /etc/nginx/ssl/.htpasswd;<br>
<br>
                              <wbr>          if ($remote_user =  "<wbr>user1") {<br>
                              <wbr>                  proxy_pass <a href="https://127.0.0.1:2000" target="_blank">
https://127.0.0.1:2001</a>;<br>
                              <wbr>          }<br>
<br>
                              <wbr>          if ($remote_user =  "<wbr>user2") {<br>
                              <wbr>                  proxy_pass <a href="https://127.0.0.1:2000" target="_blank">
https://127.0.0.1:2002</a>;<br>
                              <wbr>          }<br>
<br>
</div>
                                       # and so on ....<br>
<div><br>
                }<br>
         }<br>
####################################################<br>
<br>
<br>
</div>
<div>Things are good, except that adding any new user information requires reloading/restarting the nginx server, causing (however small) downtime.<br>
<br>
</div>
<div>Can this be avoided?<br>
</div>
<div>Can the above be implemented using some sort of database, so that the nginx itself does not have to be down, and the "remote_user <=> proxy_pass" mapping can be retrieved from a database instead?<br>
<br>
</div>
<div>Will be grateful for pointers.<br>
<br>
<br>
</div>
<div>Thanks and Regards,<br>
</div>
<div>Ajay<br>
</div>
</div>
</div>
</div>
</blockquote>
</span></span>
</body>
</html>