场景:SpringBoot+Vue前后端分离,用Nginx做反向代理。

一、Nginx.conf

#定义Nginx运行的用户和用户组
user  root;
#进行增大并发连接数的处理 跟cpu保持一致 八核设置八个
worker_processes  1; #nginx的错误日志路径
error_log  /var/log/nginx/error.log warn;
#nginx服务启动时候pid 进程ID
pid        /var/run/nginx.pid;#定义事件相关的属性
events {#一个进程允许处理的最大连接数worker_connections  1024;
}http {# 文件扩展名与文件类型映射表(支持的文件类型)include       /etc/nginx/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"';# 请求日志access_log  /var/log/nginx/access.log  main;# 开启高效文件传输模式。sendfile        on;# 防止网络阻塞#tcp_nopush     on;# 长连接超时时间,单位是秒keepalive_timeout  65;# 开启gzip压缩输出#gzip  on;# 导入server配置文件include /etc/nginx/conf.d/*.conf;
}

二、server配置文件样例

1、a.conf

server {# 需要被监听的端口号,前提是此端口号没有被占用,否则在重启 Nginx 时会报错listen       9500;# 域名可以有多个,用空格隔开server_name  localhost;# 上述端口指向的根目录root /u01/a/a1/a-web/dist;# 项目根目录中指向项目首页index index.html;#client_max_body_size 默认 1M,表示 客户端请求服务器最大允许大小,#在“Content-Length”请求头中指定。#如果请求的正文数据大于client_max_body_size,#HTTP协议会报错 413 Request Entity Too Large。#就是说如果请求的正文大于client_max_body_size,一定是失败的。#如果需要上传大文件,一定要修改该值。client_max_body_size 20m; #Nginx分配给请求数据的Buffer大小,如果请求的数据小于client_body_buffer_size#直接将数据先在内存中存储。#如果请求的值大于client_body_buffer_size小于client_max_body_size,#就会将数据先存储到临时文件中,在哪个临时文件中呢?#client_body_temp 指定的路径中,默认该路径值是/tmp/.#所以配置的client_body_temp地址,一定让执行的Nginx的用户组有读写权限。#否则,当传输的数据大于client_body_buffer_size,写进临时文件失败会报错。client_body_buffer_size 128k;#传输的数据大于client_max_body_size,一定是传不成功的。#小于client_body_buffer_size直接在内存中高效存储。#如果大于client_body_buffer_size小于client_max_body_size会存储临时文件,#临时文件一定要有权限。#如果追求效率,就设置 client_max_body_size client_body_buffer_size相同的值,#这样就不会存储临时文件,直接存储在内存了。# 访问控制# 根请求会指向的页面 location / {# 配合@使用, 如果能找到指定的uri那么就返回相应的内容,#否则的话就内部重定向到后端名称为@backup的location# 此处的 @router 实际上是引用下面的转发,否则在 Vue 路由刷新时可能会抛出 404try_files $uri $uri/ @router;# 请求指向的首页index index.html;# 返回nginx的状态#stub_status on ;   # 允许的访问地址#allow 192.168.*.**;   # 默认禁止所有访问,除了允许的#deny all;                               }# 由于路由的资源不一定是真实的路径,无法找到具体文件# 所以需要将请求重写到 index.html 中,然后交给真正的 Vue 路由处理请求资源location @router {rewrite ^.*$ /index.html last;}# 目录列表(API控制) location /api/ {# 后端的真实接口 反向代理proxy_pass http://192.168.*.**:5002/api/;# 重定向 关proxy_redirect off;#反向代理设置 proxy_set_header是用来设置请求头的,设置了请求头后,#后端服务器就可以获取到这些变量值。#proxy_set_header Host $host;  $host就是nginx代理服务器,#也就是windows客户端请求的host#$host代表转发服务器,$proxy_port代表转发服务器请求后端服务器的端口proxy_set_header Host $host;#将$remote_addr的值放进变量X-Real-IP中,此变量名可变,$remote_addr的值为客户端的ipproxy_set_header X-Real-IP $remote_addr;#封装报文#后端的Web服务器可以通过X-Forwarded-For获取用户真实IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Cookie $http_cookie;# for Ajax#fastcgi_param HTTP_X_REQUESTED_WITH $http_x_requested_with;proxy_set_header HTTP-X-REQUESTED-WITH $http_x_requested_with;proxy_set_header HTTP_X_REQUESTED_WITH $http_x_requested_with;proxy_set_header x-requested-with $http_x_requested_with;#限制请求体的大小,若超过所设定的大小,返回413错误。client_max_body_size 10m;#缓冲区代理缓冲用户端请求的最大字节数,client_body_buffer_size 128k;#http请求无法立即被容器(tomcat, netty等)处理,被放在nginx的待处理池中等待被处理。#此参数为等待的最长时间,默认为60秒,官方推荐最长不要超过75秒。#nginx跟后端服务器连接超时时间(代理连接超时)proxy_connect_timeout 1000;#http请求被服务器处理完后,把数据传返回给Nginx的用时,默认60秒。#后端服务器数据回传时间(代理发送超时)proxy_send_timeout 1000;#http请求被容器(tomcat, netty等)处理后,nginx会等待处理结果,#也就是容器返回的response。#此参数即为服务器响应时间,默认60秒。#连接成功后,后端服务器响应时间(代理接收超时)proxy_read_timeout 1000;#设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffer_size 128k;#proxy_buffers缓冲区,网页平均在32k以下的设置proxy_buffers 32 32k;#高负荷下缓冲大小(proxy_buffers*2)proxy_busy_buffers_size 128k;#设定缓存文件夹大小,大于这个值,将从upstream服务器传proxy_temp_file_write_size 128k;}
}

