Browse Source

docs: Guide for IIS reverse proxy

Daniel Lee 8 năm trước cách đây
mục cha
commit
77b5dee408
2 tập tin đã thay đổi với 124 bổ sung2 xóa
  1. 35 2
      docs/sources/installation/behind_proxy.md
  2. 89 0
      docs/sources/tutorials/iis.md

+ 35 - 2
docs/sources/installation/behind_proxy.md

@@ -68,5 +68,38 @@ server {
   }
 }
 ```
-
-
+### IIS URL Rewrite Rule (Windows) with Subpath
+
+IIS requires that the URL Rewrite module is installed.
+
+Given:
+
+- subpath `grafana`
+- Grafana installed on `http://localhost:3000`
+- server config:
+    ```bash
+    [server]
+    domain = localhost:8080
+    root_url = %(protocol)s://%(domain)s:/grafana
+    ```
+
+Create an Inbound Rule for the parent website (localhost:8080 in this example) with the following settings:
+
+- pattern: `grafana(/)?(.*)`
+- check the `Ignore case` checkbox
+- rewrite url set to `http://localhost:3000/{R:2}`
+- check the `Append query string` checkbox
+- check the `Stop processing of subsequent rules` checkbox
+
+The rewrite rule that is generated for the web.config:
+
+```xml
+  <rewrite>
+      <rules>
+          <rule name="Grafana" enabled="true" stopProcessing="true">
+              <match url="grafana(/)?(.*)" />
+              <action type="Rewrite" url="http://localhost:3000/{R:2}" logRewrittenUrl="false" />
+          </rule>
+      </rules>
+  </rewrite>
+```

+ 89 - 0
docs/sources/tutorials/iis.md

@@ -0,0 +1,89 @@
++++
+title = "Grafana with IIS Reverse Proxy on Windows"
+type = "docs"
+keywords = ["grafana", "tutorials", "proxy", "IIS", "windows"]
+[menu.docs]
+parent = "tutorials"
+weight = 10
++++
+
+# How to Use IIS with URL Rewrite as a Reverse Proxy for Grafana on Windows
+
+If you want Grafana to be a subdomain under a website in IIS then the URL Rewrite module for ISS can be used to support this.
+
+Example:
+
+- Parent site: http://localhost:8080
+- Grafana: http://localhost:3000
+
+Grafana as a subdomain: http://localhost:8080/grafana 
+
+## Setup
+
+If you have not already done it, then a requirement is to install URL Rewrite module for IIS.
+
+Download and install the URL Rewrite module for IIS: https://www.iis.net/downloads/microsoft/url-rewrite
+
+## Grafana Config
+
+The Grafana config can be set by creating a file named `custom.ini` in the `conf` subdirectory of your Grafana installation. See the [installation instructions](http://docs.grafana.org/installation/windows/#configure) for more details.
+
+Given that the subpath should be `grafana` and the parent site is `localhost:8080` then add this to the `custom.ini` config file:
+
+ ```bash
+[server]
+domain = localhost:8080
+root_url = %(protocol)s://%(domain)s:/grafana
+```
+
+Restart the Grafana server after changing the config file.
+
+## IIS Config
+
+1. Open the IIS Manager and click on the parent website
+2. In the admin console for this website, double click on the Url Rewrite option:
+    {{< docs-imagebox img="/img/docs/tutorials/IIS_admin_console.png"  max-width= "800px" >}}
+
+3. Click on the `Add Rule(s)...` action
+4. Choose the Blank Rule template for an Inbound Rule
+    {{< docs-imagebox img="/img/docs/tutorials/IIS_add_inbound_rule.png"  max-width= "800px" >}}
+
+5. Create an Inbound Rule for the parent website (localhost:8080 in this example) with the following settings:
+  - pattern: `grafana(/)?(.*)`
+  - check the `Ignore case` checkbox
+  - rewrite url set to `http://localhost:3000/{R:2}`
+  - check the `Append query string` checkbox
+  - check the `Stop processing of subsequent rules` checkbox
+
+    {{< docs-imagebox img="/img/docs/tutorials/IIS_url_rewrite.png"  max-width= "800px" >}}
+
+Finally, navigate to `http://localhost:8080/grafana` (replace `http://localhost:8080` with your parent domain) and you should come to the Grafana login page.
+
+## Troubleshooting
+
+### 404 error
+
+When navigating to the grafana url (`http://localhost:8080/grafana` in the example above) and a `HTTP Error 404.0 - Not Found` error is returned then either:
+
+- the pattern for the Inbound Rule is incorrect. Edit the rule, click on the `Test pattern...` button, test the part of the url after `http://localhost:8080/` and make sure it matches. For `grafana/login` the test should return 3 capture groups: {R:0}: `grafana` {R:1}: `/` and {R:2}: `login`.
+- The `root_url` setting in the Grafana config file does not match the parent url with subpath.
+
+### Grafana Website only shows text with no images or css
+
+{{< docs-imagebox img="/img/docs/tutorials/IIS_proxy_error.png"  max-width= "800px" >}}
+
+1. The `root_url` setting in the Grafana config file does not match the parent url with subpath. This could happen if the root_url is commented out by mistake (`;` is used for commenting out a line in .ini files):
+
+    `; root_url = %(protocol)s://%(domain)s:/grafana`
+
+2. or if the subpath in the `root_url` setting does not match the subpath used in the pattern in the Inbound Rule in IIS:
+
+    `root_url = %(protocol)s://%(domain)s:/grafana`
+
+    pattern in Inbound Rule: `wrongsubpath(/)?(.*)`
+
+3. or if the Rewrite Url in the Inbound Rule is incorrect. 
+
+    The Rewrite Url should not include the subpath. 
+
+    The Rewrite Url should contain the capture group from the pattern matching that returns the part of the url after the subpath. The pattern used above returns 3 capture groups and the third one {R:2} returns the part of the url after `http://localhost:8080/grafana/`.