(本文档仅供参考)
问题
在外网中如何通过ngingx实现仅能企微中访问到报表。
解决方案
可参考如下配置方案:
#user root root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
#charset koi8-r;
resolver 8.8.8.8;
location / {
set $flag 0;
if ($http_user_agent ~* "wxwork")
{
set $flag 1;
}
if ($uri ~* ^(.*)/(config|config.jsp|index.jsp|login.jsp|createresource.jsp|openmodule.jsp|sysmonitor.jsp)$){
set $flag 0;
}
if ($flag != 1)
{
return 404;
}
set $flag1 0;
if ($http_user_agent ~* "Mobile")
{
set $flag1 1;
}
if ($flag1 != 1)
{
return 404;
}
proxy_pass http://10.10.202.17:19000/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 100m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
注意事项:
若是企业微信集成,涉及到域名校验文件放行,需要再添加两行,参考如下,具体文件名依据实际修改: