通过 Nginx 将爬虫和正常用户访问分开到不同的后端运行

1. [代码]定义 Map     跳至 [1] [2] [3] [全屏预览]

1map $http_user_agent $is_bot {
2     default 0;
3     ~[a-z]bot[^a-z] 1;
4     ~[sS]pider[^a-z] 1;
5     'Yahoo! Slurp China' 1;
6     'Mediapartners-Google' 1;
7}

2. [代码]定义 Location     

1location @bots {
2     proxy_pass http://osc_bot;
3}

3. [代码]处理爬虫请求     

1location / {
2     error_page 418 =200 @bots;
3     if ($is_bot) {
4        return 418;
5     }
6     proxy_pass http://osc_tomcats;
7}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
通过Dockerfile将Nginx、前端和后端封装成一个镜像是很常见的做法。下面是一个简单的例子来说明如何完成这个过程。 首先,我们需要创建一个Dockerfile文件,并在其中定义我们的镜像。以下是一个基本的Dockerfile示例: ```Dockerfile # 使用官方Nginx镜像作为基础 FROM nginx # 复制前端文件到Nginx的默认网站目录 COPY frontend /usr/share/nginx/html # 复制后端文件到一个自定义的目录 COPY backend /app # 定义工作目录 WORKDIR /app # 安装所需的依赖 RUN npm install # 暴露Nginx默认的80端口 EXPOSE 80 # 启动Nginx后端服务 CMD ["nginx", "-g", "daemon off;", "node", "server.js"] ``` 上面的Dockerfile中,我们首先使用官方的Nginx镜像作为基础。然后我们将前端文件复制到Nginx的默认网站目录`/usr/share/nginx/html`,将后端文件复制到自定义目录`/app`。 接下来,我们定义了工作目录为`/app`,并安装了后端所需的依赖。最后,我们暴露Nginx默认的80端口,并启动Nginx后端服务。 在执行以下命令前,我们需要将前端文件放置在`frontend`目录下,后端文件放置在`backend`目录下。 接下来,我们可以运行以下指令来构建和运行我们的镜像: ``` docker build -t myimage . docker run -p 80:80 myimage ``` 以上命令会先构建与Dockerfile指定的镜像,并将其命名为`myimage`。然后,我们在容器中运行这个镜像,并将主机的80端口映射到容器的80端口。 这样,我们就成功地将Nginx、前端和后端封装成了一个镜像,并在容器中运行起来了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值