2、同模式其他文件,不同listen端口,不同root;

三、nginx.pid

#指定进程id
12597

四、mime.types

types {text/html                                        html htm shtml;text/css                                         css;text/xml                                         xml;image/gif                                        gif;image/jpeg                                       jpeg jpg;application/javascript                           js;application/atom+xml                             atom;application/rss+xml                              rss;text/mathml                                      mml;text/plain                                       txt;text/vnd.sun.j2me.app-descriptor                 jad;text/vnd.wap.wml                                 wml;text/x-component                                 htc;image/png                                        png;image/svg+xml                                    svg svgz;image/tiff                                       tif tiff;image/vnd.wap.wbmp                               wbmp;image/webp                                       webp;image/x-icon                                     ico;image/x-jng                                      jng;image/x-ms-bmp                                   bmp;font/woff                                        woff;font/woff2                                       woff2;application/java-archive                         jar war ear;application/json                                 json;application/mac-binhex40                         hqx;application/msword                               doc;application/pdf                                  pdf;application/postscript                           ps eps ai;application/rtf                                  rtf;application/vnd.apple.mpegurl                    m3u8;application/vnd.google-earth.kml+xml             kml;application/vnd.google-earth.kmz                 kmz;application/vnd.ms-excel                         xls;application/vnd.ms-fontobject                    eot;application/vnd.ms-powerpoint                    ppt;application/vnd.oasis.opendocument.graphics      odg;application/vnd.oasis.opendocument.presentation  odp;application/vnd.oasis.opendocument.spreadsheet   ods;application/vnd.oasis.opendocument.text          odt;application/vnd.openxmlformats-officedocument.presentationml.presentationpptx;application/vnd.openxmlformats-officedocument.spreadsheetml.sheetxlsx;application/vnd.openxmlformats-officedocument.wordprocessingml.documentdocx;application/vnd.wap.wmlc                         wmlc;application/x-7z-compressed                      7z;application/x-cocoa                              cco;application/x-java-archive-diff                  jardiff;application/x-java-jnlp-file                     jnlp;application/x-makeself                           run;application/x-perl                               pl pm;application/x-pilot                              prc pdb;application/x-rar-compressed                     rar;application/x-redhat-package-manager             rpm;application/x-sea                                sea;application/x-shockwave-flash                    swf;application/x-stuffit                            sit;application/x-tcl                                tcl tk;application/x-x509-ca-cert                       der pem crt;application/x-xpinstall                          xpi;application/xhtml+xml                            xhtml;application/xspf+xml                             xspf;application/zip                                  zip;application/octet-stream                         bin exe dll;application/octet-stream                         deb;application/octet-stream                         dmg;application/octet-stream                         iso img;application/octet-stream                         msi msp msm;audio/midi                                       mid midi kar;audio/mpeg                                       mp3;audio/ogg                                        ogg;audio/x-m4a                                      m4a;audio/x-realaudio                                ra;video/3gpp                                       3gpp 3gp;video/mp2t                                       ts;video/mp4                                        mp4;video/mpeg                                       mpeg mpg;video/quicktime                                  mov;video/webm                                       webm;video/x-flv                                      flv;video/x-m4v                                      m4v;video/x-mng                                      mng;video/x-ms-asf                                   asx asf;video/x-ms-wmv                                   wmv;video/x-msvideo                                  avi;
}

五、反向代理可选参数

#以下是一些反向代理的配置,可选.
location / {proxy_pass http://****;proxy_redirect off;proxy_set_header X-Real-IP $remote_addr;#后端的Web服务器可以通过X-Forwarded-For获取用户真实IPproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $host;client_max_body_size 10m; #允许客户端请求的最大单文件字节数client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)proxy_temp_file_write_size 64k;#设定缓存文件夹大小,大于这个值,将从upstream服务器传
}

六、其他

