当前位置:首页 > 教程 > 正文内容

nginx返回(nginx返回403)

2023-05-11 01:40:05教程1

nginx返回

Nginx在不依赖第三方模块的前期下,主要的功能有:

①、正向代理

正向代理,是在用户端的。比如需要访问某些国外网站,我们可能需要购买vpn。并且vpn是在我们的用户浏览器端设置的(并不是在远端的服务器设置),浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。

②、反向代理

客户端向服务器发送请求时,会首先经过 Nginx 服务器,由服务器将请求分发到相应的 WEB 服务器。正向代理是代理客户端,而反向代理则是代理服务器,Nginx 在提供反向代理服务方面,通过使用正则表达式进行相关配置,采取不同的转发策略,配置相当灵活,而且在配置后端转发请求时,完全不用关心网络环境如何,可以指定任意的IP地址和端口号,或其他类型的连接、请求等。

③、负载均衡

当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况.

④、动静分离

在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指HTML,JavaScript,CSS,img等文件。一般来说,都需要将动态资源和静态资源分开,将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间。

nginx返回403

网上也搜过好多方法大概是以下几种方法

1.添加防火墙;(由于价格太贵放弃了)

2.更换域名,发现被攻击后,立刻解析到其他域名上,把被攻击的域名停止解析(由于需要人工操作,且dns解析与停止不是实时的需要时间)

3.在nginx中拦截cc攻击

最终讨论方法是在nginx中拦截

下面说一下原理

由ios,android端 写一个对称加密算法且吧时间戳也加密进去;作为 user-agent 来访问 服务器的接口,然后在nginx中 去解密这个user-agent来检验这个加密字符串是否合法或者是否过期;如果是合法的则去调用php-fpm运行程序,如果不合法则直接返回403;

那么问题了来了 如何在nginx拦截cc攻击了,也就说如何在nginx中编程了,我一个php程序员肯定不会;这个时候需要引入一个lua控件;

单独安装lua插件太麻烦了,后来直接安装了 openresty 直接在openresty中 编写lua脚本,成功防御了cc攻击

nginx返回文件内容

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

1.1查看nginx的启动用户,发现是nobody,而为是用root启动的

命令:ps aux | grep "nginx: worker process" | awk'{print $1}'

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

命令:vi conf/nginx.conf

二、缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。

1. server {

2. listen 80;

3. server_name localhost;

4. index index.php index.html;

5. root /data/www/;

6. }

如果在/data/www/下面没有index.php,index.html的时候,直接文件,会报403 forbidden。

三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。

解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决

1. chmod -R 777 /data

2. chmod -R 777 /data/www/

四、SELinux设置为开启状态(enabled)的原因。

4.1、查看当前selinux的状态。

1. /usr/sbin/sestatus

4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。

1. vi /etc/selinux/config

2.

3. #SELINUX=enforcing

4. SELINUX=disabled

4.3、重启生效。reboot。

1. reboot

重启php以及nginx

killall php-fpm && php-fpm &

nginx -s reload

nginx返回502

打开网站有时出现502 Bad Gateway可以这样解决:

1、502 Bad Gateway错误的原因是网站到客户端的链路网关路由异常。

2、要解决502 Bad Gateway错误服务端服务器问题,要先找到nginx配置的路径。然后找到nginx所在的error日志文件来查看具体原因。

3、如果是客户端浏览器配置的问题,以360浏览器为例,出现502 Bad Gateway可能是设置了代 代理导致的。

4、找到360浏览器右上角的设置,看看代理配置是不是勾选了。

5、取消浏览器代理之后,刷新一下就可以访问了。

6、如果是edge浏览器配置的问题,先找到edge浏览器,然后找到右上角选项,点击更多连接设置。

7、然后点击代理连接设置,打开IE的服务器代理就可以了。

8、如果是IE浏览器的配置问题,打开IE浏览器,找到工具栏中的internet 选项,点击internet选项进入配置页面。

9、然后点击连接,找到局域网连接设置,然后关闭代理设置。这就是打开网站有时出现502 Bad Gateway的解决步骤。

nginx返回400

PHP 是这样了,worker 忙不过来,Nginx 还能撑住,所以返回 502 bad gayway ,意思是机油你坏坏,不对意思是生意太火了伙计忙不过来。

你先看一下PHP到底在忙些啥,如果是 CPU 密集型计算(应该不会),看看CPU和内存满没满,没满就多开一些worker,满了就多加一些机子。

我猜测可能是数据库响应缓慢,然后人多了数据库是否能撑住也是一个考虑,多用一些缓存吧。

防流量攻击真没啥好办法,找牛逼一些的机房/CDN 吧。

NGINX返回504 401

1、有可能是设置的缓冲区不够大,默认的是8k

在nginx.conf 配置文件里加入 fastcgi_buffers 8 128k 也就是把缓冲区大小改为 8 * 128k

2、也可以增加超时参数

send_timeout 60 ,一般加大到60秒就差不多了

3、减少FastCGI的请求次,也是在nginx.conf 配置文件里

astcgi_connect_timeout 300s;  fastcgi_send_timeout 300s;  fastcgi_read_timeout 300s;  fastcgi_buffer_size 128k;  fastcgi_buffers 8 128k;#8 128  fastcgi_busy_buffers_size 256k;  fastcgi_temp_file_write_size 256k;  fastcgi_intercept_errors on;  这里最主要的设置是前三条,即  fastcgi_connect_timeout 300s;  fastcgi_send_timeout 300s;  fastcgi_read_timeout 300s;

这的配置信息,主要是规定了PHP-CGI的连接、发送和读取的时间,300秒足够用了,我更改好后,我以前的站点很少出现504 Gateway Time-out这个错误。

本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.

本文链接:https://www.xibujisuan.cn/98832087.html

返回列表

上一篇:驱动rst卸载(rst驱动怎么卸载)

没有最新的文章了...