zoukankan      html  css  js  c++  java
  • nginx增加ssl支持

    1. ./configure   --with-http_ssl_module 
    2. make && make install  
     

    //环境介绍

    1.nginx服务器:10.10.54.157

    2.配置nginx服务器,当监听到来自客户端www.zijian.com:80请求时,转到10.10.54.150:1500这个web服务器上

    3.配置nginx服务器支持ssl加密传输协议

    //生成nginx服务器需要的证书文件

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    1.创建网站证书存放目录
    shell> mkdir /usr/local/nginx/conf/ssl
    shell> cd /usr/local/nginx/conf/ssl
     
    2.制作CA证书
    shell> openssl genrsa -des3 -out ca.key 2048
    shell> openssl req -new -x509 -days 7305 -key ca.key -out ca.crt
     
    3.生成nginx服务器所需证书,并用CA签名
    shell> openssl genrsa -des3 -out client.key 1024
    shell> openssl req -new -key client.key -out client.csr
    shell> openssl x509 -req -in client.csr -out client.pem -signkey client.key -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650
     
    4.查看证书文件
    shell> pwd
    /usr/local/nginx/conf/ssl
    shell> ls
    ca.crt  ca.key  ca.srl  client.csr  client.key  client.pem

    //配置nginx支持ssl传输协议

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    shell> vim /usr/local/nginx/conf/nginx.conf
    ------------------------------------------------
    user  apache apache;
    worker_processes  2;
    error_log  logs/error_nginx.log;
    pid        logs/nginx.pid;
    events {
        worker_connections  1024;
    }
     
    http {
            include       mime.types;
            default_type  application/octet-stream;
            log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
            access_log  logs/access_nginx.log  main;
            sendfile        on;
            tcp_nopush      on;
            keepalive_timeout  65;
            gzip  on;
     
    server {
            listen       443;
            server_name  www.zijian.com;
             charset uft-8;
             access_log logs/www.access.log main;
             root /var/www/html;
             location / {
             index index.html index.htm;
              }
     
             ssl                  on;
             ssl_certificate      /usr/local/nginx/conf/ssl/client.pem;
             ssl_certificate_key  /usr/local/nginx/conf/ssl/client.key;
     
          }
    }
    --------------------------------------------------------
     
    #上面的配置只支持https://www.zijian.com 访问,因为监听端口只开了443端口,普通的http协议的80端口并未开放
    #要开放http和https,再加上下面这一条server
    ------------------------------------------------
    server {
            listen       80;
            server_name  www.zijian.com;
             charset uft-8;
             access_log logs/www.access.log main;
             root /var/www/html;
             location / {
             proxy_pass http://10.10.54.150:1500;
              }
          }
           
    #当用户使用http协议浏览该网站时,自动跳转到10.10.54.150:1500上
    ------------------------------------------------
     
    nginx编译参数说明如下:
     
    --prefix=<path> -- 安装路径,如果没有指定,默认为/usr/local/nginx。
    --sbin-path=<path> -- nginx可执行命令的文件,如果没有指定,默认为<prefix>/sbin/nginx。
    --conf-path=<path> -- 在没有使用-c参数指定的情况下nginx.conf的默认位置,如果没有指定,默认为<prefix>/conf/nginx.conf。
    --pid-path=<path> -- nginx.pid的路径,如果没有在nginx.conf中通过“pid”指令指定,默认为<prefix>/logs/nginx.pid。
    --lock-path=<path> -- nginx.lock文件路径,如果没有指定,默认为<prefix>/logs/nginx.lock。
    --error-log-path=<path> -- 当没有在nginx.conf中使用“error_log”指令指定时的错误日志位置,如果没有指定,默认为<prefix>/logs/error.log。
    --http-log-path=<path> -- 当没有在nginx.conf中使用“access_log”指令指定时的访问日志位置,如果没有指定,默认为<prefix>/logs/access.log。
    --user=<user> -- 当没有在nginx.conf中使用“user”指令指定时nginx运行的用户,如果没有指定,默认为“nobody”。
    --group=<group> -- 当没有在nginx.conf中使用“user”指令指定时nginx运行的组,如果没有指定,默认为“nobody”。
    --builddir=DIR -- 设置构建目录。
    --with-rtsig_module -- 启用rtsig模块。
    --with-select_module --without-select_module -- 如果在configure的时候没有发现kqueue, epoll, rtsig或/dev/poll其中之一,select模块始终为启用状态。
    --with-poll_module --without-poll_module -- 如果在configure的时候没有发现kqueue, epoll, rtsig或/dev/poll其中之一,poll模块始终为启用状态。
    --with-http_ssl_module -- 启用ngx_http_ssl_module,启用SSL支持并且能够处理HTTPS请求。需要OpenSSL,在Debian系统中,对应的包为libssl-dev。
    --with-http_realip_module -- 启用ngx_http_realip_module
    --with-http_addition_module -- 启用ngx_http_addition_module
    --with-http_sub_module -- 启用ngx_http_sub_module
    --with-http_dav_module -- 启用ngx_http_dav_module
    --with-http_flv_module -- 启用ngx_http_flv_module
    --with-http_stub_status_module -- 启用”server status”(服务状态)页
    --without-http_charset_module -- 禁用ngx_http_charset_module
    --without-http_gzip_module -- 禁用ngx_http_gzip_module,如果启用,需要zlib包。
    --without-http_ssi_module -- 禁用ngx_http_ssi_module
    --without-http_userid_module -- 禁用ngx_http_userid_module
    --without-http_access_module -- 禁用ngx_http_access_module
    --without-http_auth_basic_module -- 禁用ngx_http_auth_basic_module
    --without-http_autoindex_module -- 禁用ngx_http_autoindex_module
    --without-http_geo_module -- 禁用ngx_http_geo_module
    --without-http_map_module -- 禁用ngx_http_map_module
    --without-http_referer_module -- 禁用ngx_http_referer_module
    --without-http_rewrite_module -- 禁用ngx_http_rewrite_module。如果启用,需要PCRE包。
    --without-http_proxy_module -- 禁用ngx_http_proxy_module
    --without-http_fastcgi_module -- 禁用ngx_http_fastcgi_module
    --without-http_memcached_module -- 禁用ngx_http_memcached_module
    --without-http_limit_zone_module -- 禁用ngx_http_limit_zone_module
    --without-http_empty_gif_module -- 禁用ngx_http_empty_gif_module
    --without-http_browser_module -- 禁用ngx_http_browser_module
    --without-http_upstream_ip_hash_module -- 禁用ngx_http_upstream_ip_hash_module
    --with-http_perl_module -- 启用ngx_http_perl_module
    --with-perl_modules_path=PATH -- 为perl模块设置路径
    --with-perl=PATH -- 为perl库设置路径
    --http-client-body-temp-path=PATH -- 为http连接的请求实体临时文件设置路径,如果没有指定,默认为<prefix>/client_body_temp
    --http-proxy-temp-path=PATH -- 为http代理临时文件设置路径,如果没有指定,默认为<prefix>/proxy_temp
    --http-fastcgi-temp-path=PATH - 为http fastcgi临时文件设置路径,如果没有指定,默认为<prefix>/fastcgi_temp
    --without-http -- 禁用HTTP服务
    --with-mail -- 启用IMAP4/POP3/SMTP代理模块
    --with-mail_ssl_module -- 启用ngx_mail_ssl_module
    --with-cc=PATH -- 设置C编译器路径
    --with-cpp=PATH -- 设置C预处理器路径
    --with-cc-opt=OPTIONS -- 变量CFLAGS中附加的参数,用于FreeBSD中的PCRE库,同样需要指定--with-cc-opt=”-I /usr/local/include”,如果我们使用select()函数则需要同时增加文件描述符数量,可以通过--with-cc-opt=”-D FD_SETSIZE=2048”指定。
    --with-ld-opt=OPTIONS -- 通过连接器的附加参数,用于FreeBSD中的PCRE库,同样需要指定--with-ld-opt=”-L /usr/local/lib”。
    --with-cpu-opt=CPU -- 指定编译的CPU,可用的值为: pentium, pentiumpro, pentium3, pentium4, athlon, opteron, amd64, sparc32, sparc64, ppc64
    --without-pcre -- 禁用PCRE库文件,同时将禁用HTTP rewrite 模块,如果要在”location”指令中使用正则表达式,同样需要PCRE库。
    --with-pcre=DIR -- 设置PCRE库源文件路径。
    --with-pcre-opt=OPTIONS -- 在编译时为PCRE设置附加参数。
    --with-md5=DIR -- 设置md5库源文件路径。
    --with-md5-opt=OPTIONS -- 在编译时为md5设置附加参数。
    --with-md5-asm -- 使用md5汇编源。
    --with-sha1=DIR -- 设置sha1库源文件路径。
    --with-sha1-opt=OPTIONS -- 在编译时为sha1设置附加参数。
    --with-sha1-asm -- 使用sha1汇编源。
    --with-zlib=DIR -- 设置zlib库源文件路径。
    --with-zlib-opt=OPTIONS -- 在编译时为zlib设置附加参数。
    --with-zlib-asm=CPU -- 为指定的CPU使用zlib汇编源进行优化,可用值为: pentium, pentiumpro。
    --with-openssl=DIR -- 设置openssl库源文件路径。
    --with-openssl-opt=OPTIONS -- 在编译时为openssl设置附加参数。
    --with-debug -- 启用debug记录。
    --add-module=PATH -- 增加一个在PATH中的第三方模块。
  • 相关阅读:
    要学习编程?这10件事情你知道了吗?
    JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
    这8个免费的网上课程可以有助你的技术成长
    给游戏开发初学者的10条建议
    21个国外受欢迎的学习编程的网站:总有一个理由会让你爱上它们
    hibernate 知识梳理
    struts2 知识梳理
    maven 相关
    c#配置log4net步骤
    arcobject 相关
  • 原文地址:https://www.cnblogs.com/bravenight/p/4485340.html
Copyright © 2011-2022 走看看