Nginx禁止部分UserAgent訪問(wèn)的問(wèn)題解決
前言
- 有時(shí)候域名在微信上 訪問(wèn)會(huì)紅,會(huì)有各種異常提示,通過(guò)nginx禁止域名在微信上被訪問(wèn),給出友好提示。
- 如果紅了的域名,加上后過(guò)段時(shí)間就會(huì)恢復(fù),并且正常顯示配置的頁(yè)面。
- 雖然不能直接在微信 訪問(wèn),但是總比在微信上報(bào)異常鏈接友好。
一、使用步驟
1.關(guān)鍵代碼
檢測(cè)是否微信、企鵝中訪問(wèn),如果是$is_blocked_agent返回1
map $http_user_agent $is_blocked_agent {
default 0;
"~*micromessenger" 1;
"~*QQTheme" 1;
}
# 檢查變量
if ($is_blocked_agent = 1) {
rewrite ^ /error_blocked_agent.html last;
}
# 定義錯(cuò)誤頁(yè)面位置
location = /error_blocked_agent.html {
internal; # 防止外部直接訪問(wèn)
root /usr/local/nginx/html/; # 指定網(wǎng)頁(yè)文件的根目錄
try_files $uri error_blocked_agent.html last;
}
頁(yè)面路徑:/usr/local/nginx/html/error_blocked_agent.html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>請(qǐng)使用瀏覽器打開(kāi)</title>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0">
<link rel="stylesheet" type="text/css" rel="external nofollow" >
<style>
.weui_tips_img{
position: absolute;
top: 8px;
right: 6%;
}
.weui_tips_img img{
width: 100%;
height: 135px;
}
.weui_tips_area{
padding: 25px;
width: 90%;
margin: 10px auto;
background-color: #fff;
border-radius: 8px;
box-sizing: border-box;
box-shadow: 0 2px 8px 0 rgba(0, 0, 0, .1);
text-align: left;
}
ul{
list-style-type: none;
}
li{
color: #6F7884;
display: flex;
align-items: center;
margin: 5px auto;
}
li img{
margin-left: 8px;
height: 25px;
}
li span{
color: #07c160;
font-weight: bold;
}
.weui_text_area{
position: absolute;
bottom: 8% !important;
padding: 0!important;
width: 100%;
}
.weui_text_area span {
color: #fff;
border-radius: 5px;
padding: 10px 22%;
border: none;
background: #07c160;
cursor: pointer;
}
</style>
<body>
<div class="weui_msg">
<div class="weui_tips_img">
<img src="data:image/png;base64,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" alt=""/>
</div>
<div class="weui_tips_area">
<h3>請(qǐng)繼續(xù)操作</h3>
<ul>
<li>1、點(diǎn)擊右上角<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAABp0lEQVRoQ+1asUrDUBQ9DyGbBJopGRyyGvAjxMWfyOIiaBGcMoVMnaQSBReX/ISL+BFCunZwSKYGardAefKKhbZEyOvltXn2ZQvce+4957zcDPcxbDyTyeQUwBWACwAnAI43Y3b8PgPwBeAdwKvjOKPV+mz5kue55XneA+f8GsDRjptsW27OGHspiuI+CIJaJC0IiOZd130DcN4Wac9xH2VZXgoSCwJVVT1xzm/23JRUecbYc6/Xu2W/Z/6zw8fmL2JzAGeCwBDAnRT97gQ/CgI5ADF5dHxGgsB3B0bltuLNBAG+bXYX8gyBfbtgHDAOEBUwR4goIDndOECWkAhgHCAKSE4/DAfqusZgMECWZQvFwjBEFEWwLKtRQdXxq0VbOZAkCdI0XWu23+8jjuNGAqrjpQn4vo/pdLrWrG3bGI/HjQRUxx8eAdVHQhZf2gHVH6UsvjQB8rBWCNBqCimsT4Y2BMgSEgGMA0QByenGAbKERADjAFFAcrpxgCwhEeBfOKD9gkP7FZP2Sz6x4NN3zSqGgNaLbkFA+6sGSxLaXvZY/Zfodt3mB8aHaDiexiJJAAAAAElFTkSuQmCC" alt=""/></li>
<li>2、選擇<span>『在瀏覽器/Safari中打開(kāi)』</span></li>
</ul>
</div>
<div class="weui_text_area">
<span class="weui_msg_title" onclick="copyToClipboard()">復(fù)制鏈接</span>
</div>
</div>
<textarea id="textToCopy" style="display:none;"></textarea>
<script type="text/javascript">
function copyToClipboard() {
var textToCopy = window.location.protocol + "http://" + window.location.hostname;
// https域名訪問(wèn)下有效
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(textToCopy)
.then(function() {
alert('已成功復(fù)制到剪貼板');
})
.catch(function(err) {
console.error('無(wú)法執(zhí)行復(fù)制操作(Clipboard API)', err);
fallbackCopy();
});
} else {
// 使用舊的execCommand方法作為備選
fallbackCopy();
}
// http時(shí)候有效
function fallbackCopy() {
var textArea = document.getElementById("textToCopy");
textArea.style.display = 'block';
textArea.value = textToCopy;
textArea.focus();
textArea.select();
try {
var successful = document.execCommand('copy');
textArea.style.display = 'none';
var msg = successful ? '已成功復(fù)制到剪貼板' : '無(wú)法執(zhí)行復(fù)制操作';
alert(msg);
} catch (err) {
textArea.style.display = 'none';
console.error('無(wú)法執(zhí)行復(fù)制操作(execCommand)', err);
alert('無(wú)法執(zhí)行復(fù)制操作');
}
}
}
</script>
</body>
2.使用方法
- 全局使用:將檢測(cè)UserAgent代碼放在http塊,在每server塊中都可以使用$is_blocked_agent變量
# *** 其它配置
events {
# *** 其它配置
}
http {
# *** 其它配置
#檢測(cè)User Agent
map $http_user_agent $is_blocked_agent {
default 0;
"~*micromessenger" 1;
"~*QQTheme" 1;
}
server {
# ***其它配置
# 檢查變量
if ($is_blocked_agent = 1) {
rewrite ^ /error_blocked_agent.html last;
}
# 定義錯(cuò)誤頁(yè)面位置
location = /error_blocked_agent.html {
internal; # 防止外部直接訪問(wèn)
root /usr/local/nginx/html/; # 指定網(wǎng)頁(yè)文件的根目錄
try_files $uri error_blocked_agent.html last;
}
}
}
- 局部使用:將檢測(cè)UserAgent放在server 塊,其它server塊無(wú)法使用變量$is_blocked_agent
# *** 其它配置
events {
# *** 其它配置
}
http {
# *** 其它配置
server {
# ***其它配置
#檢測(cè)User Agent
map $http_user_agent $is_blocked_agent {
default 0;
"~*micromessenger" 1;
"~*QQTheme" 1;
}
# 檢查變量
if ($is_blocked_agent = 1) {
rewrite ^ /error_blocked_agent.html last;
}
# 定義錯(cuò)誤頁(yè)面位置
location = /error_blocked_agent.html {
internal; # 防止外部直接訪問(wèn)
root /usr/local/nginx/html/; # 指定網(wǎng)頁(yè)文件的根目錄
try_files $uri error_blocked_agent.html last;
}
}
}
二、效果


