阿里云新centos7.4系统安装https,通过openssl重新编译nginx

本文提供了一种解决阿里云官方HTTPS安装教程中遇到的错误的方法,尤其适用于那些已预装了openssl系统的用户。通过详细步骤指导如何正确安装PCRE、zlib库,下载并配置Nginx和OpenSSL,实现https的正确部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

按照阿里云官方的https安装教程在编译nginx时总是报错,研究了很久,发现它的安装方法可能并不适用于已经预装好openssl的系统,而教程中提供的openssl版本比较新,网上大部分方法并不适用,经过半天的折腾总结出如下方案:


1.   远程连接 并登录到 Linux 实例。

2.   运行 cd/usr/local 切换目录。

3.   运行以下命令安装PCRE zlib 库。

1.   yum -y install pcre pcre-devel
2.   yum install -y zlib-devel

         前往 https://nginx.org/download/ 下载 Nginx。如示例中nginx-1.7.0.tar.gz 的下载地址为 http://nginx.org/download/nginx-1.7.0.tar.gz

运行 wgethttp://nginx.org/download/nginx-1.7.0.tar.gz 下载 Nginx

 

         运行 tar-zxvf nginx-1.7.0.tar.gz 解压安装包。

         前往 https://www.openssl.org/source 下载OpenSSL。如示例中openssl-1.0.1g.tar.gz 的下载地址为 https://www.openssl.org/source/openssl-1.0.1g.tar.gz

运行 wgethttps://www.openssl.org/source/openssl-1.0.1g.tar.gz 下载OpenSSL

 

         运行 tar-xvzf openssl-1.0.1g.tar.gz 解压安装包。

         新建文件夹mkdir /usr/local/ssl

          移动openssl文件夹

  mv /usr/local/openssl-1.0.1g /usr/local/ssl/openssl-1.0.1g

         进入解压后的openssl文件夹 cd./ssl/openssl-1.0.1g/

执行文件夹中的config文件,这里openssl的安装目录默认是/usr/local/ssl(由于系统环境差异路径可能不一致,下同),注意添加zlib-dynamic参数,使其编译成动态库

 ./config shared zlib-dynamic

         config完成后执行 make 命令make

     make 命令执行完后再执行make install 命令,安装openssl  make install

         重命名原来的openssl命令mv /usr/bin/openssl /usr/bin/openssl.old

         重命名原来的openssl目录mv /usr/include/openssl /usr/include/openssl.old 若没有此目录(阿里云centos7.4没有),省去此步骤。

         将安装好的openssl的openssl命令软连到/usr/bin/openssl

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl

         将安装好的openssl的openssl目录软连到/usr/include/openssl

ln -s /usr/local/ssl/include/openssl  /usr/include/openssl

         修改系统自带的openssl库文件,如/usr/local/lib64/libssl.so(根据机器环境而定) 软链到升级后的libssl.so

    ln -s /usr/local/ssl/lib/libssl.so /usr/local/lib64/libssl.so

         执行命令查看openssl依赖库版本是否为1.0.1g    strings/usr/local/lib64/libssl.so |grep OpenSSL

         在/etc/ld.so.conf文件中写入openssl库文件的搜索路径

echo"/usr/local/ssl/lib">> /etc/ld.so.conf

         使修改后的/etc/ld.so.conf生效   ldconfig -v   此时查看openssl是否更新

openssl version

         源码重新安装nginx,使用ssl静态编译:执行nginx的configure文件时,除了业务需要的参数外,需要指定ssl为静态编译,编译参数带上--with-openssl便表明为静态编译ssl

cd /usr/local/nginx-1.7.0

./configure  --with-http_ssl_module--with-openssl=/usr/local/ssl/ openssl-1.0.1g   

         安装nginx    make && make install

         新建文件夹 /usr/local/nginx/conf/cert 证书导入

         修改 /usr/local/nginx/conf/nginx.conf 加入

 

server {

                   listen443;

                   server_name www.liuxuan.cc;

                   sslon;

                   ssl_certificate   cert/5.pem;

                   ssl_certificate_key  cert/5.key;

                   ssl_session_timeout5m;

                   ssl_ciphersECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

                   ssl_protocolsTLSv1 TLSv1.1 TLSv1.2;

                   ssl_prefer_server_cipherson;

                   location/ {

                                     proxy_intercept_errorson;

                                     proxy_redirectoff;

                                     proxy_set_headerHost $host;

                                     proxy_set_headerX-Real-IP $remote_addr;

                                     proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for;

                                     proxy_passhttp://127.0.0.1:8082;

                            }

                   error_page    500 502 503 504  /defined50x.html;

                   location= /defined50x.html {

                            root   /usr/local/nginx/html;

                   }

                            access_log/usr/local/nginx/logs/mswx_access.log;

           }

### 锁相环原理 锁相环PLL, Phase-Locked Loop)是一种反馈控制电路,其核心功能在于使输出信号的频率和相位与输入参考信号同步。该电路广泛应用于通信、电子设备以及计算机领域,在这些场景下起到至关重要的作用[^2]。 #### 构成部分及其工作方式 锁相环主要由三个组件构成: - **鉴相器**:负责检测两路信号之间的相位差异,并据此产生误差电压。 - **低通滤波器**:平滑来自鉴相器的脉冲序列,转换为连续变化的直流电平,从而去除高频噪声成分。 - **压控振荡器 (VCO)**:接收经过滤波后的电压作为调制信号,调整自身的震荡频率以匹配目标值。 当系统启动时,如果VCO初始频率\(W_o\)不同于期望的目标频率\(W_i\), 则会经历一个被称为“捕捉”的动态调节阶段;在此期间,通过不断修正直到两者趋于一致并最终达到稳定的锁定状态。此时,即使外界条件有所波动,只要变动幅度不大,PLL仍能保持良好的跟随特性,即所谓的跟踪性能[^5]。 ### 实现倍频的方法 为了实现倍频操作,可以在PLL架构内加入额外的功能单元——分频计数器。具体做法是在反馈路径中插入这样一个元件,使得送回至鉴相器端口处的实际比较对象成为原有时钟周期的一个整数倍版本。如此一来,尽管表面上看似乎只是改变了反馈比例关系而已,但实际上却巧妙地实现了对原始输入频率的有效放大效果[^1]。 ```cpp // C++伪代码展示简单的PLL倍频逻辑框架 class PLL { public: void setMultiplier(int multiplier); private: int _multiplier; // 设置倍频系数 double adjustFrequency(double inputFreq){ return inputFreq * _multiplier; } }; ``` ### 应用实例 除了上述提到的基础用途外,PLL还拥有众多其他应用场景,比如但不限于: - 提升本地振荡源稳定性; - 执行复杂的频率合成功能; - 支持高速数据传输链路上的数据恢复机制等。 值得注意的是,虽然大多数情况下PLL表现良好,但在某些极端条件下可能会出现失锁现象,这通常是因为输入信号质量太差或是设计参数不合理所致[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值