Nginx 403 forbidden

1、没有权限问题

         Linux系统中如果Nginx没有web目录的操作权限,也会出现403错误。解决办法:修改web目录的读写权限,或者是把Nginx的启动用户改成目录的所属用户,重启Nginx即可解决。(windows 下则用管理员启动nginx即可)。

 chmod -R 777 /data
 chmod -R 777 /data/www/

2、由于Nginx启动用户和Nginx工作用户不一致所致

Linux 查看Nginx的启动用户,发现是nobody,而为是用root启动的(windows一般不存在)

# 查看Nginx的运行进程
ps aux | grep nginx

如下图:

 将nginx.config的user改为和启动用户一致。

vim ./nginx.config

3、部分连接访问出现403错误

Nginx 配置服务转发,部分接口出现403错误,我只是做服务器请求地址转发所以根本不存在跨域,猜想是NGINX将请求信息改变了导致无法正常访问,F12查看错误的请求接口中不存在 Content-Type:application/x-www-form-urlencoded,由于某些请求没有用form-data jquery默认就没有Content-Type, Nginx代理修改了你的request-header,修改配置如下

# nginx代理配置
location /cbda-module-common-authority {
     #不更改请求头信息,其他多余参数全部去掉
     proxy_set_header Host $http_host; #nginx1.20.1版本可用此配置  
     #proxy_set_header Host $host; #如果是nginx1.18.0使用
     proxy_pass http://gatewayservers;
}

4、完整配置如下


user  root; #设置用户
worker_processes  4; # 设置进程数
worker_cpu_affinity auto; #设置进程自动绑定cpu
worker_rlimit_nofile 65535; #设置访问文件的句柄数

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;

events {
    worker_connections  10240;
    multi_accept on;
    use epoll;
}

