Nginx,了解一下

        Nginx是一个高性能的web服务器。可作为反向代理/负载均衡和邮件服务器,缓存服务器使用。

        Nginx与传统服务器不同,NGINX 不依赖于线程来处理请求。相反,它使用更加可扩展的事件驱动(异步)架构。这种架构在负载下使用小的但更重要的是可预测的内存量。即使不希望处理数千个并发请求,但仍然可以从 Nginx的高性能和小内存中获益。

        Nginx启动后,有一个主进程和一个或多个工作进程,主进程的作用主要是读入和检查Nginx的配置信息,维护工作进程;工作进程才是真正处理客户端请求的进程。具体要启动多少个工作进程,可以在 Nginx的配置文件nginx.conf中通过worker_processes指令指定。

可以通过以下这些命令来控制 Nginx:

    nginx -s[stop|quit|reopen|reload]

其中:

        nginx -s stop: 强制停止Nginx,不管工作进程当前是否正在处理用户请求,都会立即退出。

        nginx -s quit:“优雅地”退出Nginx,执行这个命令后,工作进程会将当前正在处理的请求处理完毕后,再退出。

        nginx -s reload:重载配置信息。当Nginx的配置文件改变之后,同过执行这个命令,使更改的配置信息生效,而无需重新启动nginx.

        nginx -s reopen:重新打开日志文件。

        在负载均衡中,可以通过配置权重weight,来表示访问的概率。其中还可以设置备份服务器,当工作server都不能访问时,backup server会启用。(一般backup server的资源配置比较低,用于紧急的突发情况)

        还有一种负载均衡算法是:ip_hash,down表示不参与负载均衡。这种方式可以有效的解决同一台(同一个IP)固定访问一台web服务器,有效的解决了动态网页存在的Session共享问题。

缓存实现原理

配置Https服务器

       修改 conf/nginx.conf 文件,必须在配置文件 server 块中的监听指令 listen 后启用 ssl 参数,并且指定服务器证书 ssl_certificate 和私钥 ssl_certificate_key 的位置:

        服务器证书是一个公共实体,它被发送给连接到服务器的每一个客户机。私钥是一个安全实体,应该存储在具有受限访问的文件中,但它必须可被nginx主进程读取。私钥也可以存储在与服务器证书相同的文件中:

        在这种情况下,这个证书文件的访问权限也应受到限制。虽然证书和密钥存储在一个文件中,但只有证书被发送到客户端。

        指令 ssl_protocols 和 ssl_ciphers 可用于限制仅包括强版本和密码的 SSL/TLS 连接。 默认情况下,NGINX 使 用ssl_protocols TLSv1 TLSv1.1 TLSv1.2版本和ssl_ciphers HIGH:!aNULL:!MD5密码,因此通常不需要显式地配置它们。需要注意的是,这些指令的默认值在不同的版本里面已经变更好几次了。

Gzip压缩技术

      压缩响应通常会显着减少传输数据的大小。 然而,由于压缩在运行时发生,所以会增加处理开销,这可能会对性能产生负面影响。在向客户端发送响应之前,NGINX 会执行压缩,但不会“重复压缩”已经压缩过的响应。

        压缩的级别设置的越高,则需要消耗的CPU也是最大。实际应用中要根据具体的场景决定是否启用压缩。

重写与重定向

break:当location从上匹配到正确的后就返回,下面的不再执行。而last则会继续往下匹配。

防盗链

        做法是请求的head中有referer。

你可能感兴趣的:(Nginx,了解一下)