nginx部署前端項目location時root和alias配置指南
操作說明
1、nginx目錄中html目錄下放置green 前端項目
監(jiān)聽端口:8181
nginx配置文件配置location時使用root方式
# root 方式 # 方式1 域名直接可訪問到 即 localhost:8181 #location / { # root html; # index green/index.html green/index.htm; #} # 方式2 域名直接可訪問到 即 localhost:8181 #location / { # root html/green/; # index index.html index.htm; #} # 方式2.1 域名直接可訪問到 即 localhost:8181 #location / { # root html/green; # index index.html index.htm; #} # 方式3 域名+/green 可訪問到 即 localhost:8181/green #location /green/ { # root html; # index index.html index.htm; #} # 方式3.1 訪問不到green下任務資源 #location /green/ { # root html/green/; # index index.html index.htm; #}
以上三種 方式結論驗證 用root屬性指定的值是要加入到最終路徑中的,匹配條件會拼接到路徑中
即最終獲取的靜態(tài)頁面路徑為:域名 + root + 區(qū)配條件 + index
即找到 localhost:8181/html/green/index.html
備注:方式2 和方式2.1 用于驗證 root 屬性的值最后的 “/“為非必須,有沒有最后一個”/” 都可以訪問到
nginx配置文件配置location時使用alias方式
# alias 方式 # 方式1 域名直接可訪問到 即 localhost:8181 #location / { # alias html/green/; # index index.html index.htm; #} # 方式1.1 訪問不到green下任務資源 #location / { # alias html/green; # index index.html index.htm; #} # 方式2 域名直接可訪問到 即 localhost:8181 #location / { # alias html/; # index green/index.html green/index.htm; #} # 方式3 域名直接可訪問到 即 localhost:8181/green #location /green { # alias html/green/; # index index.html index.htm; #} # 方式3.1 域名直接可訪問到 即 localhost:8181/green #location /green/ { # alias html/green/; # index index.html index.htm; #}
以上三種 方式結論驗證 用alias屬性指定的值,匹配條件不會拼接到路徑中,會直接在alias屬性的值下面去找資源
即最終獲取的靜態(tài)頁面路徑為:域名 + alias + index
即找到 localhost:8181/html/green/index.html
備注:方式1 和方式1.1 用于驗證 alias 屬性的值最后的 “/“為必須,沒有最后一個”/” 訪問不到
完整的nginx配置文件如下
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; map $time_iso8601 $logdate{ '~^(?<ymd>\d{4}-\d{2}-\d{2})' $ymd; default 'date-not-found'; } access_log logs/access-$logdate.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; server { listen 8181; server_name localhost; access_log logs/access-$logdate.log main; # root 方式 # 方式1 域名直接可訪問到 即 localhost:8181 location / { root html; index green/index.html green/index.htm; } # 方式2 域名直接可訪問到 即 localhost:8181 #location / { # root html/green/; # index index.html index.htm; #} # 方式2.1 域名直接可訪問到 即 localhost:8181 #location / { # root html/green; # index index.html index.htm; #} # 方式3 域名+/green 可訪問到 即 localhost:8181/green #location /green/ { # root html; # index index.html index.htm; #} # 方式3.1 訪問不到green下任務資源 #location /green/ { # root html/green/; # index index.html index.htm; #} # 以上三種 方式結論驗證 用root屬性指定的值是要加入到最終路徑中的,匹配條件會拼接到路徑中 # 即最終獲取的靜態(tài)頁面路徑為:域名 + root + 區(qū)配條件 + index # 即找到 localhost:8181/html/green/index.html # 備注:方式2 和方式2.1 用于驗證 root 屬性的值最后的 "/"為非必須,有沒有最后一個"/" 都可以訪問到 # alias 方式 # 方式1 域名直接可訪問到 即 localhost:8181 #location / { # alias html/green/; # index index.html index.htm; #} # 方式1.1 訪問不到green下任務資源 #location / { # alias html/green; # index index.html index.htm; #} # 方式2 域名直接可訪問到 即 localhost:8181 #location / { # alias html/; # index green/index.html green/index.htm; #} # 方式3 域名直接可訪問到 即 localhost:8181/green #location /green { # alias html/green/; # index index.html index.htm; #} # 方式3.1 域名直接可訪問到 即 localhost:8181/green #location /green/ { # alias html/green/; # index index.html index.htm; #} # 以上三種 方式結論驗證 用alias屬性指定的值,匹配條件不會拼接到路徑中,會直接在alias屬性的值下面去找資源 # 即最終獲取的靜態(tài)頁面路徑為:域名 + alias + index # 即找到 localhost:8181/html/green/index.html # 備注:方式1 和方式1.1 用于驗證 alias 屬性的值最后的 "/"為必須,沒有最后一個"/" 訪問不到 # 后臺服務; location /fdiagnose/ { proxy_ignore_client_abort on; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header REMOTE-HOST $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://localhost:9090; } } }
附:Nginx 配置中root和alias的區(qū)別分析
root和alias都可以定義在location模塊中,都是用來指定請求資源的真實路徑,比如:
location /i/ { root /data/w3; }
請求 http://foofish.net/i/top.gif
這個地址時,那么在服務器里面對應的真正的資源
是 /data/w3/i/top.gif
文件
注意:真實的路徑是root指定的值加上location指定的值 。
而 alias 正如其名,alias指定的路徑是location的別名,不管location的值怎么寫,資源的 真實路徑都是 alias 指定的路徑 ,比如:
location /i/ { alias /data/w3/; }
同樣請求 http://foofish.net/i/top.gif
時,在服務器查找的資源路徑是: /data/w3/top.gif
其他區(qū)別:
1、 alias 只能作用在location中,而root可以存在server、http和location中。
2、 alias 后面必須要用 “/” 結束,否則會找不到文件,而 root 則對 ”/” 可有可無。
總結
到此這篇關于nginx部署前端項目location時root和alias配置的文章就介紹到這了,更多相關nginx location用root和alias配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Ubuntu16.04上為Nginx創(chuàng)建自簽名SSL證書
SSL證書是實現(xiàn)HTTPS的關鍵組成部分,本文主要介紹了Ubuntu16.04上為Nginx創(chuàng)建自簽名SSL證書,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2024-05-05Nginx之location匹配和Rewrite重寫跳轉方式
這篇文章主要介紹了Nginx之location匹配和Rewrite重寫跳轉方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06