(反向代理服务器)有以下三种功能:
下载:
http://nginx.org/en/download.html
例如解压到D:\nginx
打开目录:D:\nginx\nginx-1.20.2
,版本看你下载的版本,用cmd打开命令窗口
执行nginx.exe
命令
关闭nginx,关闭dos窗口,nginx不会退出,执行nginx.exe -s stop
docker pull nginx:1.10
docker run -p 80:80 --name nginx -d nginx:1.10
docker container cp nginx:/etc/nginx .
点不要忘记了
ls
一下,拷贝出来的是名字叫nginx文件,改成conf文件mv nginx conf
在 /mydata 下创建nginx文件夹,mkdir nginx
把这个 conf 移动到/mydata/nginx
下
docker stop nginx
docker rm $ContainerId
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
访问地址:
http://gulimall.com/
使用SwitchHosts
软件,配置一个域名
下载地址,按照教程配置好域名和本地虚拟机ip(ip和gulimall.com)的关系
https://swh.app/
@Controller
public class IndexController {
//首页
@GetMapping({"/","/index.html"})
public String indexPage(){
//1 业务
return "index";
}
}
新增上游服务器配置:
upstream gulimall{
#网关微服务地址和ip端口
server 192.168.0.118:88;
}
然后看到一段配置:include /etc/nginx/conf.d/*.conf;
意思是包含conf.d和/*.conf的配置,所以在挂载目录下找到
conf.d
文件目录,打开看到一个 default.conf
配置文件,复制一份名字叫 gulimall.conf
文件,修改 vim gulimall.conf
如下:
listen 80;
#监听80端口和域名
server_name gulimall.com;
location / {
#nginx代理给网关,丢失请求的host信息,不然访问gulimall.com 404报错
proxy_set_header Host $host;
#反向代理上游服务器
proxy_pass http://gulimall;
}
spring:
application:
name: gulimall-gateway
cloud:
nacos:
discovery:
server-addr: localhost:8848
gateway:
#==============================域名路由=================================
- id: gulimall_host_route
uri: lb://gulimall-product
predicates:
- Host=**.gulimall.com,gulimall.com
server:
port: 88
server{
#先配置好监听端口,然后访问http://192.168.182.130:80就会找静态资源
listen 80;
server_name localhost;
.....................
#配置静态资源
location /static/ {
root /usr/share/nginx/html;
}
................
}
然后在挂载的/mydata/nginx/html下导入静态资源
访问虚拟机地址和端口如http://192.168.182.130:80
,就会自动找/mydata/nginx/html下的静态资源
server {
listen 9001; #看你实际工程的需求要哪个端口做为入口
server_name localhost; #主机
#~是正则匹配,不加则是字母一个不差的匹配,
# 匹配规则,例如 /abc路径是 http://localhost:8001
# /ccc路径是 http://localhost:8002
location ~ /abc/ {
#转发的服务器地址
proxy_pass http://localhost:8001;
}
location ~ /ccc/ {
#转发的服务器地址
proxy_pass http://localhost:8002;
}
.........
.........
}
.例如浏览器报错:413 (Request Entity Too Large)
解决:client_max_body_size 1024m;
加入到nginx的配置中的
http{ include mime.types; default_type application/octet-stream; ............. client_max_body_size 1024m; ............ } ```里面
然后重启nginx