IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 记一下springboot+swagger+nginx遇到的问题,耗时1天解决 -> 正文阅读

[系统运维]记一下springboot+swagger+nginx遇到的问题,耗时1天解决

项目场景:

提示:这里简述项目相关背景:
项目场景:最近做微信小程序,后台使用springboot框架,以下问题的前提都是如果不使用nginx,那么swagger是可以正常访问的,也可以测试swagger中的服务,但是如果使用nginx转发就不行了


问题一描述:

现象是无法访问服务,也无法访问swagger页面,nginx日志报400或404或405

原因分析:

这是nginx的配置出问题

解决方案:

以下三个解决方案都是修改nginx的配置文件nginx.conf文件的配置 一、先看看自己有没有配置“upstream” 的配置,如果“upstream” 配置之后跟着的名字是包含有“_”下划线的,把下划线去掉,因为部分版本的tomcat不支持带有下划线的配置,例如:
upstream xxx {
ip_hash;
server 127.0.0.1:8088;
}
二、location配置的名字前面需要加上 ^~ ,例如:
location ^~ /shopping {
}
三、加上以下配置(proxy_pass后面跟着服务的ip加端口或者域名,自行修改,“xxx”对应upstream 定义的名字)
location ^~ /shopping {
root html;
index index.html index.htm;
proxy_pass http://xxx/;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
if ($request_method = 'OPTIONS') {
return 204;
}
proxy_redirect off;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 2000m;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
}

问题二描述:

经过上面的处理,会惊喜的发现此时的swagger可以访问了,但是扯淡的是如果想要测试swagger中的方法会报错:no response from server 或者 no content

原因分析:

这是springboot配置文件中缺少配置,导致swagger使用工程默认的request地址的原因,正确的方式是在swagger中测试方法,swagger应该调用nginx的地址再有nginx转发,而不是直接调用工程的地址

解决方案:

在springboot工程的application.yml(有的人是application.properties)中增加以下配置:
springfox.documentation.swagger.v2.host=localhost/shopping(这里等于号后面的地址就是nginx配置文件中配置的地址,问题一的解决方案中有写到)
springfox.documentation.swagger.v2.path=/swagger/api-docs
或者以下格式的配置
springfox:
documentation:
swagger:
v2:
host: localhost/shopping

springfox:
documentation:
swagger:
v2:
path=/swagger/api-docs

至此工程终于解决了无法通过ngnix访问的问题。耗时一天,实在太蛋疼!

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-31 15:52:22  更:2021-08-31 15:54:34 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 11:38:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码