一、Nginx代理后端服务

  • nginx 服务器及端口 127.0.0.1:80
  • 后端服务:127.0.0.1:8080
  • 测试url:http://127.0.0.1:80/day06api/api/abc

1.配置

nginx配置如下:

location /day06api/ {proxy_pass http://127.0.0.1:8080/;
}

实际访问的端口服务:http://127.0.0.1:8080/api/ab

2.配置

nginx配置如下:

location /day06api {proxy_pass http://127.0.0.1:8080/;
}

实际访问的端口服务:http://127.0.0.1:8080//api/abc

3.配置

nginx配置如下:

location /day06api/ {proxy_pass http://127.0.0.1:8080;
}

实际访问的端口服务:http://127.0.0.1:8080/day06api/api/abc

4.配置

nginx配置如下:

location /day06api {proxy_pass http://127.0.0.1:8080;
}

实际访问的端口服务:http://127.0.0.1:8080/day06api/api/abc

5.配置

nginx配置如下:

location /day06api/ {proxy_pass http://127.0.0.1:8080/server/;
}

实际访问的端口服务:http://127.0.0.1:8080/server/api/abc

6.配置

nginx配置如下:

location /day06api {proxy_pass http://127.0.0.1:8080/server/;
}

实际访问的端口服务:http://127.0.0.1:8080/server//api/abc

7.配置

nginx配置如下:

ocation /day06api/ {proxy_pass http://127.0.0.1:8080/server;
}

实际访问的端口服务:http://127.0.0.1:8080/serverapi/abc

8.配置

nginx配置如下:

location /day06api {proxy_pass http://127.0.0.1:8080/server;
}

实际访问的端口服务:http://127.0.0.1:8080/server/api/abc

注意:

1、proxy_pass ip+port后面有斜杠\或者路径,新的ip路径是:

proxy_pass + 访问路径除去location相同部分路径。

2、proxy_pass 只有ip+port,新的路径:

proxy_pass + location + 访问路径除去location相同路径。

二、Nginx代理前端页面

1.root和alias使用位置:

  • root指令可以位于http、server、location中;
  • alias指令只能位于location中;

2.当两者都位于location中时, 对于符合location规则的URI处理方式不同:

  • 使用root指令,实际指向服务器文件的路径中,包含location路径,root+location+加上访问路径除去location相同部分的路径。
  • 使用alias指令,实际指向服务器文件路径中,不包含location路径,alias + 加上访问路径中除去location后的路径。

注意:

使用root时path后面有没有斜杠\都可以;使用alias时path一定要有斜杠\

3.try_files配置静态页面

#第一种:location没有/
location /benjamin {try_files $uri $uri/ /index.html;}#第二种:location有/
location /benjamin/ {  try_files $uri $uri/ /index.html;}

区别:

location没有/访问的路径:$uri + location + 路径中除location路径以外的路径。

location有/访问路径:$uri + 路径中除location路径以外的路径。

4.rewrite重写

规则:

rewrite "用来匹配路径的正则" 重写后的路径 [指令];

需要进行重写,$1.$2来引用变量
#rewrite "用来匹配路径的正则" 重写后的路径 [指令];location /api/upload {proxy_pass http://127.0.0.1:8082;proxy_connect_timeout 600;proxy_read_timeout 600;rewrite "^/api/(.*)$" /$1 break;
}

指令:常用的有2个,分别是:last、break

last:重写路径结束后,将得到的路径重新进行一次nginx路径匹配

break:重写路径结束后,不再重新匹配路径

redirect: 外部跳转,重定向地址会变

permanent:和redirect相似

没有任何修饰:会继续向下面的location地址进行匹配,用最后一个匹配的

三、nginx配置文件

