zoukankan      html  css  js  c++  java
  • centos 7 源码方式安装nginx(1.16.1) + ssl + 阿里证书配置

    nginx 1.18.0版本的安装请移步:https://www.cnblogs.com/nickchou/p/12978724.html

    直接使用yum方式安装的ngninx默认是不支持ssl的,所以需要从代码编译安装

    一、查看要安装的版本

    http://nginx.org/en/download.html
    这里我们还是选择的稳定版1.16.1

    二、先安装依赖

    yum install gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y
    

    三、下载源码

    切换到/usr/local/src目录下,下载源代码解压

    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.16.1.tar.gz
    tar -zxvf nginx-1.16.1.tar.gz
    

    四、编译源代码

    cd /usr/local/src/nginx-1.16.1
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
    

    编译成功后的截图

    编译报错的解决办法,没有报错直接跳过

    1. 报错:./configure: error: the HTTP rewrite module requires the PCRE library.
      问题原因:编译安装nginx需要pcre包,未安装的话会报错
      解决办法:
      yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

    2. 报错:File "/usr/bin/yum", line 30 except KeyboardInterrupt, e:
      问题原因:yum采用python作为命令解释器,原来系统自带的python解释器为python2.7,系统默认的解释器为python3.7
      解决办法:
      vim /usr/bin/yum
      修改第一行为:#!/usr/bin/python2.7
      vi /usr/libexec/urlgrabber-ext-down
      修改第一行为:#!/usr/bin/python2.7

    3. 报错:File "/bin/yum-config-manager", line 135 except yum.Errors.RepoError, e:
      问题原因:yum采用python作为命令解释器,原来系统自带的python解释器为python2.7,系统默认的解释器为python3.7
      解决办法:
      vim /bin/yum-config-manager
      修改第一行为:#!/usr/bin/python2.7

    4. 报错:./configure: error: SSL modules require the OpenSSL library.
      问题原因: 缺少SSL库
      解决办法:yum -y install openssl openssl-devel

    五、安装nginx

    如果nginx已经安装了的话用指令

    make
    

    如果没有安装或者已卸载的话

    make && make install
    

    六、查看nginx的版本信息

    查看编译后的nginx版本

    /usr/local/src/nginx-1.16.1/objs/nginx -V
    


    查看安装后的nginx版本

    /usr/local/nginx/sbin/nginx -V
    

    七、更新nginx,这一步是为装过nginx更新bin文件用的,安装的话忽略

    cp objs/nginx /usr/local/nginx/sbin/
    

    复制bin文件后再核对下版本

    /usr/local/nginx/sbin/nginx -V
    

    八、配置开机自启动

    vim /lib/systemd/system/nginx.service
    

    复制以下内容保存(按ESC后:wq保存退出)

    [Unit]
    Description=nginx service
    After=network.target
    
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s quit
    PrivateTmp=true
    
    [Install]
    WantedBy=multi-user.target
    

    设置开机自启动

    systemctl enable nginx
    


    启动、查看状态、重启nginx,指令3件套

    systemctl start nginx
    systemctl status nginx
    systemctl restart nginx
    

    可以reboot重启机器后再查看nginx状态

    九、配置nginx环境变量

    一般修改配置后用 nginx -s reload 重启

    nginx -s reload
    

    出现以下提示是没有配置环境变量

    打开/etc/profile

    vim /etc/profile
    

    在最后一行 追加下面2行配置(ESC :wq 保存退出)

    PATH=$PATH:/usr/local/nginx/sbin
    export PATH
    

    使配置生效后,就可以用nginx -s reload

    source /etc/profile
    

    十、阿里云证书配置

    把阿里云申请的证书放到目录 /usr/local/nginx/conf/cert (文件也可以自己指定)
    配置域名解析

    vi  /usr/local/nginx/conf/nginx.conf
    

    增加配置,把下面的www.yuming.com改成自己的域名

    server {
        listen       80;
        server_name  www.yuming.com;
        return       301 https://$server_name$request_uri;
    }
    server {
        listen       443 ssl;   // nginx1.15之后用这个语法
        server_name  wwww.yuming.com;
        ssl_certificate   cert/www.yuming.com.pem;
        ssl_certificate_key  cert/www.yuming.com.key;
        ssl_session_timeout 5m;
        ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        location / {
            proxy_set_header Host $http_host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-Ip $remote_addr;
            proxy_set_header X-NginX-Proxy true;
            proxy_pass http://localhost:8001;
            proxy_redirect off;
        }
    }
    
  • 相关阅读:
    错误
    分页查询
    异步请求jquery
    深入理解C/C++ [Deep C (and C++)]
    C语言经典算法100例(三)
    《Python》 计算机基础
    Python程序员的进化史
    以前没有写笔记的习惯,现在慢慢的发现及时总结是多么的重要。 这一篇文章主要关于java多线程一些常见的疑惑点。因为讲解多线程的书籍和文章已经很多了,所以我也不好意思多说,嘻嘻嘻、大家可以去参考一些那些书籍。我这个文章主要关于实际的一些问题。同时也算是我以后复习的资料吧,。还请大家多多指教。 同时希望多结交一些技术上的朋友。谢谢。
    快速读入函数
    一元二次方程公式
  • 原文地址:https://www.cnblogs.com/nickchou/p/12678354.html
Copyright © 2011-2022 走看看