Nginx implementa Springboot plus Vue y proyectos ordinarios de pila de tecnología css, js, html

Implementación y depuración de sitios web estáticos de Nginx

  • 1) npm administrar js vuecli
    Npm ejecutar el paquete de compilación e implementar
  • 2) El html + css tradicional introduce directamente js, estático tradicional y lo
    copia directamente.

Etapa de desarrollo de depuración dinámica de sitios web estáticos

  • El proyecto vuecli puede comenzar a depurar con npm run dev

  • En el modo tradicional de importación de desarrollo js, ​​es imposible depurar directamente en el modo servidor. Necesita instalar el servidor live-server. Este servidor es muy simple como módulo de nodo.

npm install -g live-server
live-server --port=6002

Nginx configura hosts virtuales para reenviar diferentes directorios con diferentes nombres de dominio o puertos (proyectos de front-end)

  • El alojamiento virtual, también llamado "espacio del sitio web", consiste en dividir un servidor físico que se ejecuta en Internet en varios servidores "virtuales". La tecnología de host virtual ha promovido en gran medida la aplicación y popularización de la tecnología de red. Al mismo tiempo, el servicio de alquiler de host virtual se ha convertido en una nueva forma económica en la era de Internet.

Configurar el host virtual según el puerto

(1) Cargue un sitio web estático: el
proyecto tradicional de front-end en nginx / html_xxx El
proyecto vuecli de front-end está empaquetado y cargado en nginx / vuecli_xxx
(2) Modifique el archivo de configuración de Nginx: conf / nginx.conf

 server {
    
    
        listen       8081;
        server_name  localhost;
        location / {
    
    
            root   html_xxx;
            index  index.html;
        }      
    }
    server {
    
    
        listen       80;
        server_name  localhost;
        location / {
    
    
            root   vuecli_xxx;
            index  index.html;
        }        
    }

(3) Prueba de acceso: Vuelva a cargar la
barra de direcciones de recarga de Nginx e ingrese http: // localhost: 82
barra de direcciones e ingrese http: // localhost: 83

Configurar el host virtual según el nombre de dominio

  • Nombre de dominio y vinculación de IP:
    un nombre de dominio corresponde a una dirección de IP, y una dirección de IP puede estar vinculada por varios nombres de dominio.
    Para las pruebas locales, puede modificar el archivo de hosts (C: \ Windows \ System32 \ drivers \ etc)
    para configurar la relación de mapeo entre el nombre de dominio y la ip. Si la relación correspondiente entre el nombre de dominio y la ip está configurada en el archivo de hosts, no es necesario ir al servidor dns. Especifique el nombre de dominio IP de la regla de vinculación y luego confirme. Después de señalar el nombre de dominio, modifique el archivo de configuración nginx
    Hosts
    127.0.0.1 app_html_xxx
    127.0.0.1 admin_vuecli_xxx
    (1) Cargue un sitio web estático: el
    proyecto tradicional de front-end en nginx / html_xxx,
    empaque el proyecto vuecli de front-end y cárguelo a nginx / vuecli_xxx
    (2) Modificar el archivo de configuración de Nginx: conf / nginx.conf
server {
    
    
        listen       80;
        server_name  app_html_xxx;
        location / {
    
    
            root   html_xxx;
            index  index.html;
        }
    }
    server {
    
    
        listen       80;
        server_name  admin_vuecli_xxx;
        location / {
    
    
            root   vuecli_xxx;
            index  index.html;
        }
    }

Nginx como proxy inverso: diferentes nombres de dominio o direcciones se reenvían a diferentes servidores

  • Los proyectos estáticos pueden implementar varios proyectos a través de hosts virtuales, pero los sitios web dinámicos de tomcat no funcionarán y nginx no puede interpretar ni ejecutar.

Configuración de proxy inverso

Modifique el archivo de configuración de Nginx: conf / nginx.conf

server {
    
    
		listen       80;
		server_name  java_web;

		#charset koi8-r;

		#access_log  logs/host.access.log  main;

		location / {
    
     
		    proxy_pass http://127.0.0.1:6002; #访问域名为java_web都交给6002处理
		    index  index.html index.htm;
		}
	}

	server {
    
    
		listen       80;
		server_name  admin.com;

		#charset koi8-r;

		#access_log  logs/host.access.log  main;

		location / {
    
    
		    proxy_pass http://127.0.0.1:8082; #访问域名为 admin.com都交给8082处理
		    index  index.html index.htm;
		}
	}

Las reglas del proxy inverso se pueden distinguir por diferentes nombres de dominio y también pueden distinguirse por diferentes uris.

Resolver dominios cruzados:

server {
    
    
		listen       80;
		server_name  admin.mall.com;
 location / {
    
    
            # 检查域名后缀
		  if ($http_origin ~ \.mall\.com) {
    
    
				add_header Access-Control-Allow-Origin $http_origin;
				add_header Access-Control-Allow-Methods GET,POST,DELETE,PUT,OPTIONS;
				add_header Access-Control-Allow-Credentials true;
				add_header Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,U-TOKEN;
				add_header Access-Control-Max-Age 1728000;
		   }
		   # options请求不转给后端,直接返回204
		   # 第二个if会导致上面的add_header无效,这是nginx的问题,这里直接重复执行下
		   if ($request_method = OPTIONS) {
    
    
				add_header Access-Control-Allow-Origin $http_origin;
				add_header Access-Control-Allow-Methods GET,POST,DELETE,PUT,OPTIONS;
				add_header Access-Control-Allow-Credentials true;
				add_header Access-Control-Allow-Headers DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,U-TOKEN;
				add_header Access-Control-Max-Age 1728000;
				return 204;
		   }
			# 其他请求代理到后端
		   proxy_set_header Host $host;
		   proxy_redirect off;
		   proxy_set_header X-Real-IP $remote_addr;
		   proxy_set_header X-Scheme $scheme;
		   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		   proxy_set_header X-Forwarded-Proto $scheme;
		   proxy_pass http://localhost:8081;
        }
    }

Supongo que te gusta

Origin blog.csdn.net/weixin_45528650/article/details/110913652
Recomendado
Clasificación