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