http {
    include       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  /soft/service/nginx_1.18.0/nginx-1.18.0-install/logs/access.log  main;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    tcp_nodelay on;
    open_file_cache max=102400 inactive=20s;
    open_file_cache_valid 30s;
    open_file_cache_min_uses 1;
    client_header_timeout 30;
    client_body_timeout 30;
    reset_timedout_connection on;
    send_timeout 30;
    server_tokens off;
    client_header_buffer_size 1m;
    large_client_header_buffers 4 1m;
    client_body_buffer_size 300m;
    client_body_temp_path /usr/local/service/nginx-1.20.1/client_body_temp;
    #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';
    gzip on;   #表示开启压缩功能
    gzip_min_length 2k;  #表示允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取,默认值为0,表示不管页面多大都进行压缩,设置建议设大于1k。如果小于1k可能会越压越大。
    gzip_buffers 4 5m; #压缩缓存区大小
    gzip_http_version 1.1; #压缩版本
    gzip_comp_level 6; #压缩比率,一般选择4-6,为了性能gzip_typs text/css text/xml application/javascript; #指>定压缩的类型 gzip_vary on; #vary header支持;
    gzip_types text/plain text/css text/javascript application/json application/javascript application/x-javascript  application/xml  application/x-httpd-php image/jpeg image/gif image/png image/icon image/jpg;
    gzip_vary on; #varyheader支持,改选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存经过nginx压缩的数据。
   
    upstream gatewayservers {
    	server 192.168.66.142:30858;
    }

    server {
        listen       30857;
        server_name  localhost;
        charset utf-8;
        #access_log  /soft/service/nginx_1.18.0/nginx-1.18.0-install/logs/host.access.log  main;
        location / {
            root   /usr/local/service/issue-management-1.0/cbdacim-vue-ui/dist;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        location /cbda-module-common-authority {
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header Host $http_host;
            proxy_set_header accept-encodeing 'gzip, deflate';
            #proxy_set_header content-type 'application/json';
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header authorization $http_authorization;
            proxy_set_header accept '*/*';
            proxy_set_header x-bce-date $http_x_bce_date;
            proxy_connect_timeout 300;
            proxy_send_timeout 300;
            proxy_read_timeout 300;
            client_max_body_size	300m;
            proxy_pass http://gatewayservers;
        }
        
    #静态资源缓存过期设置
    #location ~* \.(ico|jpeg|gif|png|bmp|swf|flv)$ {
	    #expires 30d;  #过期时间为30天
	    #log_not_found off;
	    #access_log off;
	#}
	#location ~* \.(js|css)$ {
	    #expires 7d;
	    #log_not_found off;
        #access_log off;
	#}
		
    #error_page  404              /404.html;
    # redirect server error pages to the static page /50x.html
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }

        
    }


	
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/398573.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp上传文件到腾讯云

官方API地址 javaScript_SDK 下载cos npm i cos-js-sdk-v5 --save 生成签名 获取secretId和secretKey let cos new COS({SecretId: *******************************,SecretKey: ******************************,}) 参考文章:腾讯云如何获取secretId和secret…

力扣精选算法100道——提莫攻击(模拟专题)

目录 🚩题目解析 🚩算法原理 🚩实现代码 🚩题目解析 输入:timeSeries [1,4], duration 2 输出:4 解释:提莫攻击对艾希的影响如下: - 第 1 秒,提莫攻击艾希并使其立即…

【Git】:分支管理

分支管理 一.概念二.分支管理基本操作三.分支管理策略1.noff模式2.分支策略 一.概念 在版本回退⾥,你已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前,只有⼀条时间线&…

搜索中关于稀疏检索和稠密向量检索的召回效果比较

不同检索方式说明 最近在做搜索召回提升相关的研究工作。对比了稀疏检索和稠密向量检索的效果。其中使用的搜索引擎为elasticsearch8.x版本。稀疏检索包括BM25的检索方式,以及es官方在8.8之后版本提供的稀疏向量模型的方式。稠密向量检索,是指借助机器学…

tqdm,Python进度条库快速上手

前言 在编程中,尤其是处理长时间运行的任务时,了解程序的进度是非常重要的。Python中有一个非常实用的库,名为 tqdm ,它能够以极简的方式帮助我们快速创建进度条。本文将向初学者介绍如何在Python中使用 tqdm 库来制作进度条。 …

2、电源管理入门之开机详解

目录 1. 硬件上电 2. ATF运行 3. Linux启动 3.1 内核启动start_kernel 3.2 平台启动setup_arch 3.4 DTS初始化psci_dt_init 3.5 系统rest创建kernel_init线程 3.6 SMP初始化smp_init 3.7 PSCI接口psci_cpu_on 3.8 SMC返回secondary_entry 系统开机牵扯到:“我是…

Springboot 中使用 Redisson+AOP+自定义注解 实现访问限流与黑名单拦截

🏷️个人主页:牵着猫散步的鼠鼠 🏷️系列专栏:Java全栈-专栏 🏷️个人学习笔记,若有缺误,欢迎评论区指正 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默&…

python3 flask 实现对config.yaml文件的内容的增删改查,并重启服务

config.yaml配置文件内容 功能就是userpass下的用户名和密码做增删改查,并重启hy2服务 auth:type: userpassuserpass:csdn: csdnlisten: :443 masquerade:proxy:rewriteHost: trueurl: https://www.bing.com/type: proxy tls:cert: /root/hyst*****马赛克******er…

JS文本加密方法探究

在前端开发中,有时候我们需要对敏感文本进行简单的加密,以提高安全性。本文将介绍一种基于 JavaScript 实现的文本加密方法,使用了 Base64、Unicode 和 ROT13 编码。 示例代码 function encodeText(text) {// Base64编码var base64Encoded …

苍穹外卖——第一天nginx

放到全是英文路径的打不开 到安装路径进入cmd,输入nginx -t nginx: the configuration file E:\Astudy\nginx-1.20.2/conf/nginx.conf syntax is ok nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbid…

linux部署jenkins,支持jdk1.8

无废话,纯干活安装指令 本文前提条件需安装jdk8,安装参考:Linux配置jdk环境 下载资源 # 创建安装目录 mkdir -p /data/jenkins && cd /data/jenkins# 下载jenkins的war包,v2.346.x支持jdk1.8,高于这个版本的…

板块一 Servlet编程:第六节 HttpSession对象全解 来自【汤米尼克的JAVAEE全套教程专栏】

板块一 Servlet编程:第六节 HttpSession对象全解 一、什么是HttpSessionSession的本质 二、创建Seesion及常用方法三、Session域对象四、Session对象的销毁 在上一节中,我们学习了Servlet五大对象里的第三个Cookie对象,但Cookie是有大小限制和…

ajax 如何从服务器上获取数据?

在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种常用的技术,用于在不重新加载整个页面的情况下,从服务器获取数据并更新网页的某一部分。使用AJAX,你可以创建异步请求,从而提供更快的…

AI:133-基于深度学习的工业质检自动化

🚀点击这里跳转到本专栏,可查阅专栏顶置最新的指南宝典~ 🎉🎊🎉 你的技术旅程将在这里启航! 从基础到实践,深入学习。无论你是初学者还是经验丰富的老手,对于本专栏案例和项目实践都有参考学习意义。 ✨✨✨ 每一个案例都附带有在本地跑过的关键代码,详细讲解供…

Git 关于SSH密钥的生成

一:配置ssh 桌面右键鼠标打开 “Git Bash Here” 键入命令:ssh-keygen -t ed25519 -C "自己邮箱 " 接着就一路回车 打开 C:\Users\Administrator.ssh 目录, 复制 id_xxxxx.pub 内容 文件里面则是一些信息,如下 …

Reliable Visualization for Deep Speaker Recognition - 语音可解释性

MOTIVATION OF READING: 语音任务可解释性 Link: http://arxiv.org/abs/2204.03852 Code:http://project.cslt.org/ 1. Overview Motivation of the work: If any of the visualization tools are reliable when applied to speaker recognition, which makes th…

二百二十四、Kettle——曲线实现从Hive插入更新到ClickHouse(分区字段是month或year)

一、目的 对于以month、year为分区字段的数据,不是像day字段分区那样每天增量插入更新即可,而是要以部分字段查询、部分字段更新,但是ClickHouse数据库并不适合更新操作,直接使用Kettle的插入更新控件会导致问题,必须…

数据仓库选型建议

1 数仓分层 1.1 数仓分层的意义 **数据复用,减少重复开发:**规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。数据的逐层加工原则,下层包含了上层数据加工所需要的全量数据,这样的加工方…

JVM对象的创建流程与内存分配

对象的创建流程与内存分配 创建流程对象内存分配方式内存分配安全问题对象内存分配流程【重要】:对象怎样才会进入老年代?重点 案例演示:对象分配过程大对象直接进入老年代02-对象内存分配的过程: 创建流程 加载 验证 解析 准备 初始化 使用 写在 对象内存分配方式 内存分配…

Codeforces Round 928 (Div. 4)( F(dfs+小技巧),G(树上dp) )

CF1926F. Vlad and Avoiding X 题意: 给定一个 7 ∗ 7 7*7 7∗7的网格,网格上的点不是黑色就是白色,要求修改最少的点,使得网格中没有X形状的黑色网格。 思路: 首先看到这个数据范围,很容易想到暴搜&#…