1. местоположение: как следует из названия --> адрес, также называемый маршрутизацией.
Сервер nginx является очень базовой конфигурацией.Когда персонал по эксплуатации и обслуживанию nginx изменяет конфигурацию nginx, большинство из них также вращается вокруг конфигурации местоположения.
Давайте взглянем на простую конфигурацию местоположения:
location / {
root home/;
index index.html;
}
Эта конфигурация означает, что любой путь доступа к серверу nginx будет переходить на страницу index.html в домашнем каталоге.
Давайте подробно поговорим о правилах сопоставления пути к местоположению.Существует 3 метода сопоставления для сопоставления местоположения.
1. Абсолютное совпадение, в точности равное знаку "=", например:
##当访问地址端口后面的地址等于/login/demo.html时,就会直接走这个location地址。
location = /login/demo.html {
*******
}
2. Обычное совпадение ~ или ~* . Первый чувствителен к регистру, второй не чувствителен к регистру.
location ^~ /images/ {
# 匹配任何已/images/开头的任何查询并且停止搜索。任何正则表达式将不会被测试。
}
location ~* .(gif|jpg|jpeg)$ {
# 匹配任何已.gif、.jpg 或 .jpeg 结尾的请求
}
3. Общее совпадение без знака. Даже если совпадение без знака совпадет, оно не сломается и будет продолжать совпадать вниз. Если будет найдено обычное или полное совпадение, оно будет использовано напрямую.
в заключении:= точное совпадение. Если этот запрос совпадает, поиск останавливается, и запрос немедленно обрабатывается. ~ для совпадения с учетом регистра (доступны регулярные выражения) !~ несоответствие с учетом регистра ~* — это совпадение без учета регистра (доступно регулярное выражение) !~* — регистронезависимое несоответствие ^~ Если этот префикс используется для обычной строки, он указывает nginx не проверять регулярное выражение, если путь совпадает.
2. proxy_pass обратный прокси
1: Когда мы сталкиваемся с междоменными проблемами, и клиент не может поддерживать CORS, лучший способ — позволить серверу действовать как прокси. Откройте маршрут в конфигурации nginx сервера, на котором расположена фронтенд-страница, а затем используйте прокси для запроса ресурсов под другим доменным именем. 2: после того, как внешний и внутренний интерфейс разделены, после того, как внешний интерфейс будет разработан независимо, proxy_pass также можно использовать для обратного прокси-сервера к серверной службе, или адрес развертывания сервера неудобно раскрывать, и прокси также можно использовать в качестве обратного прокси.
Простой пример:
location /login {
proxy_pass http://www.sohu.com/
}
Особое внимание следует обратить на наличие слэшей в адресе после прокси:
Если мы посетим адрес:http://192.168.0.101:8080/login/index.html Есть косые черты: абсолютный адрес, который в итоге переходит на:www.sohu.com/index.htmlБез косой черты: относительный адрес, который заканчивается переходом на:woohoo.SOHU.com/login/index…3. Rewrite перенаправляет, rewrite имеет 5 командных режимов
Роль перезаписи заключается в изменении uri, но следует отметить, что перезаписи имеет побочный эффект повторного сопоставления местоположения. Поскольку этап обработки proxy_pass является более поздним, чем обработка местоположения, его необходимо прервать, чтобы предотвратить повторную запись от входа в следующее совпадение местоположения и потерю proxy_pass.
1. перерыв следующим образом:
#这个指令表示,如果/login匹配成功,则直接在home路径中查找demo.html文件
#然后跳转到demo.html。注意这是内部跳转,浏览器上的地址url不会变,还是以/login结尾。
location /login {
rewrite ^/ /demo.html break;
root home/;
}
2, перенаправление; следующим образом
#和break差不多,不过这个表示外部跳转,也会跳转到demo.html页面,不过浏览器地址会自动变成demo.html
location /login {
rewrite ^/ /demo.html redirect;
root home/;
}
3, постоянный, аналог перенаправления.
4. last: если он изменен last, nginx сопоставит адрес /demo.html с адресами других локаций, а затем найдет совпадающий адрес и продолжит выполнение. Здесь он выполнит команду /demo.html, а затем внутренне перейдет на страницу /demo.html следующим образом:
location /login {
rewrite ^/ /demo.html last;
root home/;
}
location /demo.html {
rewrite ^/ /demo.html break;
root home/;
}
5. Отсутствие изменений означает отсутствие изменений. Вы можете видеть, что за этим переписыванием нет никаких изменений. Когда нет изменений, после сопоставления местоположения оно не остановится и будет продолжать соответствовать следующему местоположению. Знайте, чтобы соответствовать последнему, используйте последний, который соответствует. . следующее
location /login {
rewrite ^/ /demo.html ;
root home/;
}
В-четвертых, вверх по течению, конфигурация загрузки
Стратегия, используемая восходящим потоком для настройки нагрузки, nginx поставляется с: polling/weight/ip_hash. Сторонние стратегии доступны для особых нужд (используются реже).
upstream test{
server 192.168.0.101:8081;
server 192.168.0.102:8081;
}
upstream test1 {
server 192.168.0.101:8081 weight=2;
server 192.168.0.102:8081 weight=1;
}
upstream test2 {
ip_hash
server 192.168.0.101:8081;
server 192.168.0.102:8081;
}
server{
listen 80;
server_name localhost;
location /login {
proxy_pass http://test/
}
}
При посещении:http://localhost/login
час,nginx
будет вserver 192.168.0.101:8081; server 192.168.0.102:8081
Круговой доступ между двумя сервисами.
upstream test1
Указывает, что к указанной выше службе обращаются дважды, а к следующей службе обращаются один раз.
upstream test2
Указывает, что хеш-значение IP-адреса клиента используется для определения того, к какой службе осуществляется доступ.После этой настройки службы, к которым обращается один и тот же клиент, обычно не изменяются.
Ссылаться на:blog.CSDN.net/Чжан Лэй082… woo woo woo.cn blog on.com/ 176 выборов подряд…