智能的404页面服务,提供到Google/Baidu的搜索

david euler 166df7d46b minor change 6 سال پیش
templates 166df7d46b minor change 6 سال پیش
.gitignore f323197f77 生成link,title的对应关系脚本 6 سال پیش
README.md 533cad3776 支持URL路径后面的文件名为中文,而在link_title映射中保存encoded url的情况 6 سال پیش
config.py e76fac5ce0 separate stderr and stdout 6 سال پیش
dump.sh 66acb53086 处理一个目录下面的技术博客站点 6 سال پیش
gunicorn.sh 85f7f4bdad gunicorn 6 سال پیش
links_title_dumper.py fb70b7f7a3 minor fix 6 سال پیش
requirements.txt f323197f77 生成link,title的对应关系脚本 6 سال پیش
service.py 533cad3776 支持URL路径后面的文件名为中文,而在link_title映射中保存encoded url的情况 6 سال پیش
test.txt 533cad3776 支持URL路径后面的文件名为中文,而在link_title映射中保存encoded url的情况 6 سال پیش
url_util.py 533cad3776 支持URL路径后面的文件名为中文,而在link_title映射中保存encoded url的情况 6 سال پیش
wsgi.py 85f7f4bdad gunicorn 6 سال پیش

README.md

智能的404服务

根据 URL 的Title描述,提供从 Google, Baidu搜索的链接。

1.URL对应的Title描述从网站的HTML内容中检索a标签得到; 输入是一个 <URL, Title> 列表
2.如果没有对应的Title,则根据URL后面的路径文件名从搜索引擎检索。

生成 links_json.py

python links_title_dumper.py > links_json.py

NGINX 配置

  location / {
     try_files $uri $uri/ /index.php?$args @fetch;
  }

  location @fetch {
      # 放错误页面的目录路径。
      proxy_pass http://127.0.0.1:5000;
  }

Location的正确配置

如上的配置,真实的URL不能正确传递到Flask服务端。 正确的配置:

location /{
        autoindex off;
        try_files $uri $uri/ @fetch;
}
# 定义错误页面码,如果出现相应的错误页面码,转发到那里。
error_page 404 403 = @fetch;

location @fetch {
    # Redefine the header fields that NGINX sends to the upstream server
    #the name and port of the NGINX server (Host $host)
    proxy_set_header Host $host;

    #the schema of the original client request, as in whether it was an http or an https request:
    proxy_set_header X-Forwarded-Proto $scheme;

    #the IP address of the user (X-Real-IP $remote_addr)
    proxy_set_header X-Real-IP $remote_addr;

    #the IP addresses of every server the client has been proxied through up to this point:
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    # Define the maximum file size on file uploads
    client_max_body_size 5M;

    # 放错误页面的目录路径。
    proxy_pass http://127.0.0.1:5000;
}