首页 > 系统相关 >nginx 配置

nginx 配置

时间:2024-05-21 17:52:31浏览次数:28  
标签:set http header 配置 Access nginx add proxy

在 Nginx 配置中,要实现对特定路径(例如 /api/)的 GET 和 POST 请求进行反向代理,并且允许跨域请求,你需要确保配置正确地处理了这些请求,并且设置了适当的 CORS 头。以下是 Nginx 配置的一个示例:

location /api/ {
# 允许跨域请求的域名,* 代表允许所有域名
add_header Access-Control-Allow-Origin *;

# 允许的请求头
add_header Access-Control-Allow-Headers 'Authorization,Content-Type,Accept,Origin';

# 允许的方法
add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';

# 代理设置
proxy_pass http://localhost:5000;

# 设置代理请求头
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# 连接后端服务器超时时间
proxy_connect_timeout 90;

# 读取后端服务器响应的超时时间
proxy_read_timeout 90;

# 连接后端服务器的超时时间,如果后端服务器在该时间内没有发送数据,则取消代理请求
proxy_send_timeout 90;

# 缓存代理请求的body数据的时间
proxy_buffering on;

# 以下是文件扩展名的过滤,你可以根据需要启用或禁用
if ($request_filename ~* \.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$) {
    # 如果请求是文件下载,可以在这里设置特定的处理,例如:
    # proxy_pass 空字符串或其他配置;
    # expires 30d; # 设置文件缓存时间
    # break; # 停止执行后续的指令
}

}

大部分访问为了安全性 都是考虑限制了 跨域请求。
所有要设置好。

前端伪静态配置

主项目前端

location / {
try_files $uri $uri/ /index.html;
}

大屏前端

location /DataV {
try_files $uri $uri/ /DataV/index.html;
}

设置上传文件的大小

client_max_body_size 100m;

添加头部信息

proxy_set_header Cookie $http_cookie;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

请求头总长度大于128k时使用large_client_header_buffers设置的缓存区

client_header_buffer_size 128k;

指令参数4为个数,128k为大小,默认是8k。申请4个128k。

large_client_header_buffers 4 128k;

指定允许跨域的方法,*代表所有

add_header Access-Control-Allow-Methods 'GET,PUT,POST,DELETE,OPTIONS';

预检命令的缓存,如果不缓存每次会发送两次请求

add_header Access-Control-Max-Age 3600;

带cookie请求需要加上这个字段,并设置为true

add_header Access-Control-Allow-Credentials true;

表示允许这个域跨域调用(客户端发送请求的域名和端口)

$http_origin动态获取请求客户端请求的域 不用的原因是带cookie的请求不支持

add_header Access-Control-Allow-Origin $http_origin;

表示请求头的字段 动态获取

add_header Access-Control-Allow-Headers $http_access_control_request_headers;

后端接口(按实际情况修改端口)

api

location /api/ {
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Headers *;

允许的方法

add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
proxy_pass http://localhost:5000;
if ($request_filename ~* ^.*?.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){ }
}

websocket

location /websocket {
proxy_pass http://localhost:5000/api/message/websocket;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_read_timeout 600s;
}

报表设计接口配置(按实际情况修改端口)

location /ReportServer/ {
proxy_pass http://localhost:30007/;
}

文件预览服务

location /FileServer {
proxy_pass http://localhost:30090;
}

解决文件预览服务无法加载js,css问题

location ~ /FileServer/..(js|css)?$ {
proxy_pass http://localhost:30090;
}

标签:set,http,header,配置,Access,nginx,add,proxy
From: https://www.cnblogs.com/zxs-onestar/p/18204652

相关文章

  • nginx 解决 No connection could be made because the target machine actively refus
    已经搭建好的环境突然全部nginx502,localhost拒绝访问报错信息:connect()failed(10061:Noconnectioncouldbemadebecausethetargetmachineactivelyrefusedit)whileconnectingtoupstream,client: 打开cmd,在cmd中ping127.0.0.1会出现下图情况。  ping......
  • 宝塔 启动后 nginx 不生效
     解决宝塔面板启动后Nginx不生效的问题,可以按照以下步骤进行排查:检查Nginx服务状态:进入宝塔面板,查看Nginx服务是否正在运行。可以通过命令行执行以下命令:btrestartnginx或者使用宝塔面板的图形界面来重启Nginx服务。查看错误日志:如果Nginx服务未能启动,检查Nginx的错误......
  • k8s安全权限配置
     https://blog.csdn.net/qq_51545656/article/details/136627284一、安全机制Kubernetes的安全机制非常关键,因为它确保了集群的稳定性和数据的安全。三个主要安全机制是Kubernetes安全架构的核心组成部分:认证(Authentication):这是安全机制的第一道防线。它负责确认请求者的......
  • Unity WebGL的一些配置
    添加自定义值方法:在网页模板中,添加<title>公司名字|{{{PROJECT_NAME}}}</title>///读取PlayerSettings.GetTemplateCustomValue("PROJECT_NAME");///设置PlayerSettings.SetTemplateCustomValue("PROJECT_NAME","这是一个自定义值");修改WebGL模板说......
  • 自己动手2小时学会配置游戏辅助
    1、案例演示文末有软件下载地址,以某游戏巡山为例,2、工具介绍2.1、应用场景点击类型的游戏辅助其它重复性鼠标键盘操作少儿编程2.2、界面介绍2.3、脚本操作介绍新增脚本后,选择脚本后,鼠标右键出来一个菜单,有如下几种操作3、脚本操作3.1、选择区域3.1.1、简介选......
  • nginx -with--openssl make报错解决方法
    nginx-with--openssl make报错解决方法##若报错/opt/nginx-1.18.0]#makemake-fobjs/Makefilemake[1]:Enteringdirectory`/opt/nginx-1.18.0'cd/usr/local/openssl\&&if[-fMakefile];thenmakeclean;fi\&&./config--pref......
  • 深入学习Semantic Kernel:创建和配置prompts functions
    引言上一章我们熟悉了一下SemanticKernel的理论知识,Kernel创建以及简单的Sample熟悉了一下SK的基本使用。在SemanticKernel中的kernelfunctions由两部分组成第一部分是promptsfunctions(提示函数),第二部分Nativefunction(原生函数),kernelfunctions是构成插件(Plu......
  • linux配置 CentOS安装
    CentOS7安装安装镜像安装镜像完成、配置网卡find/-nameifcfg-ens33找到ifcfg-ens33文件配置ip配置动态ip修改ONBOOT=YES此时为自动获取ip配置静态ip需要在底下添加四行重启网络systemctlrestartnetwork,此时可以ping通外部网络安装图形化界面yumgrou......
  • linux 数据库安装配置
    如果有原来的数据库,需要先卸载摘自https://blog.csdn.net/weixin_50367873/article/details/134551859,本文通过yum安装mysql,如需离线安装mysql,查看原文1.检查是否有mariadb存在,centos默认自带 psajx|grepmariadb查找是否存在 systemctlstopmariadb.service停止服务......
  • VUE,HbuilderX开发H5页面,配置调试,部署以及JWT,Token。调用本机netcore接口
    花了一周时间,测试了各种方式。对于VUE开发H5页面,然后部署到Nginx服务。再调用本地的HTTPS接口。1、本地开发及使用IE或Chrome进行开发调试,并调用本地接口同步开发。本地Netcore,开发按原有方式进行。Hbuilderx,开发并调用本地接口。设置时,不要使用Https进行。直接用http即可。Hbuild......