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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> nginx[主要是记录解决配置了proxy_pass后报错403的心酸历程] -> 正文阅读

[系统运维]nginx[主要是记录解决配置了proxy_pass后报错403的心酸历程]

nginx在windows下的常用命令

准备事项:

# 常用的nginx命令
  # 查看Nginx的版本号:nginx -V
  # 启动Nginx:start nginx   或者  nginx
  # 快速停止或关闭Nginx:nginx -s stop
  # 正常停止或关闭Nginx:nginx -s quit
  # 配置文件修改重装载命令:nginx -s reload
  # 查看windows任务管理器下Nginx的进程命令:tasklist /fi "imagename eq nginx.exe"
  # 终止进程 taskkill /F /pid 252288

报跨域的错误

这里穿插了处理跨域的几个常用的方法:

  1. 后端处理,在响应头拼入 Access-Control-Allow-Origin 等属性,是浏览器制定的解决跨域的方式也叫做CORS
// 设置允许跨域的域名,*代表允许任意域名跨域
	res.header('Access-Control-Allow-Origin', '*');
	//允许的header类型
	res.header('Access-Control-Allow-Header', "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
	//跨域允许的请求方式
	res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
  1. nginx服务器端处理
    nginx是个代理服务器
    首先要配置反向代理:(proxy_pass属性),由反向代理服务器去选择目标服务器获取数据后返回给浏览器
    然后就跟上面一样:
add_header Access-Control-Allow-Origin *;
    add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
    add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
 
    if ($request_method = 'OPTIONS') {
        return 204;
}

  1. 还要jsonp就是很简单的绕过同源策略,利用script标签不受同源政策的限制,像后端传一个回调函数,后端把要用的东西拼入回调函数里。但是可想而知这是不方便且不安全的。只能使用get请求,还容易收到xss攻击,所以就不细说了。

配置了反向代理之后报错403

来到正题了,因为跨域我是在后端处理的,所以配置了反向代理就可以了,但是配置了反向代理之后,请求页面资源时直接报错403,网上有好几种解法:分别是增加nginx配置,权限问题,后端处理等等等。
但是都跟我的情况不一样,我的情况就非常简单且白痴。如果有遇到的朋友们可以参考。
问题点:
我直接把反向代理地址,配置到location / 里面了,导致第一步请求页面的时候直接去服务器端请求,而不是在代理服务里请求,所以没有token403,而且请求不到资源。
解决
location 匹配规则
首先精确匹配 =
其次前缀匹配 ^~
其次是按文件中出现的顺序,来逐个正则匹配。
然后匹配不带任何修饰的前缀匹配。
最后是交给 / 通用匹配
当有匹配成功时候,停止匹配,按当前匹配规则处理请求
【也就是如下方式】

location ^~ /api/ {
				if ($request_method = 'OPTIONS') {
						return 204;
				}
				proxy_pass http://127.0.0.1:3001;
			}

nice,解决了

server_name

server_name就是访问部署了nginx那台服务器的域名、ip、localhost。

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-09-25 23:24:39  更:2022-09-25 23:25:10 
 
开发: 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 9:55:50-

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