########   Nginx的main(全局配置)文件
#指定nginx运行的用户及用户组,默认为nobody
#user  nobody;#开启的线程数,一般跟逻辑CPU核数一致
worker_processes  1;#定位全局错误日志文件,级别以notice显示,还有debug,info,warn,error,crit模式,debug输出最多,crir输出最少,根据实际环境而定
error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;#指定进程id的存储文件位置
pid        logs/nginx.pid;#指定一个nginx进程打开的最多文件描述符数目,受系统进程的最大打开文件数量限制
worker_rlimit_nofile 65535events {#设置工作模式为epoll,除此之外还有select,poll,kqueue,rtsig和/dev/poll模式use epoll;#定义每个进程的最大连接数,受系统进程的最大打开文件数量限制。worker_connections  1024;
}#######Nginx的Http服务器配置,Gzip配置
http {#主模块指令,实现对配置文件所包含的文件的设定,可以减少主配置文件的复杂度,DNS主配置文件中的zonerfc1912,acl基本上都是用include语句。include       mime.types;#核心模块指令,智力默认设置为二进制流,也就是当文件类型未定义时使用这种方式default_type  application/octet-stream;#下面代码为日志格式的设定,main为日志格式的名称,可自行设置,后面引用#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#引用日志main#access_log  logs/access.log  main;#设置允许客户端请求的最大的单个文件字节数client_max_body_size 20M;#指定来自客户端请求头的headebuffer大小client_header_buffer_size  32k;#指定连接请求试图写入缓存文件的目录路径client_body_temp_path /dev/shm/client_body_temp;#指定客户端请求中较大的消息头的缓存最大数量和大小,目前设置为4个32KBlarge client_header_buffers 4 32k;#开启高效文件传输模式sendfile        on;#开启防止网络阻塞#tcp_nopush     on;#开启防止网络阻塞#tcp_nodelay    on;#设置客户端连接保存活动的超时时间#keepalive_timeout  0;keepalive_timeout  65;#设置客户端请求读取超时时间client_header_timeout 10;#设置客户端请求主体读取超时时间client_body_timeout 10;#用于设置相应客户端的超时时间send_timeout####HttpGZip模块配置#httpGzip modules#开启gzip压缩#gzip  on;#设置允许压缩的页面最小字节数#gzip_min_length 1k;#申请4个单位为16K的内存作为压缩结果流缓存#gzip_buffers 4 16k;#设置识别http协议的版本,默认为1.1#gzip_http_version 1.1;#指定gzip压缩比,1-9数字越小,压缩比越小,速度越快#gzip_comp_level 2;#指定压缩的类型#gzip_types text/plain application/x-javascript text/css application/xml;#让前端的缓存服务器进过gzip压缩的页面#gzip_vary on;#########Nginx的server虚拟主机配置server {#监听端口为 80listen       80;#设置主机域名server_name  localhost;#设置访问的语言编码#charset koi8-r;#设置虚拟主机访问日志的存放路径及日志的格式为main#access_log  logs/host.access.log  main;#设置虚拟主机的基本信息location / {#设置虚拟主机的网站根目录root   html;#设置虚拟主机默认访问的网页index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

Nginx location中斜线\相关推荐

  1. nginx location配置 - ttlsa教程系列之nginx

    为什么80%的码农都做不了架构师?>>>    今天讲下location的用法,部分内容是直接从网络上摘取的,这边做了一个整理,为了便于理解和学习,我这边做了一些例子. 语法规则: ...

  2. 关于Nginx location中配置proxy_pass转发时斜线'/'导致的404问题

    2019独角兽企业重金招聘Python工程师标准>>> 在Nginx location通用匹配规则中配置proxy_pass转发时,假设有如下location配置: location ...

  3. php localtion,详解Nginx Location配置

    今天有一位同学问到 Nginx 的站点多路径匹配的问题? 1.www.domain.com/a 需要返回 /var/www/domain.com/a/index.html 2.www.domain.c ...

  4. Nginx location执行顺序和匹配规则

    nginx location执行顺序和匹配原则根据location的特点分为普通和正则两种,执行顺序和匹配规则的差异也在于此. 执行顺序 nginx会优先执行普通location,不管普通locati ...

  5. nginx location 匹配 多个规则_三道小练习助你弄懂 Nginx location 匹配

    在 Nginx 中我们可以通过配置 location 指令块,来决定一个请求 url 如何处理.如果我们编写了多条 location 指令块,如何保证各个 location 不会产生冲突?如何理清 l ...

  6. Nginx location(正则)

    Nginx location(正则) 1.nginx location 2.匹配标识说明 3.不同uri及特殊字符组合匹配的顺序说明 4.示例 1.nginx location location 指令 ...

  7. location ~ .php$,nginx location指令详解,

    nginx location指令详解, location匹配的是nginx的哪个变量? $request_uri location的匹配种类有哪些? =开头表示精确匹配 ^~ 开头,注意这不是一个正则 ...

  8. Nginx——location配置

    1.基本语法 location [=|~|~*|^~|@] pattern {--} 其中,[=|~|~*|^~|@]被称作location modifier,这会定义Nginx如何去匹配其后的pat ...

  9. nginx location 配置详细解释

    语法规则: location [=|~|~*|^~] /uri/ { - } = 开头表示精确匹配 ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可.nginx不对url做编码,因 ...

最新文章

  1. ps aux参数说明
  2. 第二章 第二节 安装Eclipse
  3. dup,dup2函数
  4. java 区间树_线段树(区间树)之区间染色和4n推导过程
  5. Bootstrap+PHP fileinput 实现多图上传 这是ajax上传,只能单张单张图片地上传
  6. 怎么把word转换pdf,pdf转换word ,pdf转换成高清图片
  7. [js] 你认为es5的设计缺陷有哪些?
  8. 深入分析MFC文档视图结构(项目实践)
  9. 让数据中心变得更加友好
  10. javascript 本地对象和内置对象_详解 JavaScript 面向对象
  11. jmeter如何通过后置处理器提取(正则提取器、json提取器)做接口关联?
  12. python如何在函数中使用全局变量
  13. Linux kernel进行编译时提示No rule to make target `menconfig'
  14. 阅读阿里巴巴开发人员手册1
  15. KeilC51基本关键字
  16. JS 案例 树形菜单
  17. BZOJ4316 小C的独立集 【仙人掌】
  18. 铁道部购票网站可能造成另一次的密码危机
  19. 菜鸟的linux云服务器第一次木马入侵处理记录(名为xmrigMiner的木马)
  20. TrustZone软硬件架构

热门文章

  1. JDK12 环境配置简单详细教程
  2. 最新出炉 全网最牛最新的pytest+requests+Python3.7+yaml+Allure+Jenkins+docker实现接口自动化测试【超详细】从0到封装
  3. android 8 国产手机图片,机器人大爆发 国产个性Android手机盘点
  4. 基于javaEE的化妆品营销管理系统
  5. 在SpringBoot项目中整合拦截器
  6. python数据分析基础008 -利用pandas带你玩转excel表格(中下篇)
  7. 初试只考计算机网络的学校,2020计算机考研全国985/211高校初试科目统计分析汇总...
  8. 考研考C语言多还是JAVA多,我现在是一名大三的学生。我现在已经学过C语言,资料结构和资料库。如果想往计算机方面考研还需要学什么?...
  9. 6.4 树和二叉树-树和森林
  10. 2019自媒体百家号运营:提升百家号的指数的技巧