zoukankan      html  css  js  c++  java
  • 马哥博客作业第十八周

    第18周作业:

    1、请列出 nginx 常用模块的各个优缺点以及区别

    ngx_http_access_module      四层基于IP的访问控制,可以通过匹配客户端源IP地址进行限制
    ngx_http_auth_basic_module    状态页,使用basic机制进行用户认证,在编译安装nginx的时候需要添加编译参数--withhttp_stub_status_module,否则配置完成之后监测会是提示语法错误
    ngx_http_stub_status_module   状态统计模块
    ngx_http_gzip_module       文件的压缩功能
    ngx_http_gzip_static_module   静态压缩模块
    ngx_http_ssl_module nginx    https 功能
    ngx_http_rewrite_module     重定向模块,解析和处理rewrite请求
    ngx_http_referer_module     防盗链功能,基于访问安全考虑
    ngx_http_proxy_module       将客户端的请求以http协议转发至指定服务器进行处理
    ngx_stream_proxy_module     tcp负载,将客户端的请求以tcp协议转发至指定服务器处理
    ngx_http_fastcgi_module     将客户端对php的请求以fastcgi协议转发至指定服务器助理
    ngx_http_uwsgi_module       将客户端对Python的请求以uwsgi协议转发至指定服务器处理
    ngx_http_headers_module     可以实现对头部报文添加指定的key与值
    ngx_http_upstream_module    负载均衡模块,提供服务器分组转发、权重分配、状态监测、调度算法等高级功能
    ngx_stream_upstream_module   后端服务器分组转发、权重分配、状态监测、调度算法等高级功能
    ngx_http_fastcgi_module     实现通过fastcgi协议将指定的客户端请求转发至php-fpm处理
    ngx_http_flv_module       为flv伪流媒体服务端提供支持

    2、请写出用户通过 nginx 访问的工作过程

    首先,用户通过客户端浏览器访问服务器,服务器端的Nginx服务是由俩个工作进程组成的,Master主进程负责接收访问请求,新请求到来时,
    主进程传递信号给worker进程,由worker进程对请求进行处理.处理完后将结果返回给Master进程,由Master将最终结果返回给用户.

    3、请写出实现 nginx-https 访问得步骤过程

    1.客户端发起https请求
      客户端访问某个web端的https地址,一般都是443端口
    2.服务器的配置
      采用https协议的服务器必须有一套证书,可以通过一些组织申请,也可以自己制作.
    3.传送证书.
      服务器给客户端传递证书
    4.客户端解析证书
      客户端首先会验证公钥的有效性,如果有异常,则会弹出一个警告框提示证书可能存在问题;如果没问题,就生成一个随机值,然后用证书对
      该随机值进行加密
    5.传送步骤4 的加密数据
      将证书加密后的随机值传递给服务器
    6.服务器端解密信息
      服务器用私钥解密步骤5加密后的随机值之后,得到客户端传过来的随机值(私钥),然后将内容通过该值进行对称加密.
    7.传输加密后的信息
      服务器将用私钥加密后的数据传递给客户端,将客户端可以被还原出原数据内容
    8.客户端解密信息
      客户端用之前生成的私钥解密服务器端传递过来的数据.

    4、请写出隐藏 Nginx 版本号得过程

       server_tokens off;

    5、请写出 nginx 各种优化参数。以及每个参数得作用是什么

    mian模块:
    worker_processes auto; 启动nginx工作进程的数量.

    worker_cpu_affinity 0001 0010 0100 1000; 将Nginx工作进程绑定到指定的0-3cpu核心.可以减少cpu对进程的资源分配和回收以及内存管理,可以有效提升Nginx服务器的性能.

    workerrlimit_nofile 65536;所有woker进程能打开的文件数量上限,设置这个必须要与ulimit -n 相一致,最好在/etc/security/limits.conf里面修改"* - nproc 65536".


    events模块:
    worker_connections 65536;设置单个工作进程的最大并发连接数

    use epoll ; 使用epoll事件驱动

    accept_mutex on; 默认是off,新请求会唤醒所有的worker进程,造成多余的cpu消耗.可以适当优化设置为on

    mulit_accpet on; on时Nginx服务器的每个工作进程可以同时接受多个新的网络连接,默认是off


    http模块:

    server_tokens on ; 隐藏nginx版本号信息,若要自定义响应报文的Nginx版本信息,需要修改源码文件,重新编译

    如果
    server_tokens on ,修改src/core/nginx.h 的 13-14行
    #define NGINX_VERSION "1.18.9" 中的1.18.9改为想要的文字
    #define NGINX_VER "nginx/" NGINX_VERSION 中的nginx改为想要的文字
    如果server_tokens off,修改src/http/ngx_http_header_filter_module.c 的49行
    statuc char ngx_http_server_string[] = "Server: nginx" CRLF; 中的nginx改为自己想要的文字即可.
    
    
  • 相关阅读:
    浅析Linux计算机进程地址空间与内核装载ELF
    ExtAspNet学习利用AppBox框架快速创建项目(四)vs2010解决方案
    ExtAspNet学习利用AppBox框架快速创建项目(五)—完成项目含源代码
    ExtAspNet学习利用AppBox框架快速创建项目(一)
    新手第一帖——学习.NET
    java hibernate4 学习心得
    ExtAspNet学习利用AppBox框架快速创建项目(三)Subsonic工具配置
    ExtAspNet学习利用AppBox框架快速创建项目(二)创建Oralce数据库
    我的编程疑团java还是.net
    修改.htaccess实现301重定向
  • 原文地址:https://www.cnblogs.com/huangguangrui/p/13765211.html
Copyright © 2011-2022 走看看