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

nginx 多个(nginx多次重定向)

2023-05-08 21:40:04教程1

nginx 多个

nginx中,每个server块代表一个或多个站点 server块中的server_name用于区分站点 如果站点内容完全相同,只是域名不同,则可以在server_name后追加域名 如果站点之间没有关联,则追加一个server块 ,然后配置server_name以及其他站点信息

nginx多次重定向

1.后缀问题,用Nginx的rewrite就行

2.restful权限你已经用了JWT,那么返回的JWT存进localstorage,页面在每次加载的时候拉取存的JWT的token,如果不存在重定向至登陆页面,如果存在带进头部

Authentication

进行数据请求,如果该token无权限直接重定向到403页面

3.限制带html后缀访问,你可以在nginx写个正则

nginx多次代理

以下三个功能基于nginx:

1)反向代理功能:Nginx在反向代理上,提供灵活的功能,可以根据不同的正则采用不同的转发策略

2)负载均衡功能:Nginx可使用的负载均衡策略有:轮询(默认)、权重、ip_hash、url_hash(第三方)、fair(第三方)。

3)动静分离功能:Nginx可以根据配置对不同的请求做不同转发,这是动态分离的基础。静态请求对应的静态资源可以直接放在Nginx上做缓冲,更好的做法是放在相应的缓冲服务器上。动态请求由相应的后端服务器处理。

nginx多次启动

可以方法很多种,划分好端口,或通过docker都能实现

nginx多次反向代理

Nginx 自动跳转到HTTPS:https://www.gworg.com/ssl/167.html或者server {listen 80;server_name account.xxx.com;location / {rewrite (.*) https://account.xxx.com$1 permanent;}}

nginx多次查询无数据返回

第一种:Nginx自己的错误页面

Nginx访问一个静态的html 页面,当这个页面没有的时候,Nginx抛出404,那么如何返回给客户端404呢?

看下面的配置,这种情况下不需要修改任何参数,就能实现这个功能。

server {

listen 80;

server_name www.test.com;

root /var/www/test;

index index.html index.htm;

location / {

}

# 定义错误页面码,如果出现相应的错误页面码,转发到那里。

error_page 404 403 500 502 503 504 /404.html;

# 承接上面的location。

location = /404.html {

# 放错误页面的目录路径。

root /usr/share/nginx/html;

}

}

第二种:反向代理的错误页面

如果后台Tomcat处理报错抛出404,想把这个状态叫Nginx反馈给客户端或者重定向到某个连接,配置如下:

upstream www {

server 192.168.1.201:7777 weight=20 max_fails=2 fail_timeout=30s;

ip_hash;

}

server {

listen 80;

server_name www.test.com;

root /var/www/test;

index index.html index.htm;

location / {

if ($request_uri ~* ‘^/$’) {

rewrite .* http://www.test.com/index.html redirect;

}

# 关键参数:这个变量开启后,我们才能自定义错误页面,当后端返回404,nginx拦截错误定义错误页面

proxy_intercept_errors on;

proxy_pass http://www;

proxy_set_header HOST $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;

}

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

}

}

第三种:Nginx解析php代码的错误页面

如果后端是php解析的,需要加一个变量

在http段中加一个变量

fastcgi_intercept_errors on就可以了。

指定一个错误页面:

error_page 404 /404.html;

location = /404.html {

root /usr/share/nginx/html;

}

指定一个url地址:

error_page 404 /404.html;

error_page 404 = http://www.test.com/error.html;

nginx多次504后会崩溃吗?

  情况一:由于nginx默认的fastcgi进程响应缓冲区太小造成:  这种情况下导致fastcgi进程被挂起,如果fastcgi服务队这个挂起处理不是很好的话,就可能提示“504 Gateway Time-out”错误。  情况一解决办法:  默认的fastcgi进程响应的缓冲区是8K,可以设置大一点,在nginx.conf里,加入:fastcgi_buffers 8 128k  这表示设置fastcgi缓冲区为8块128k大小的空间。  情况一解决办法(改进):  在上述方法修改后,如果还是出现问题,可以继续修改nginx的超时参数,将参数调大一点,如设置为60秒:  send_timeout 60;  经过这两个参数的调整,结果没有再提示“504 Gateway Time-out”错误,说明效果还是挺不错的,问题基本解决。  情况二:PHP环境的配置问题  这里需要对php-fpm和nginx进行配置修改。因为这种情况下,也会出现“504 Gateway Time-out”错误提示。  情况二解决办法( php-fpm配置修改):  将max_children由之前的10改为30,这样操作是为了保证有充足的php-cgi进程可以被使用。  将request_terminate_timeout由之前的0秒改成60秒,这样使php-cgi进程处理脚本的超时时间提高到60秒,可以防止进程被挂起以提高利用效率。  情况二解决办法(nginx配置修改):  为了减少fastcgi的请求次数,尽量维持buffers不变,要更改nginx的几个配置项,如下:  将fastcgi_buffers由4 64k改为2 256k;  将fastcgi_buffer_size 由64k改为128k;  将fastcgi_busy_buffers_size由128k改为256k;  将fastcgi_temp_file_write_size由128k改成256k。  情况二解决办法修改完,需要重新加载php-fpm和nginx的配置,然后再进行测试。之后就没有发现“504 Gateway Time-out”错误,效果也还是不错的。

nginx多次转发

把本机口的请求转发到本机8080端口代码: ip packet based : echo 1 > /proc/sys/net/ipv4/ip_forward iptables -I PREROUTING -t nat -p tcp --dport 80 -j REDIRECT --to-ports 8080

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

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