【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【12】nginx_thymeleaf
持续学习&持续更新中…
守破离
【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【12】nginx
Thymeleaf
* 模板引擎
* 1)、thymeleaf-starter:关闭缓存
* 2)、静态资源都放在static文件夹下就可以按照路径直接访问
* 3)、页面放在templates下,直接访问
* SpringBoot,访问项目的时候,默认会找index
* 4)、页面修改不重启服务器实时更新
* 1)、引入dev-tools
* 2)、修改完页面 ctrl+f9(Build Project) 重新自动编译下页面;如果是代码配置,推荐重启
<!-- 模板引擎: thymeleaf -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>


默认配置,如果不想修改的话,不用配

spring:
thymeleaf:
encoding: utf-8
prefix: classpath:/templates/
suffix: .html
enabled: true
servlet:
content-type: text/html
开发期间配置这个就好(配合devtools使用):
spring:
thymeleaf:
cache: false
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

@Controller
public class IndexController {
@Autowired
private CategoryService categoryService;
@GetMapping({"/", "/index.html"})
public String indexPage(Model model) {
List<CategoryEntity> categorys = categoryService.listLevel1Categorys();
model.addAttribute("categorys",categorys);
return "index";
}
}
<li th:each="category : ${categorys}">
<a href="/static/#" class="header_main_left_a" th:attr="ctg-data=${category.catId}"><b
th:text="${category.name}">家用电器</b></a>
</li>
安装 nginx (Linux)

docker run -p 80:80 --name nginx -d nginx:1.10
docker container cp nginx:/etc/nginx .
mv nginx conf
mkdir nginx
mv conf nginx/
docker stop nginx
docker rm nginx
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
docker update nginx --restart=always







成功:

nginx配置文件

正向代理与反向代理

正向代理,其实是"代理服务器"代理了"客户端"
反向代理,其实是"代理服务器"代理了"目标服务器"
正向代理和反向代理的区别:(https://cloud.tencent.com/developer/article/1418457)
-
虽然正向代理服务器和反向代理服务器所处的位置都是客户端和真实服务器之间,所做的事情也都是把客户端的请求转发给服务器,再把服务器的响应转发给客户端,但是二者之间还是有一定的差异的。
-
1、正向代理其实是客户端的代理,帮助客户端访问其无法访问的服务器资源。反向代理则是服务器的代理,帮助服务器做负载均衡,安全防护等。
-
2、正向代理一般是客户端架设的,比如在自己的机器上安装一个代理软件。而反向代理一般是服务器架设的,比如在自己的机器集群中部署一个反向代理服务器。
-
3、正向代理中,服务器不知道真正的客户端到底是谁,以为访问自己的就是真实的客户端。而在反向代理中,客户端不知道真正的服务器是谁,以为自己访问的就是真实的服务器。
-
4、正向代理和反向代理的作用和目的不同。正向代理主要是用来解决访问限制问题。而反向代理则是提供负载均衡、安全防护等作用。二者均能提高访问速度。
Nginx+Windows搭建域名访问环境

hosts文件配置
C:\Windows\System32\drivers\etc\hosts
# nginx所在服务器地址
192.168.56.10 gulimall.com
转到商品服务
让nginx帮我们进行反向代理,所有来自原gulimall.com的请求,都转到商品服务:

统一转给网关服务
https://nginx.org/en/docs/http/load_balancing.html
/mydata/nginx/conf/nginx.conf:
http {
upstream gulimall {
# 网关地址
server 192.168.43.245:88;
}
# 默认就有的配置
include /etc/nginx/conf.d/*.conf;
}
/mydata/nginx/conf/conf.d/default.conf
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
/mydata/nginx/conf/conf.d/gulimall.conf
server {
# 这里的gulimall.com:80,是监听浏览器发过来的请求
listen 80;
server_name gulimall.com;
location /static/ {
root /usr/share/nginx/html;
}
location / {
# 交给nginx.conf中的upstream gulimall
proxy_pass http://gulimall;
# nginx代理给网关的时候,会丢失请求的host信息
proxy_set_header Host $host;
}
}
配置网关:(配置网关的route一定要放在最下面)
server:
port: 88
spring:
cloud:
gateway:
routes:
- id: gulimall_host_route
uri: lb://gulimall-product
predicates:
- Host=gulimall.com,**.gulimall.com
# - Host=gulimall.com,item.gulimall.com
动静分离


将静态资源放在虚拟机:/mydata/nginx/html/static/ 这个目录下。

修改:/mydata/nginx/conf/conf.d/default.conf
server {
listen 80;
server_name gulimall.com;
location /static/ {
root /usr/share/nginx/html;
}
location / {
proxy_pass http://gulimall;
proxy_set_header Host $host;
}
}
然后修改静态资源路径:



参考
雷丰阳: Java项目《谷粒商城》Java架构师 | 微服务 | 大型电商项目.
本文完,感谢您的关注支持!
更多推荐
所有评论(0)