爬虫与反爬虫的较量总是围绕着Web网站展开,爬虫的主要目的是获取Web网站中的内容。开发者想要限制爬虫获取数据,就需要了解HTML从文档变成内容丰富的页面所要经历的每个阶段。例如网络请求、资源匹配、数据传输和页面渲染。因此在学习爬虫之前,我们需要先了解web网站的构成和页面渲染过程的相关知识。
web网站由服务端与客户端组成,服务器主要负责为客户端提供文件资源的提取与数据的保存服务,而客户端则是将服务器的资源转化为用户可读的内容。服务器端与客户端之间的信息交互需要通过网络进行传输,而网络传输会根据对应的网络协议进行。如果客户端与服务端要进行通信,两者需要使用相同的网络协议。
nginx 服务器
Web网站的功能由编程语言来实现,编程语言专注的是功能实现,资源的映射与连接处理是由服务器软件完成。常见的服务器主要有Apache、nginx和Tomcat等,接下来我们就对nginx来增进对服务器的了解。
nginx是一个HTTP和反向代理服务器,同时也是邮件代理服务器和通用的TCP/UDP代理服务器。它具有模块化设计,可拓展、低内存消耗、支持热部署等优秀特性,所以非常多的web应用将其作为服务器软件。
nginx有一个主进程和若干工作进程,其中主进程用于读取和评估配置并维护工作进程,工作进程会对请求进行实际处理。nginx采用基于事件的模型和依赖于操作系统的机制,有效的工作进程之间分发请求。工作进程数在配置文件中进行定义,可以设定具体数值或使用默认选项。
nginx有一个主进程和多个工作进程,主进程主要用于维护自身运转,例如读取配置、维护工作进程、重新载入配置等,工作进程是具体响应请求的进程。nginx的工作进程数是确定的,并不是说来一个任务才开启一个进程,它的工作进程数可以在配置文件中更改。
快速安装nginx
你都学到nginx了,这里强烈建议大家一定要去购买云服务器来操作,我这里使用的是Centos7.6版本的Linux操作系统。
连接云服务器的终端,输入下面的命令即可安装nginx。
yum install nginx
复制代码
安装完毕之后,在你的浏览器访问服务器的IP地址即可。
nginx 信号
信号是控制nginx工作状态的模块,信号语法格式为:
nginx -s signal
复制代码
常用的信号有:
stop 快速关停
quit 正常关停
reload 重新载入配置
reopen 重新打开日志文件
复制代码
nginx的正确关停,是nginx -s quit,它可以让nginx处理完已经开始的的工作再退出。
nginx配置说明
nginx有主配置文件和辅助配置文件,主配置文件默认名称是nginx.conf,默认存放在/etc/nginx/nginx.conf。辅助配置的文件名称和路径都可以更改,文件名称通常以conf结尾。
通过status找到nginx的Server配置文件
systemctl status nginx
复制代码
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=