В этой статье Nginx используется для простого динамического и статического разделения, в этой статье используется Nginx и простая реализация веб-приложения SpringBoot.
1. Подготовка.
В сочетании со сценарием в этой статье вам необходимо установить Nginx и среду Java (запустив проект SpringBoot).
1.1 Об установке Nginx в системе Linux вы можете прочитать в моей статье---(портал).
1.2 В этой статье SpringBoot использует шаблон Thymeleaf, а номер порта проекта — 8888.
1.3 jquery.js хранится в локальном файле /Users/dalaoyang/Downloads/static
2. Что такое динамическое и статическое разделение?
Прежде чем мы сможем понять разделение статического и динамического, мы должны сначала понять, что является динамическим и что является статичным.
Вообще говоря, в веб-разработке динамические ресурсы фактически относятся к этим фоновым ресурсам, а статические ресурсы относятся к HTML, JavaScript, CSS, img и другим файлам.
Вообще говоря, необходимо разделить динамические ресурсы и статические ресурсы и развернуть статические ресурсы на Nginx.Когда придет запрос, если это запрос на статические ресурсы, он пойдет прямо в каталог статических ресурсов, настроенный nginx для получения ресурсов , Если это запрос на динамические ресурсы, Nginx использует принцип обратного прокси для перенаправления запроса в фоновое приложение для обработки, тем самым реализуя разделение динамических и статических ресурсов.
После использования разделения внешнего и внутреннего интерфейса скорость доступа к статическим ресурсам может быть значительно повышена.В то же время разработка внешнего и внутреннего интерфейса может быть распараллелена во время процесса открытия, что может эффективно улучшить время разработки и сократить время совместной отладки.
3. Конфигурация проекта
Измените класс запуска приложения SpringBoot и сделайте простой переход, чтобы корневой путь доступа мог перейти к index.html, как показано в следующем коде.
@SpringBootApplication
@Controller
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping("/")
public String index(){
return "index";
}
}
index.html код, показанный ниже, введение jquery.js отметил, ссылки на успешное использование кода назначения jquery div, как показано ниже.
<!DOCTYPE html>
<!--解决th报错 -->
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>thymeleaf</title>
</head>
<script type="text/javascript" src="jquery.js"></script>
<body>
<h1>这是一个静态页面</h1>
<div id="test_div"></div>
</body>
<script type="text/javascript">
$('#test_div').html('引用jquery.js成功');
</script>
</html>
Структура проекта показана ниже, вы можете видеть, что jquery.js нет, все, что нам нужно сделать, это использовать Nginx для доступа к jquery.js.
4. Конфигурация Nginx
Измените конфигурацию nginx.conf, где первое расположение отвечает за обработку фоновых запросов, а второе — за обработку статических ресурсов, как показано ниже.
worker_processes 1;
events {
worker_connections 1024;
}
http {
server {
listen 10000;
server_name localhost;
#拦截后台请求
location / {
proxy_pass http://localhost:8888;
proxy_set_header X-Real-IP $remote_addr;
}
#拦截静态资源
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|js|css)$ {
root /Users/dalaoyang/Downloads/static;
}
}
}
5. Тест
Запустите приложение SpringBoot и запустите Nginx.
Доступ в браузереhttp://localhost:10000/, как показано на рисунке ниже.
Из содержимого красного прямоугольника на рисунке видно, что ссылка на статический ресурс выполнена успешно.
6. Резюме
Недавно я читал о nginx, и я буду продолжать обновлять статьи, связанные с nginx в последнее время.Если вам интересно, вы можете продолжать обращать внимание.