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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Nginx配置PATHINFO隱藏thinkphp index.php
這篇文章主要介紹了Nginx配置PATHINFO隱藏thinkphp index.php,本文直接給出配置示例,需要的朋友可以參考下2015-07-07
Nginx 1.28.0 源碼編譯安裝與自定義網頁部署詳細指南
本文介紹了Nginx1.28.0的安裝過程,提供了自定義HTML文件部署步驟、安裝后核心目錄說明、常用管理命令、部署前端項目示例等內容,感興趣的朋友跟隨小編一起看看吧2026-05-05
關于Nginx配置ssl證書實現(xiàn)https安全訪問
這篇文章主要介紹了關于Nginx配置ssl證書實現(xiàn)https安全訪問,前題條件是擁有服務器與可以解析到該服務器的自己的域名,需要的朋友可以參考下2023-04-04

