精华内容
下载资源
问答
  • 2021-04-17 23:40:14

    算是备忘吧

    nginx server 配置:(版本号1.16.1)

    server {
            listen       80 default_server;
            listen       [::]:80 default_server;
            server_name  xxx.net;
            # Load configuration files for the default server block.
            include /etc/nginx/default.d/*.conf;
            #nginx 本身发生404 500等错误时使用这个
            fastcgi_intercept_errors on;
            #nginx转发出去的请求返回404 500等这个才起作用
            #proxy_intercept_errors
    		#前端配置 访问路径 / 就是访问前端主页面
            location / {
            	#要想转到自定义的404 500页面  以下这个要配置的
                root /home/xxx/html/dist;
                # 不要写成  index index.html,index.html; 访问xxx.net会报403错误 正确写法是  index index.html index.html;不用逗号  用空格
                #要想转到自定义的404 500页面  以下这个要配置的
                index index.html;
                proxy_set_header HOST   $host;
                proxy_set_header X-Real-IP      $remote_addr;
                proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;
            }
    
    		# 后端请求地址为http://xxx.net/api开头 此处将/api开头的地址进行转发
    		# 这样做的好处是不用做跨域 因为在同一个域下
            location ^~ /api {
                # 下面这一行端口号后面的 / 不要掉 这个 / 代表将上面路径中的 /api去掉
                # 访问http://xxx.net/api/user/getById?id=1 
                # 会转化成 http://localhost:8080/user/getById?id=1
                # 如果端口号后没有 / 那么/api会被带上 上面的
                # 地址就成 http://localhost:8080/api/user/getById?id=1
                proxy_pass http://localhost:8080/;
            }
    
    		# 当返回值是404时跳转到/404.html这个url
            error_page 404 /404.html;
            #下面这个=不能少
            location = /404.html {
            	#自定义的404.html放在以下路径 有请求/404.html就使用这个配置
            	root /home/xxx/html/dist;
            }
            error_page 500 502 503 504 /50x.html;
            location = /50x.html {
                #自定义的50x.html放在以下路径
            	root /home/xxx/html/dist;
            }
        }
    

    遇到的问题和注意点都写在注释里面了。

    更多相关内容
  • nginx反向代理后端接口

    千次阅读 2021-07-29 11:04:36
    配置 nginx配置如下:  location /day06api/ {   proxy_pass http://127.0.0.1:8080/;  } 实际访问的端口服务:http://127.0.0.1:8080/api/abc proxy_pass 最后有斜线时(即端口后只有斜线,例如A和B...

    A.配置 nginx配置如下:

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

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

    proxy_pass 最后有斜线时(即端口后只有斜线,例如A和B中的proxy_pass),location 最后有斜线时,最终组成的url:proxy_pass + location最后一个斜线以后的部分

    B.配置
     location /day06api {
       proxy_pass http://127.0.0.1:8080/;
     }
    
    

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

    proxy_pass 最后有斜线时(即端口后只有斜线,例如A和B中的proxy_pass),location 最后无斜线时,最终组成的url:proxy_pass + 斜线 + location后面的所有部分(但不包含location后面的所有部分的第一个斜线) //其实就是比1多个斜线

    C.配置
     location /day06api/ {
       proxy_pass http://127.0.0.1:8080;
     }
    
    

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

    proxy_pass 最后无斜线时,location 最后有斜线时,最终组成的url:proxy_pass + location + 请求url中location以后的所有部分(不包含第一个/)

    D.配置
     location /day06api {
       proxy_pass http://127.0.0.1:8080;
     }
    
    

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

    proxy_pass 最后无斜线时,location 最后无斜线时,最终组成的url:proxy_pass + location + “/” + 请求url中location以后的所有部分(不包含第一个/)

    E.配置
     location /day06api/ {
       proxy_pass http://127.0.0.1:8080/server/;
     }
    
    

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

    proxy_pass 最后有斜线时(且已经包含了至少一级目录,例如E和F中的proxy_pass),location 最后有斜线时,最终组成的url:proxy_pass + location以后的所有部分(但不包含第一个/)

    F.配置
     location /day06api {
       proxy_pass http://127.0.0.1:8080/server/;
     }
    
    

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

    proxy_pass 最后有斜线时(且已经包含了至少一级目录,例如E和F中的proxy_pass),location 最后无斜线时,最终组成的url:proxy_pass + “/” + location以后的所有部分(包含第一个/)

    G.配置
     location /day06api/ {
       proxy_pass http://127.0.0.1:8080/server;
     }
    
    

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

    proxy_pass 最后无斜线时(且包含了至少一级目录,例如G和H中的proxy_pass),location 最后有斜线时,最终组成的url:proxy_pass + location以后的所有部分(不包含第一个/)

    H.配置
     location /day06api {
       proxy_pass http://127.0.0.1:8080/server;
     }
    
    

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

    proxy_pass 最后无斜线时(且包含了至少一级目录,例如G和H中的proxy_pass),location 最后无斜线时,最终组成的url:proxy_pass + location以后的所有部分(包含第一个/)

    未全部测试,仅作参考

    转载自:https://blog.csdn.net/u010509052/article/details/105455813

    展开全文
  • 问题原因,因为前端是使用了https,所以经过前端访问后端接口是也要用https协议进行访问。但是Spring Boot项目在没有做多额外的SSL配置或者请求转发的情况下不能直接通过https协议访问的。解决思路 修改Nginx的配置...

    Nginx转发https请求

    问题描述

    1. 前后端分离项目,前端使用Nginx部署,后端是Spring Boot项目,使用tomcat部署。
    2. Nginx配置了SSL,并且前端项目需要https协议访问。后端接口任然使用http访问。
    3. 前后端项目部署在同一个服务器中。

    当在前端中直接用http协议访问后端的接口可能出现的问题如下:
    在这里插入图片描述

    问题原因,因为前端是使用了https,所以经过前端访问后端接口是也要用https协议进行访问。但是Spring Boot项目在没有做多额外的SSL配置或者请求转发的情况下不能直接通过https协议访问的。

    解决思路

    将前端的请求经过Nginx的转发成http请求之后在发送给后端接口
    在这里插入图片描述

    修改Nginx的配置后如下

    在这里插入图片描述

    关于Nginx配置https协议的博文参考。在这个的基础上添加如下配置

    location /api/ {
    	proxy_pass http://www.baidu.com:8084/;		# 注意最后有个/,会去掉/api前缀
    }
    

    以www.baidu.com为例,这样配置Nginx会转发所有以/api开头的URI。通常都会在接口访问路径前面加上/api,然后到nginx配置去掉这个前缀。

    我们在前端中访问后端的接口的路径为

    https://www.baidu.com:8084/api/get/user/1
    

    则经过该请求会被Nginx所转发,访问的后端接口路径为

    http://www.baidu.com:8084/get/user/1
    
    展开全文
  • 部署一、将后端项目springboot-war部署到服务器装的Tomcat上1、jar包部署2、war包部署二、将前端 vuecli3/4 部署到 Nginx1、修改 vue.config.js (没有的话自己新建一个,项目主目录下)2、nginx 配置1、下载 nginx2...

    版本说明:

    • 服务器:腾讯云 centos:7.6

    • nginx: 1.16.1 .tar.gz

    • jdk: jdk-8u261-linux-x64.rpm

    • tomcat: apache-tomcat-8.5.57.tar.gz

    • vue:

      “axios”: “^0.20.0”,

      “core-js”: “^3.6.5”,

      “vue”: “^2.6.11”,

      “vue-router”: “^3.2.0”,

      “vuex”: “^3.5.1”

    • vuecli4

    需要放行的端口:

    • 80
    • 8080
    • 你的 redis
    • 你的 mysql

    一、将后端项目springboot-war部署到服务器装的Tomcat上

    也可以打包成jar,直接 java -jar jar包 运行

    1、jar包部署

    • 没有安装 jdk 的 请看:

      1. 搜 华为 jdk 镜像,下载 jdk 8+ linux rpm 版,上传到 服务器 华为jdk镜像

      2. 安装 rpm -ivh jdk-xxx.rpm (没有权限的话 chmod 755 jdk-xxx-rpm )

      3. 添加环境变量配置

        vim /etc/profile
        #拉到最后添加以下配置
        set java environment
        export JAVA_HOME=/usr/java/jdk1.8.0_261-amd64
        JRE_HOME=/usr/java/jdk1.8.0_261-amd64/jre
        CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
        PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
        export JAVA_HOME JRE_HOME CLASS_PATH PATH
        #添加完毕刷新使得环境变量生效
        source /etc/profile
        #检查是否安装成功
        java -version
        javac -verison
        
    • 修改pom.xml

       <packaging>jar</packaging>
      
    • maven install /maven package 后上传到服务器(推荐 Alibaba Cloud Toolkit 工具,vscode、idea、pycharm、eclipse 都可以用,上传速度极快,远超 xftp)后输入启动命令: javac -jar xxx.jar

    image-20210402140852657

    2、war包部署

    • 没有安装jdk的请看前面的内容 安装jdk

    • 安装 Tomcat

      1. 下载 Tomcat

      2. 放到服务器中

      3. 解压 tar -zxvf tomcat-xxx.tar.gz

      4. 启动tomcat

        #将刚才解压的目录移动至指定的目录并重命名
        mv tomcat-xxx /usr/local/tomcat
        #进入Tomcat bin目录
        cd /usr/local/tomcat/bin
        #运行
        ./start.sh
        #关闭
        ./shutdown.sh
        
      5. 访问 服务器:8080 查看是否启动成功(需要放行端口)

    • 修改pom.xml

      <packaging>jar</packaging>
      ...
      <!-- 部署移除 内置 Tomcat -->
       <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-tomcat</artifactId>
           <scope>provided</scope>
      </dependency>
      
    • 新增 ServletInitializer 类

      public class ServletInitializer extends SpringBootServletInitializer {
          @Override
          protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
              return application.sources(你的启动类.class);
          }
      }
      
    • maven install /maven package (最好修改war包名) 后上传到服务器 Tomcat 的 webapps 目录下,

      • 启动 Tomcat
      • 测试 ip:port 看看 Tomcat 是否启动成功,测试 ip:port/你的包名 是否启动成功(强烈建议项目有一个首页)

    二、将前端 vuecli3/4 部署到 Nginx

    1、修改 vue.config.js (没有的话自己新建一个,项目主目录下)

    const path = require("path");
    const port = 8080;
    function resolve(dir) {
      return path.join(__dirname, dir);
    }
    module.exports = {
      outputDir: "regcal",
      indexPath: "index.html",
      assetsDir: "static",
      lintOnSave: process.env.NODE_ENV === "development",
      publicPath: process.env.NODE_ENV === "development" ? "/" : "/",
      //部署时移除 devServer
      /*devServer: {
        port: port,
        open: true,
        overlay: {
          warnings: false,
          errors: true
        },
        proxy: {
          "/regcal-api": {
            target:
              process.env.NODE_ENV === "development"
                ? "http://服务器ip:服务器port/"
                : "http://生成环境的服务器ip:生成环境的服务器port/",
            changeOrigin: true, //允许跨域
            pathRewrite: {
              "^/regcal-api": "/regcal-back"
            }
          }
        }
      },*/
      // 打包设置
      //配置别名
      configureWebpack: {
        resolve: {
          alias: {
            "@": resolve("src") //用刚才定义的方法,实现@关键字代表src目录
          }
        }
      }
    };
    
    

    2、nginx 配置

    1、下载 nginx

    nginx由c编写,我们先从官网下载 1.16.1 稳定版,然后在centos6.8上编译运行:

    • 下载地址:
      http://nginx.org/en/CHANGES-1.16
      将压缩包上传到 centos6.8 的临时目录 /download
      上传完毕后进入上传目录,解压nginx:
      tar -zxvf nginx-1.16.1.tar.gz
      然后修改文件夹的名字
      mv nginx-1.16.1 nginx
      最后把nginx拷贝到/usr/local/src里面
      cp -r nginx /usr/local/src

    • 下载以下的nginx依赖包:

      1. yum install gcc-c++
        编译依赖的gcc环境

      2. yum install -y pcre pcre-devel
        Perl库 nginx HTTP 模块使用的pcre 来解析正则表达式

      3. yum install -y zlib zlib-devel
        zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。

      4. yum install -y openssl openssl-devel
        ** OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
        nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
        **

    • 安装nginx

      1. 进入nginx的目录
        cd /usr/local/src/nginx

      2. 创建nginx的安装目录
        mkdir /usr/local/nginx

      3. 运行configure

      • 支持https stream

      ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-stream

      1. make编译(注意必须在/usr/local/src/nginx目录下执行)
        cd /usr/local/src/nginx
        make

      2. make install编译安装注意必须在/usr/local/src/nginx目录下执行)
        cd /usr/local/src/nginx
        make install

      • 完成后可以看到nginx的安装目录
        ll /usr/local/nginx
        image-20210402144043203

        • conf 配置目录
        • html静态文件[cdn加速]
        • logs日志目录
        • sbin执行目录
      • nginx启动
        进入到nginx安装目录下的执行目录
        cd /usr/local/nginx/sbin
        ./nginx
        访问:ip:80
        成功代表nginx成功开启:
        image-20210402144017623

      • nginx停止
        cd /usr/local/nginx/sbin
        ./nginx -s stop

      • nginx重启

      • nginx刷新
        刷新[当用户修改了conf/nginx.conf]不需要重启
        cd usr/local/nginx/sbin
        ./nginx -s reload

    2、打包 vuecli 项目,将文件夹 regcal 利用 Alibaba Cloud Toolkit 工具 上传至 任意目录(为了方便,上传到 nginx 目录的 weapps 目录下)

    注意 webapps 是自己建立的,专门用于存放项目

    cd /usr/local/nginx

    mkdir webapps

    image-20210402144624881

    image-20210402144707976

    3、修改 nginx 配置文件

    worker_processes 1;
    
    events {
      worker_connections 1024;
    }
    
    #stream {
    #负载均衡,将 本地的8084 端口映射为 你的ip:80
    #server {
    # listen 8084;
    #proxy_pass 你的ip:80;
    #}
    #}
    
    http {
      include mime.types;
      default_type application/octet-stream;
      sendfile on;
      keepalive_timeout 65;
      server {
        listen 80;
        server_name localhost;
    
        location / {
          # 即 /nginx 安装目录下的 webapps/regcal 目录
          root webapps/regcal;
          index index.html index.htm;
          try_files $uri $uri/ @router;
        }
        location @router {
          # vue router 是虚拟路径,因此需要重写
          #因此需要rewrite到index.html中,然后交给路由再处理请求资源
          rewrite ^.*$ /index.html last;
        }
    
        #前端 api 请求后端映射,即  /regcal-back 请求走 本台机器 的 Tomcat 服务器 的 /regcal-back 项目接口
        location /regcal-back/ {
          #前端http请求转发的地址
          proxy_pass http://127.0.0.1:8080/regcal-back/;
          error_page 404 404.html;
          error_page 500 502 503 504 /50x.html;
          location = /50x.html {
            root html;
          }
    
    
        }
    
        #不配置 https 可以删除以下 server
        server {
          #默认端口443
          listen 443 ssl;
          # 自己的域名 例如 www.aaa.com
          server_name  自己的域名;
          #放在 了 nginx主目录下
          ssl_certificate ../1_regcal.work_bundle.crt;
          ssl_certificate_key ../2_regcal.work.key;
          ssl_session_cache shared:SSL:1m;
          # session 有效时间 5分钟
          ssl_session_timeout 5m;
          ssl_ciphers HIGH:!aNULL:!MD5;
          ssl_prefer_server_ciphers on;
          location / {
            proxy_pass http://localhost;
          }
    
        }
      }
    
    

    4、测试

    访问 服务器 ip(比如直接输入 129.09.112.11) 查看效果

    image-20210402145821780

    展开全文
  • Nginx中如何配置HTTPS反向代理发送请求后端的HTTP接口 Nginx中配置https做反向代理 大家好,因为不是专业做Nginx的之前也没有学习过,大都是自己踩坑之后总结的,希望对大家有所帮助! 下面直接开始讲解,首先我们...
  • 这里通过linux宝塔面板进行上传发布操作,服务器用的阿里云服务器,关于阿里云服务器安装宝塔linux面板直接按照宝塔官网进行操作即可。 在/www/wwwroot文件下创建一个项目文件夹dist,将打包好的dist文件夹压缩上传...
  • vue发布到nginx请求后台404问题

    千次阅读 2021-06-11 14:46:31
    这里是我登录的时候调用后端接口404没有资源 查看请求地址,发现我在vue里配置的代理地址没有生效,直接将我代理的那个前缀拼了上来,后又拼上了我需要请求的接口 个人分析原因:因为我这里需要跨域请求,在开发...
  • 真滴坑爹,搞啦大半天一直搁那报错,头要大啦,后端是在服务器本地部署的,就是前端访问接口那出问题啦,后来想起nginx是在容器中运行的,前端再用localhost或者127.0.0.1是肯定错的,容器本身也就像是个虚拟机,用localhost...
  • 后端接受不到请求,控制台报错信息: 查看nginx的error.log日志,发现报错信息为: 2287#0: *560 open() “/usr/local/nginx/client_body_temp/0000000018” failed (13: Permission denied) 问题产生原因: ...
  • 因此觉得就算是干后端开发,对于基本的nginx配置依旧需要有所了解,于是写了这篇后端人员应该懂的nginx文章,希望对大家有所帮助。 (二)Nginx入门 nginx是一个高性能的WEB服务器,Nginx可以实现正向代理、反向代理...
  • 通过nginx代理vue,vue再访问后端时,后端地址被替换成为了代理地址 例如 : 代理地址为 127.0.0.1:8081 前端访问地址为 127.0.0.1:8888 后端访问地址为 127.0.0.1:8066 此时,正常访问的后台接口应该为 127.0.0.1:...
  • nginx实现后端tomcat的负载均衡调度

    千次阅读 2021-11-23 16:19:54
    nginx实现后端tomcat的负载均衡调度1. Nginx编译安装2. Tomcat 和JDK编译安装3. 1. Nginx编译安装 参见: https://blog.csdn.net/qq_29974229/article/details/121266195 2. Tomcat 和JDK编译安装 参见: ...
  • 前端vue,部署到nginx请求接口404

    千次阅读 2020-10-19 17:38:32
    最近项目部署到nginx,发现一个请求接口404的问题,于是去请教了大神,终于等到解决,记录一下,避免以后踩坑。。 前端项目配置信息,做的代理 将静态页面部署到nginx下后,页面可以访问,但接口一直404. 解决...
  • Linux系统中Nginx实现前后端分离

    千次阅读 2019-06-30 22:11:28
    一、linux安装nginx 安装nginx 1 yum install -y openssl openssl-devel 2 yum install gcc-c++ 3 yum install -y pcre pcre-devel 4 yum install -y zlib zlib-devel 5 cd /usr/local/ 6 ...
  • 原因在HTTP1.1协议中,有个 Connection 头,Connection有两个值,close和keep-alive,这个头就相当于客户端告诉服务端,服务端你执行完成请求之后,是关闭连接还是保持连接,保持连接就意味着在保持连接期间,只能由...
  • nginx无脑配置代理后端服务和前后端分离服务
  • nginx前端配置、后端配置、前后端分离配置、ssl配置、负载均衡配置
  • Docker后端部署详解(Go+Nginx

    千次阅读 2021-07-21 16:45:13
    通过拆解Docker部署的各个步骤,把每一步都解释为什么,希望让更多的人能够了解部署的流程,以及如何搭建Nginx服务器
  • 后端Nginx 体系

    千次阅读 2022-03-30 18:26:20
    Nginx 基础
  • web服务器 常见的web服务器有tomcat、apache、IIS、lighttpd ...其作用都是前后端分离,配置了nginx做前端代理,uwsgi、tomcat作后端代理服务器 nginx转发给后端处理 nginx的作用: 1.反向代理,可以拦截一些web攻击
  • 一、在本地使用node+express编写后端接口 express简介及入门教程 1.新建一个项目文件夹 2.使用vscode打开 3.安装express框架 3.1初始化npm(出现提示后一直回车即可) npm init 运行结果: 运行完之后会出现一个...
  • 1. 前言我们真实的服务器不应该直接暴露到公网上去,否则更加容易泄露服务器的信息,也更加容易受到攻击。一个比较“平民化”的方案是使用Nginx反向代理它。使用Nginx反向代理的一些能力...
  • Nginx系列:后端服务应用健康检测

    千次阅读 2020-08-21 23:08:30
    阅读文本大概需要3分钟。 严格来说,nginx到目前为止没有针对负载均衡后端节点的健康检测的模块,但是可以通过proxy_next_upstream来间接实现,但proxy...
  • Vue.js进阶文章列表 Nginx文章列表
  • Nginx代理后端端口返回中文乱码

    千次阅读 2020-07-09 11:17:49
    二 压缩问题 后端服务器开启了压缩,而nginx没有解压缩 ,解决方法 proxy_set_header Accept- Encoding ' ';#让后端不要返回压缩(gzip或deflate)的内容 这边按问题一没有解决: 压缩解决方法: 在server标签添加...
  • Linux Nginx部署前后端分离的Java Web项目(Vue+Springboot) 系统(CentOS 8)环境准备工作: - Java JDK的安装和配置(Java 8) - Nginx的安装与配置 - MySQL的安装与配置、项目数据库的建立 测试找的一个项目demo地址...
  • nginx配置项目后通过域名访问项目时部分接口会出现403错误,charles抓包得到的response是阿里云的一个未备案的界面(但是真实的服务器确实接收到了请求并作出了正确的响应)。 而通过nginx配置的server_name+监听...
  • linux sudo su 短暂获取root权限 chmod -R 777 * 赋文件夹权限 安装 安装:yum install -y nginx 安装的目录:/etc/nginx 默认安装的日志目录:/var/log/nginx 默认安装页面地址:/usr/share/nginx/html 启动:...
  • nginx配置后,访问不到后端,报404

    千次阅读 2021-05-17 16:57:34
    nginx配置:server{listen80;server_namewj.com;location/{proxy_passhttp://localhost:8080/;add_headerAccess-Control-Allow-Origin$http_origin;add_headerAccess-Control-Allow-Methods*;add_headerAccess...
  • linux nginx搭建与配置

    千次阅读 2022-05-04 21:22:42
    nginx 安装 配置 反向代理 会话保持

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,846
精华内容 15,538
关键字:

linux nginx 请求后端接口