Instalación del código fuente de Centos 7 nginx (1.16.1) + ssl + configuración del certificado Ali

Ngninx instalado directamente usando yum no es compatible con SSL de forma predeterminada, por lo que debe compilar e instalar desde el código

1. Verifique la versión a instalar

http://nginx.org/en/download.html
Aquí todavía elegimos la versión estable 1.16.1

Segundo, instale las dependencias primero

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

Tercero, descargue el código fuente

Cambie al directorio / usr / local / src, descargue el código fuente y descomprima

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

Cuarto, compila el código fuente

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

Captura de pantalla después de una compilación exitosa

Compile la solución de error, omita directamente sin error

  1. . Error: ./ configure: error: HTTP
    reescritura módulo requiere la biblioteca PCRE causa del problema: la necesidad de compilar e instalar el paquete nginx pcre, no se instala, entonces será error
    Solución:
    yum -y instalar zlib zlib-devel OpenSSL OpenSSL - devel pcre pcre -desarrollar

  2. Error: Archivo "/ usr / bin / yum", línea 30 excepto KeyboardInterrupt, e:
    causa del problema: yum usa python como intérprete de comandos, el intérprete original de python del sistema es python2.7 y el intérprete predeterminado del sistema es python3 .7
    Solución:
    vim / usr / bin / yum
    modifica el primer comportamiento: #! / Usr / bin / python2.7
    vi / usr / libexec / urlgrabber-ext-down
    modifica el primer comportamiento: #! / Usr / bin / python2.7

  3. Error: Archivo "/ bin / yum-config-manager", línea 135 excepto yum.Errors.RepoError, e:
    causa del problema: yum usa python como intérprete de comandos, el intérprete original de python del sistema es python2.7, el sistema El intérprete predeterminado es la
    solución python3.7 :
    vim / bin / yum-config-manager
    modifica la primera línea: #! / Usr / bin / python2.7

  4. Error: ./configure: error: los módulos SSL requieren la biblioteca OpenSSL
    Causa: falta la biblioteca SSL
    Solución: yum -y install openssl openssl-devel

Cinco, instale nginx

Use las instrucciones si nginx ya está instalado

make

Si no está instalado o desinstalado

make && make install

Seis, ver la información de la versión nginx

Ver la versión compilada de nginx

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


Ver la versión nginx después de la instalación

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

Siete, actualice nginx, este paso se utiliza para instalar nginx para actualizar el archivo bin, ignórelo si está instalado

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

Copie el archivo bin y verifique la próxima versión

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

Ocho, configure el arranque para que se inicie automáticamente

vim /lib/systemd/system/nginx.service

Copie y guarde el siguiente contenido (después de presionar ESC: wq guardar y salir)

[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

Establecer arranque desde arranque

systemctl enable nginx


Iniciar, verificar estado, reiniciar nginx, conjunto de 3 instrucciones

systemctl start nginx
systemctl status nginx
systemctl restart nginx

Puede reiniciar la máquina y verificar el estado de nginx

Nueve, configure la variable de entorno nginx

Generalmente, después de modificar la configuración, reinicie con nginx -s reload

nginx -s reload

El siguiente mensaje aparece es que no hay variables de entorno configuradas

Abrir / etc / profile

vim /etc/profile

Agregue las siguientes 2 líneas de configuración a la última línea (ESC: wq save and exit)

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

Después de que la configuración surta efecto, puede usar nginx -s reload

source /etc/profile

Diez, configuración del certificado de Alibaba Cloud

Coloque el certificado aplicado por Alibaba Cloud en el directorio / usr / local / nginx / conf / cert (el archivo también puede especificarlo usted mismo) para
configurar la resolución del nombre de dominio

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

Aumente la configuración y cambie el siguiente www.yuming.com a su propio nombre de dominio

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;
    }
}

Supongo que te gusta

Origin www.cnblogs.com/nickchou/p/12678354.html
Recomendado
Clasificación