Rumah > Operasi dan penyelenggaraan > Nginx > Bagaimana untuk mengkonfigurasi pelbagai lokasi nginx

Bagaimana untuk mengkonfigurasi pelbagai lokasi nginx

王林
Lepaskan: 2023-05-17 22:25:45
ke hadapan
2654 orang telah melayarinya

Kata Pengantar

Mengkonfigurasi berbilang lokasi di bawah pelayan nginx melaksanakan pemprosesan yang berbeza mengikut padanan laluan yang berbeza.

nginx ungkapan biasa biasa

Peraturan tatabahasa: lokasi [=|~|~*|^~] /uri/ { …

= bermula dengan: padanan tepat.
  • ^~ bermaksud pada mulanya: ia sensitif huruf besar-besaran. Permulaan
  • ~ bermaksud: padanan biasa sensitif huruf besar-besaran.
  • ~* bermula dengan: padanan biasa tidak sensitif huruf besar-besaran.
  • !~ dan !~* masing-masing mewakili: padanan biasa tidak sensitif huruf besar dan tidak sensitif huruf besar.
  • / bermaksud: padanan universal, sebarang permintaan akan dipadankan.
  • Dalam kes berbilang konfigurasi lokasi, susunan padanan adalah (tidak disahkan):

Perlawanan pertama =, kemudian padankan ^~ , diikuti dengan padanan biasa mengikut susunan dalam fail, dan akhirnya diserahkan kepada / padanan universal. Apabila perlawanan berjaya, pemadanan dihentikan dan permintaan diproses mengikut peraturan pemadanan semasa.

Ukuran sebenar

server {
    listen       80;
    listen  [::]:80;
    server_name  location.test.com;

    access_log  /var/log/nginx/location.host.access.log  main;

    #*********************注意多个location通常按精确的放前面,模糊大范围的放后面,nginx先找= ******************************
    location = /login.html {#精确匹配 /login
	root /usr/share/nginx/html/test-equal;#请求/login.html相当于寻找资源/usr/share/nginx/html/test-equal/login.html
    }
    location ^~ /prefix/ {#区分大小写且以/prefix/开头
	root /usr/share/nginx/html/test-prefix;#root代表根目录,请求/prefix/prefix.html相当于寻找资源/usr/share/nginx/html/test-prefix/prefix/prefix.html 
    }
    location ~ \.(png|jpg)$ {#不区分大小写且以.png或.jpg结尾
	root /usr/share/nginx/html/test-suffix;#请求/suffix/a.png相当于寻找资源/usr/share/nginx/html/test-suffix/suffix/a.png
    }
    location ^~ /jd/ {# 区分大小写且以/jd/开头
	proxy_pass https://www.jd.com/;#proxy_pass  此处的url以/结尾,则nginx会取掉location部分再转发,例如,请求/jd/电器?name=1 则会转发到https://www.jd.com/电器?name=1
    }
    location ^~ /s {# /会匹配到所有的
	proxy_pass https://www.baidu.com;#proxy_pass  此处的url没有以/结尾,则匹配到的地址全部拼接到代理后的地址,例如,请求/s?name=1 则会转发到https://www.baidu.com/s?name=1
    }
    location  / {# 会返回index.html
	root /usr/share/nginx/html;
	index index.html;	
    }  
}
Salin selepas log masuk

Catatan

Perbezaan antara akar dan alias di bawah lokasi:

Contoh:

Permintaan pelanggan : http://localhost:8080/user/info/a.txt

nginx Jika dikonfigurasikan dengan root: nginx akan mencari sumber: /home/html/user/info/a.txt

location ^~ /user {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->
root /home/html;#此处可以不以/结尾
}
Salin selepas log masuk

Jika nginx dikonfigurasikan dengan alias: nginx akan mencari sumber: /home/html/info/a.txt

location ^~ /user {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->
alias /home/html/;#此处以/结尾
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi pelbagai lokasi nginx. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan