Site updated: 2022-11-08 15:36:49
This commit is contained in:
1 parent
70647d340c
commit
c955416333
106 files changed
+116
-112
No files matched your search
@@ -96,10 +96,12 @@
|
||||
<ol>
|
||||
<li>location 配置规则</li>
|
||||
</ol>
|
||||
<figure class="highlight yaml"><figcaption data-lang="YAML"></figcaption><table><tr><td data-num="1"></td><td><pre>location <span class="token punctuation">[</span> = <span class="token punctuation">|</span> ~ <span class="token punctuation">|</span> ~* <span class="token punctuation">|</span> ^~ <span class="token punctuation">|</span> @ <span class="token punctuation">]</span> /uri <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="2"></td><td><pre></pre></td></tr><tr><td data-num="3"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="4"></td><td><pre></pre></td></tr><tr><td data-num="5"></td><td><pre>= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。</pre></td></tr><tr><td data-num="6"></td><td><pre>~ :用于表示 uri 包含正则表达式,并且区分大小写。</pre></td></tr><tr><td data-num="7"></td><td><pre>~* :用于表示 uri 包含正则表达式,并且不区分大小写。</pre></td></tr><tr><td data-num="8"></td><td><pre>^~ :用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的location后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。</pre></td></tr><tr><td data-num="9"></td><td><pre>@ <span class="token punctuation">:</span> "@" 定义一个命名的 location,使用在内部定向时,例如 error_page</pre></td></tr><tr><td data-num="10"></td><td><pre>/uri :不带任何修饰符,也表示前缀匹配,但是在正则匹配之后,如果没有正则命中,命中最长的规则</pre></td></tr><tr><td data-num="11"></td><td><pre>/ :通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default</pre></td></tr><tr><td data-num="12"></td><td><pre></pre></td></tr><tr><td data-num="13"></td><td><pre><span class="token punctuation">[</span>☆☆☆☆☆ uri没有“/”结尾时,location /abc/def可以匹配/abc/defghi请求,也可以匹配/abc/def/ghi等。而有“/”结尾时,location /abc/def/不能匹配/abc/defghi请求,只能匹配/abc/def/anything这样的请求<span class="token punctuation">]</span><span class="token punctuation">&#123;</span>.red<span class="token punctuation">&#125;</span></pre></td></tr></table></figure><ol start="2">
|
||||
<li>proxy_pass 配置规则</li>
|
||||
</ol>
|
||||
<figure class="highlight yaml"><figcaption data-lang="YAML"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token punctuation">[</span>url结尾加上了/<span class="token punctuation">]</span><span class="token punctuation">&#123;</span>.red<span class="token punctuation">&#125;</span>,相当于是绝对路径,则Nginx不会把location中匹配的路径部分加入代理uri。</pre></td></tr><tr><td data-num="2"></td><td><pre><span class="token punctuation">[</span>url结尾不加/<span class="token punctuation">]</span><span class="token punctuation">&#123;</span>.red<span class="token punctuation">&#125;</span>,Nginx则会把匹配的路径部分加入代理uri。</pre></td></tr><tr><td data-num="3"></td><td><pre></pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token key atrule">情景1</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="5"></td><td><pre>proxy_pass后有/ </pre></td></tr><tr><td data-num="6"></td><td><pre>访问地址:http<span class="token punctuation">:</span>//localhost<span class="token punctuation">:</span>8081/WCP.Service/wcp/modeladapter/download/asc.shtml</pre></td></tr><tr><td data-num="7"></td><td><pre>最终代理:http<span class="token punctuation">:</span>//10.194.171.7<span class="token punctuation">:</span>13082/modeladapter/download/asc.shtml</pre></td></tr><tr><td data-num="8"></td><td><pre>location /WCP.Service/wcp/modeladapter/download/ <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="9"></td><td><pre> proxy_pass http<span class="token punctuation">:</span>//10.194.171.7<span class="token punctuation">:</span>13082/modeladapter/download/;</pre></td></tr><tr><td data-num="10"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="11"></td><td><pre>访问地址:http<span class="token punctuation">:</span>//localhost<span class="token punctuation">:</span>8081/model/asc.shtml</pre></td></tr><tr><td data-num="12"></td><td><pre>最终代理:http<span class="token punctuation">:</span>//127.0.0.1<span class="token punctuation">:</span>8082/model/asc.shtml</pre></td></tr><tr><td data-num="13"></td><td><pre>location /model/ <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="14"></td><td><pre> proxy_pass http<span class="token punctuation">:</span>//127.0.0.1<span class="token punctuation">:</span>8082/model/;</pre></td></tr><tr><td data-num="15"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="16"></td><td><pre></pre></td></tr><tr><td data-num="17"></td><td><pre><span class="token key atrule">情景2</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="18"></td><td><pre>proxy_pass后有/</pre></td></tr><tr><td data-num="19"></td><td><pre>访问地址:http<span class="token punctuation">:</span>//localhost<span class="token punctuation">:</span>8081/model/asc.shtml</pre></td></tr><tr><td data-num="20"></td><td><pre>最终代理:http<span class="token punctuation">:</span>//127.0.0.1<span class="token punctuation">:</span>8082/asc.shtml</pre><Line truncated
|
||||
<figure class="highlight yaml"><figcaption data-lang="YAML"></figcaption><table><tr><td data-num="1"></td><td><pre>location <span class="token punctuation">[</span> = <span class="token punctuation">|</span> ~ <span class="token punctuation">|</span> ~* <span class="token punctuation">|</span> ^~ <span class="token punctuation">|</span> @ <span class="token punctuation">]</span> /uri <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="2"></td><td><pre></pre></td></tr><tr><td data-num="3"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="4"></td><td><pre></pre></td></tr><tr><td data-num="5"></td><td><pre>= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配成功,就停止继续向下搜索并立即处理该请求。</pre></td></tr><tr><td data-num="6"></td><td><pre>~ :用于表示 uri 包含正则表达式,并且区分大小写。</pre></td></tr><tr><td data-num="7"></td><td><pre>~* :用于表示 uri 包含正则表达式,并且不区分大小写。</pre></td></tr><tr><td data-num="8"></td><td><pre>^~ :用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字符串匹配度最高的location后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。</pre></td></tr><tr><td data-num="9"></td><td><pre>@ <span class="token punctuation">:</span> "@" 定义一个命名的 location,使用在内部定向时,例如 error_page</pre></td></tr><tr><td data-num="10"></td><td><pre>/uri :不带任何修饰符,也表示前缀匹配,但是在正则匹配之后,如果没有正则命中,命中最长的规则</pre></td></tr><tr><td data-num="11"></td><td><pre>/ :通用匹配,任何未匹配到其它location的请求都会匹配到,相当于switch中的default</pre></td></tr></table></figure><p><span class="red">uri 没有 “/” 结尾时,location /abc/def 可以匹配 /abc/defghi 请求,也可以匹配 /abc/def/ghi 等。</span><br />
|
||||
<span class="red">uri 有 “/” 结尾时,location /abc/def/ 不能匹配 /abc/defghi 请求,只能匹配 /abc/def/anything 这样的请求</span>☆☆☆☆☆<br />
|
||||
2. proxy_pass 配置规则<br />
|
||||
<span class="red"> url 结尾加上了 /</span>,<ins>相当于是绝对路径,则 Nginx 不会把 location 中匹配的路径部分加入代理 uri</ins>。<br />
|
||||
<span class="red">url 结尾不加 /</span>,<ins>Nginx 则会把匹配的路径部分加入代理 uri</ins>。</p>
|
||||
<figure class="highlight yaml"><figcaption data-lang="YAML"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token key atrule">情景1</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="2"></td><td><pre>proxy_pass后有/ </pre></td></tr><tr><td data-num="3"></td><td><pre>访问地址:http<span class="token punctuation">:</span>//localhost<span class="token punctuation">:</span>8081/WCP.Service/wcp/modeladapter/download/asc.shtml</pre></td></tr><tr><td data-num="4"></td><td><pre>最终代理:http<span class="token punctuation">:</span>//10.194.171.7<span class="token punctuation">:</span>13082/modeladapter/download/asc.shtml</pre></td></tr><tr><td data-num="5"></td><td><pre>location /WCP.Service/wcp/modeladapter/download/ <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="6"></td><td><pre> proxy_pass http<span class="token punctuation">:</span>//10.194.171.7<span class="token punctuation">:</span>13082/modeladapter/download/;</pre></td></tr><tr><td data-num="7"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="8"></td><td><pre>访问地址:http<span class="token punctuation">:</span>//localhost<span class="token punctuation">:</span>8081/model/asc.shtml</pre></td></tr><tr><td data-num="9"></td><td><pre>最终代理:http<span class="token punctuation">:</span>//127.0.0.1<span class="token punctuation">:</span>8082/model/asc.shtml</pre></td></tr><tr><td data-num="10"></td><td><pre>location /model/ <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="11"></td><td><pre> proxy_pass http<span class="token punctuation">:</span>//127.0.0.1<span class="token punctuation">:</span>8082/model/;</pre></td></tr><tr><td data-num="12"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="13"></td><td><pre></pre></td></tr><tr><td data-num="14"></td><td><pre><span class="token key atrule">情景2</span><span class="token punctuation">:</span></pre></td></tr><tr><td data-num="15"></td><td><pre>proxy_pass后有/</pre></td></tr><tr><td data-num="16"></td><td><pre>访问地址:http<span class="token punctuation">:</span>//localhost<span class="token punctuation">:</span>8081/model/asc.shtml</pre></td></tr><tr><td data-num="17"></td><td><pre>最终代理:http<span class="token punctuation">:</span>//127.0.0.1<span class="token punctuation">:</span>8082/asc.shtml</pre></td></tr><tr><td data-num="18"></td><td><pre>location /model/ <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="19"></td><td><pre> proxy_pass http<span class="token punctuation">:</span>//127.0.0.1<span class="token punctuation">:</span>8082/;</pre></td></tr><tr><td data-num="20"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="21"></td><td><pre></pre></td></tr><tr><td data-num="22"></td><td><pre>情景3:</pre></td></tr><tr><td data-num="23"></td><td><pre>proxy_pass后没有/ </pre></td></tr><tr><td data-num=&#Line truncated
|
||||
<figure class="highlight yaml"><figcaption data-lang="YAML"></figcaption><table><tr><td data-num="1"></td><td><pre><span class="token comment">#user nobody;</span></pre></td></tr><tr><td data-num="2"></td><td><pre>worker_processes 1;</pre></td></tr><tr><td data-num="3"></td><td><pre></pre></td></tr><tr><td data-num="4"></td><td><pre><span class="token comment">#error_log logs/error.log;</span></pre></td></tr><tr><td data-num="5"></td><td><pre><span class="token comment">#error_log logs/error.log notice;</span></pre></td></tr><tr><td data-num="6"></td><td><pre><span class="token comment">#error_log logs/error.log info;</span></pre></td></tr><tr><td data-num="7"></td><td><pre></pre></td></tr><tr><td data-num="8"></td><td><pre><span class="token comment">#pid logs/nginx.pid;</span></pre></td></tr><tr><td data-num="9"></td><td><pre></pre></td></tr><tr><td data-num="10"></td><td><pre>events <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="11"></td><td><pre> worker_connections 1024;</pre></td></tr><tr><td data-num="12"></td><td><pre><span class="token punctuation">&#125;</span></pre></td></tr><tr><td data-num="13"></td><td><pre></pre></td></tr><tr><td data-num="14"></td><td><pre>http <span class="token punctuation">&#123;</span></pre></td></tr><tr><td data-num="15"></td><td><pre> include mime.types;</pre></td></tr><tr><td data-num="16"></td><td><pre> default_type application/octet<span class="token punctuation">-</span>stream;</pre></td></tr><tr><td data-num="17"></td><td><pre></pre></td></tr><tr><td data-num="18"></td><td><pre> <span class="token comment">#log_format main '$remote_addr - $remote_user [$time_local] "$request" '</span></pre></td></tr><tr><td data-num="19"></td><td><pre> <span class="token comment"># '$status $body_bytes_sent "$http_referer" '</span></pre></td></tr><tr><td data-num="20"></td><td><pre> <span class="token comment"># '"$http_user_agent" "$http_x_forwarded_for"';</span></pre></td></tr><tr><td data-num="21"></td><td><pre></pre></td></tr><tr><td data-num="22"></td><td><pre> <span class="token comment">#access_log logs/access.log main;</span></pre></td></tr><tr><td data-num="23"></td><td><pre></pre></td></tr><tr><td data-num="24"></td><td><pre> sendfile on;</pre></td></tr><tr><td data-num="25"></td><td><pre> <span class="token comment">#tcp_nopush on;</span></pre></td></tr><tr><td data-num="26"></td><td><pre></pre></td></tr><tr><td data-num="27"></td><td><pre> <span class="token comment">#keepalive_timeout 0;</span></pre></td></tr><tr><td data-num="28"></td><td><pre> keepalive_timeout 65;</pre></td></tr><tr><td data-num="29"></td><td><pre></pre></td></tr><tr><td data-num="30"></td><td><pre> <span class="token comment">#gzip on;</span></pre></td></tr><tr><td data-num="31&Line truncated
|
||||
</item>
|
||||
<item>
|
||||
|
||||
Reference in new issue
Block a user