1、参考 proxy_set_header:Nginx反向代理中proxy_set_header参数说明

中间件:Nginx工作使用记录(反向代理)相关推荐

  1. 带你了解什么是Nginx(实操反向代理-负载均衡)

    文章目录 一.前言 ①什么是Nginx? ②服务中为什么要使用Nginx原因? 二.安装Nginx 1.介绍 2.安装 ①在Linux系统安装nginx ②上传并解压到/usr/local/目录下 ③ ...

  2. 如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理

    如何在 FreeBSD 10.2 上安装 Nginx 作为 Apache 的反向代理 Nginx 是一款自由开源的 HTTP 和反向代理服务器,也可以用作 POP3/IMAP 的邮件代理服务器.Ngi ...

  3. nginx和tomcat实现反向代理、负载均衡和session共享

    这类的文章非常多,nginx和tomcat实现反向代理.负载均衡实现非常easy,能够參照http://blog.csdn.net/liuzhigang1237/article/details/888 ...

  4. 利用nginx+lua+redis实现反向代理方法教程

    这篇文章主要给大家介绍了利用nginx+lua+redis实现反向代理方法教程,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧. 前言 最近因为工作需要,要进行IVR的 ...

  5. 【经验】使用Nginx对kiftd进行反向代理和域名绑定

    本文将向您演示如何通过Nginx对kiftd进行反向代理和域名绑定,从而让访问者能够通过指定的域名来访问kiftd或是您的其他网站页面.尤其是对于需要在同一台服务器上部署多个网站项目和kiftd的用户 ...

  6. Nginx学习3:反向代理实例

    Nginx配置实例-反向代理1 目标 打开浏览器,在浏览器地址栏输入地址 www.123.com,跳转到 liunx 系统 tomcat 主页面中 准备工作 我们在官网下载好tomcat之后,直接将t ...

  7. Nginx-05:Nginx配置实例之反向代理2

    Nginx配置实例之反向代理 目的:使用nginx反向代理,根据访问的路径跳转到不同端口的服务器中,nginx监听端口为9001. 访问http://192.168.17.129:9001/edu/ ...

  8. Nginx-04:Nginx配置实例之反向代理1

    Nginx配置实例之反向代理 目的:在浏览器中数输入www.123.com跳转到tomcat主页. 1.准备工作 (1)安装tomcat,使用默认端口8080,进入tomcat的bin目录中,./st ...

  9. nginx 1.16 配置反向代理,http,https,ssl

    需求 之前云服务上仅部署了门户网站,后来要做小程序开发,还有各项目网站.之前是通过域名+端口访问, 现改为启用二级域名,共用公网IP,80(http).443(https)端口,通过nginx按域名做 ...

  10. Nginx应用场景之反向代理

    本文来说下Nginx应用场景之反向代理的几个问题 文章目录 概述 正向代理 反向代理 Nginx反向代理优势 访问限制 概述 "Nginx是一款轻量级的HTTP服务器,采用事件驱动的异步非阻 ...

最新文章

  1. [linux]在使用rsync时需要注意的小细节
  2. 项目遇到的问题或处理办法
  3. Just a Simple Problem
  4. 前端面试题Vue-cli目录汇总
  5. react学习(59)--this.props语法糖
  6. python怎么清屏_python实现清屏的方法 Python Shell中清屏一般有两种方法。
  7. 1005. K 次取反后最大化的数组和(javascript)
  8. centso7.5 安装postman(实测)
  9. 沙场白帽老兵聊未来的挖洞方向及其它
  10. 微信公众号分销商城(源码+数据库+文档)
  11. 基于javaweb的宠物医院管理系统
  12. Ubuntu20.04安装搜狗输入法指南
  13. 南阳计算机职称考试报名时间2015,2015河南公务员考试14日起开始报名 南阳市计划招录590人...
  14. 3.21 Refused Bequest 被拒绝的馈赠
  15. Docker中成功安装修罗Xiunobbs论坛步骤
  16. MIGO结合NFT技术带来全新DeFi金融平台
  17. 90天减重30斤的经验分享
  18. python:keyword --- 检验Python关键字
  19. Launchpad是什么?Launchpad使用教程
  20. 关于flask入门教程-自定义弹出框

热门文章

  1. 视频添加背景音乐侵权吗?
  2. 《PHP学习笔记——PHP基本语法》
  3. redis++的编译,安装,使用
  4. 探索Unity 施加力的方式
  5. 没钱的草根站长可以这样推广网站
  6. 优炫软件任命黄志军为公司总经理
  7. h5仿切水果游戏简单demo代码
  8. Matlab函数语法(函数可以接受多个输入参数,并可能返回多个输出参数)
  9. ubuntu源换成清华源_Ubuntu18.04更换国内源(阿里,网易,中科大,清华等源)
  10. 细谈Struts2 详解