三、總結(jié)
優(yōu)點(diǎn)
- 對(duì)業(yè)務(wù)零入侵。
- 域名下的所有路徑都會(huì)被強(qiáng)制禁止在目標(biāo)UserAgent訪問(wèn)。
缺點(diǎn)
- 需要在nginx額外加配置代碼。
到此這篇關(guān)于Nginx禁止部分UserAgent訪問(wèn)的問(wèn)題解決的文章就介紹到這了,更多相關(guān)Nginx禁止UserAgent內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
nginx配置https加密訪問(wèn)的詳細(xì)教程
這篇文章主要介紹了nginx配置https加密訪問(wèn)的詳細(xì)教程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Nginx服務(wù)器中限制連接數(shù)與限制請(qǐng)求的模塊配置教程
這篇文章主要介紹了Nginx服務(wù)器中限制連接數(shù)與限制請(qǐng)求的模塊配置教程,分別為limit conn模塊與limit req模塊的相關(guān)用法講解,需要的朋友可以參考下2016-01-01
fastdfs+nginx集群搭建的實(shí)現(xiàn)
這篇文章主要介紹了fastdfs+nginx集群搭建的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-10-10
Nginx + Tomcat實(shí)現(xiàn)請(qǐng)求動(dòng)態(tài)數(shù)據(jù)和請(qǐng)求靜態(tài)資源的分離詳解
這篇文章主要給大家介紹了關(guān)于Nginx + Tomcat實(shí)現(xiàn)請(qǐng)求動(dòng)態(tài)數(shù)據(jù)和請(qǐng)求靜態(tài)資源的分離的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-07-07
NGINX 報(bào)錯(cuò) 413 Request Entity Too&nbs
本文講述了處理Nginx因接口數(shù)據(jù)量過(guò)大導(dǎo)致的413錯(cuò)誤,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-08-08
nginx高可用集群的實(shí)現(xiàn)過(guò)程
這篇文章主要介紹了nginx高可用集群的實(shí)現(xiàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10

