Configuración simple de host virtual nginx y secuencia de comandos de clave secreta

Uno de los negocios de la empresa es crear sitios web en el extranjero para empresas, y mi tarea es agregar certificados y agregar una configuración de host virtual nginx. Aunque es muy simple, es problemático hacer este trabajo repetidamente, así que escribí un script para reducir la carga de trabajo. .

Puntos de función:
1. Coloque el certificado en el directorio cert
2. Edite el archivo de configuración del host virtual y colóquelo en el directorio vhost

#!/bin/bash
#This shell used to xinrong haiwai project
#Bailu 2021/5/14 first realease

echo -e "\033[33m 请输入域名\033[0m"
read -p"->" -a domain
	
cert() {
    
    
	cert_dir=/application/nginx-1.6.3/conf/cert/${domain[0]}
	if [ ! -d ${cert_dir} ];then
	mkdir /application/nginx-1.6.3/conf/cert/${domain[0]}
	echo -e "\033[34m 目录 ${cert_dir} 建立完成\033[0m"
	mv ${domain[0]}.crt ${domain[0]}.key /application/nginx-1.6.3/conf/cert/${domain[0]}/
	echo -e "\033[34m --- ${domain[0]} --- 证书传输完毕\033[0m"
	else
	echo -e "\033[35m 目录$cert_dir已存在,建议维护原配置文件\033[0m"
	exit
	fi
}

vhost() {
    
    
	vhost_conf=/application/nginx/conf/vhost/${domain[0]}.conf

	if [ -f ${vhost_conf} ];then
		echo -e "\033[35m 配置文件$vhost_conf已存在,建议维护原配置文件\033[0m"
		exit
	fi

	cp xxx.com.conf $vhost_conf
	sed -i "3s/xxx.com/`echo ${
      
      domain[@]}`/g" $vhost_conf
	sed -i "45s/xxx.com/`echo ${
      
      domain[@]}`/g" $vhost_conf
	sed -i "s/xxx.com/${domain[0]}/g" $vhost_conf	
	echo -e "\033[34m 域名${domain[0]}虚拟主机 建立完成\033[0m"
}

cert;vhost;nginx -s reload

echo -e "\033[33m 域名${domain[0]} 部署完毕,可以访问测试页了\033[0m"

¿Cómo hacerlo? Es muy simple, coloque el archivo de plantilla y el certificado del host virtual en un directorio, ejecute el script y listo. A continuación se muestra el archivo de plantilla. Lo llamé xxx.com.conf. Lo cambié según mis propias necesidades. El certificado no se liberará, un crt y una clave.

server {
    
    
    listen       80;
    server_name  xxx.com;

    rewrite ^/(.*) https://xxx.com/$1 permanent;  # 重定向 http 到 https

    ##### 生成证书使用的配置

    location ~ ^/.well-known/.*$ {
    
    
        root /tmp/tmp.well-known/;
        index index.html;
    }

    location  / {
    
    
         root /opt/wwwroot/xxx.com;
          index index.html;
   }
    
    ### 在线客服投放配置 #######
    
    location ^~ /interface_api {
    
    
        proxy_pass http://127.0.0.1:8081;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
    }
    location ^~ /TongJiCenter {
    
    
        proxy_pass http://127.0.0.1:8082;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
    }
    
    #对后端服务器抛出的错误404进行页面重定向
    error_page   500 502 503 504 404 /404.html;
    location = /404.html {
    
    
        root 404;
    } 
}

server {
    
    
    listen	443 ssl;
    server_name  xxx.com;
   ssl_certificate cert/xxx.com/xxx.com.crt;
   ssl_certificate_key cert/xxx.com/xxx.com.key;

    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE;
    ssl_protocols TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    add_header Strict-Transport-Security "max-age=31536000; includeSubdomains";


    location   / {
    
    
        root /opt/wwwroot/xxx.com;
        index index.html index.htm;
     }
       
    location ~ ^/.well-known/.*$ {
    
    
        root /tmp/tmp.well-known/;
        index index.html;
    } 
    
    location ^~ /interface_api {
    
    
        proxy_pass http://127.0.0.1:8081;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
    }
    location ^~ /TongJiCenter {
    
    
        proxy_pass http://127.0.0.1:8082;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Real-IP $remote_addr;
    }

    #对后端服务器抛出的错误404进行页面重定向
    error_page   500 502 503 504 404 /404.html;
    location = /404.html {
    
    
        root 404;
    }
}

Supongo que te gusta

Origin blog.csdn.net/qq_35855396/article/details/117082721
Recomendado
Clasificación