<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## 一、概述 ``` /usr/local/nginx/conf/nginx.conf ``` ![](https://img.kancloud.cn/88/c4/88c4e8b92f3b99123f6a0550adfcdea6_1092x86.png) ![](https://img.kancloud.cn/3f/08/3f08c83b0dc3fec85842847ab110529f_201x373.png) 配置文件主要由三大部分組成:main(全局設置),events(Nginx 服務器與用戶的網絡連接配置),http(核心設置); ## 二、普通web部署 部署普通的網頁,直接將文件扔到nginx根目錄下的html文件夾,即可; ### **根應用部署** 如果需要部署為根應用,也簡單得很,就是把html文件夾刪除,直接把應用最外層名字命名為html即可; 或者修改根應用的目錄 ![](https://img.kancloud.cn/9a/32/9a326ab2d1dba7de496314992dd9a19f_396x108.png) 原本默認的`root html`改為`root html/mobile` ### **自定義部署** 例如,需要把應用的訪問名稱按照自己的需要來定義,可以用alias實現; ``` location /admin/ { alias /usr/lib/app/nginx/html/admin/; index index.html index.htm; } ``` 這樣訪問http://dns/admin就可以訪問到`/usr/lib/app/nginx/html/admin/`下的應用了; ## 三、反向代理部署 后端的web應用部署在tomcat中,假定訪問地址: ``` http://192.168.3.149:8080 ``` 首先配置上游服務器(http{}段): ``` upstream backend { server www.ray.org:8099; } ``` server 中配置(server{}段): ``` location / { root html; index index.html index.htm; proxy_pass http://backend; } location ~ .* { proxy_pass http://backend; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Fonwarded-For $proxy_add_x_forwarded_for; } ``` 即可實現在瀏覽器輸入:`http://localhost/`,轉發到地址`http://www.ray.org:8099` ## 四、前后端分離部署 前端部署在nginx,后端部署在tomcat等服務容器的情形; 與反向代理部署類似: 首先配置上游服務器(http{}段): ``` upstream backend { server www.ray.org:8090; //假定后端服務部署的端口為8090 } ``` server 中增加配置(server{}段): ``` location /api { proxy_pass http://backend/api; } ``` ## 五、日志 ![](https://img.kancloud.cn/88/2d/882d69ec2e5cf94f80898a3e69e2e21e_473x77.png) ## 六、include nginx的配置很靈活,支持include配置文件,如果一個復雜的業務中,我們的所有配置到nginx.conf. 這個文件就會比較亂, 也影響管理和閱讀;所以可以把它們拆分出來,分成不同的配置文件; 例如:如果你想在/conf下放多個配置文件 ,都加載到nginx中,直接在nginx.conf文件內include: ~~~bash include /usr/local/nginx/conf/*.conf ~~~ 舉例: ![](https://img.kancloud.cn/f6/f4/f6f4b68d9728a95d612be12bab46d310_1034x577.png) ## 七、location >[danger] 原則: > 1、`=`開頭表示精確匹配; > 2、`^~` 開頭表示uri以某個常規字符串開頭,不是正則匹配; > 3、`~`開頭表示區分大小寫的正則匹配; > 4、`~*`開頭表示不區分大小寫的正則匹配; > 5、`/` 通用匹配, 如果沒有其它匹配,任何請求都會匹配到; ``` location = / { # 精確匹配 / ,主機名后面不能帶任何字符串 [ configuration A ] } location / { # 因為所有的地址都以 / 開頭,所以這條規則將匹配到所有請求 # 但是正則和最長字符串會優先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 開頭的地址,匹配符合以后,還要繼續往下搜索 # 只有后面的正則表達式沒有匹配到時,這一條才會采用這一條 [ configuration C ] } location ~ /documents/Abc { # 匹配任何以 /documents/ 開頭的地址,匹配符合以后,還要繼續往下搜索 # 只有后面的正則表達式沒有匹配到時,這一條才會采用這一條 [ configuration CC ] } location ^~ /images/ { # 匹配任何以 /images/ 開頭的地址,匹配符合以后,停止往下搜索正則,采用這一條。 [ configuration D ] } location ~* \.(gif|jpg|jpeg)$ { # 匹配所有以 gif,jpg或jpeg 結尾的請求 # 然而,所有請求 /images/ 下的圖片會被 config D 處理,因為 ^~ 到達不了這一條正則 [ configuration E ] } location /images/ { # 字符匹配到 /images/,繼續往下,會發現 ^~ 存在 [ configuration F ] } location /images/abc { # 最長字符匹配到 /images/abc,繼續往下,會發現 ^~ 存在 # F與G的放置順序是沒有關系的 [ configuration G ] } location ~ /images/abc/ { # 只有去掉 config D 才有效:先最長匹配 config G 開頭的地址,繼續往下搜索,匹配到這一條正則,采用 [ configuration H ] } location ~* /js/.*/\.js ``` ## 八、rewrite rewrite和location功能有點像,都能實現跳轉,主要區別在于rewrite是在同一域名內更改獲取資源的路徑,而location是對一類路徑做控制訪問或反向代理,可以proxy\_pass到其他機器。很多情況下rewrite也會寫在location里,它們的執行順序是; 1. 執行server塊的rewrite指令 2. 執行location匹配 3. 執行選定的location中的rewrite指令 ## 九、全局變量 * `$args` : #這個變量等于請求行中的參數,同`$query_string` * `$content_length` : 請求頭中的Content-length字段。 * `$content_type` : 請求頭中的Content-Type字段。 * `$document_root` : 當前請求在root指令中指定的值。 * `$host` : 請求主機頭字段,否則為服務器名稱。 * `$http_user_agent` : 客戶端agent信息 * `$http_cookie` : 客戶端cookie信息 * `$limit_rate` : 這個變量可以限制連接速率。 * `$request_method` : 客戶端請求的動作,通常為GET或POST。 * `$remote_addr` : 客戶端的IP地址。 * `$remote_port` : 客戶端的端口。 * `$remote_user` : 已經經過Auth Basic Module驗證的用戶名。 * `$request_filename` : 當前請求的文件路徑,由root或alias指令與URI請求生成。 * `$scheme` : HTTP方法(如http,https)。 * `$server_protocol` : 請求使用的協議,通常是HTTP/1.0或HTTP/1.1。 * `$server_addr` : 服務器地址,在完成一次系統調用后可以確定這個值。 * `$server_name` : 服務器名稱。 * `$server_port` : 請求到達服務器的端口號。 * `$request_uri` : 包含請求參數的原始URI,不包含主機名,如:”/foo/bar.php?arg=baz”。 * `$uri` : 不帶請求參數的當前URI,$uri不包含主機名,如”/foo/bar.html”。 * `$document_uri` : 與$uri相同;
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看