nginx回顾和安装,配置

nginx简介

反向代理服务器)有以下三种功能:

  1. 动静分离:访问java代码请求tomcat服务器,访问静态资源请求静态服务器
  2. 请求转发 :根据路径匹配到具体服务器 例如地址包含 'aaa’转发到’aaa’服务器,'bbb’转发到’bbb’的服务器
  3. 负载均衡:在集群的基础上
  4. 安装

安装

windows版本

下载: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版本

安装

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

执行命令删除原容器(ContainerId为nginx的容器id)

docker rm $ContainerId

创建新的 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

完成

功能

反向代理

理解反向代理以及如何引用,引入以下例子

访问地址:

http://gulimall.com/

创建域名

使用SwitchHosts软件,配置一个域名
下载地址,按照教程配置好域名和本地虚拟机ip(ip和gulimall.com)的关系

https://swh.app/

在java代码中写个mvc映射
@Controller
public class IndexController {
    //首页
    @GetMapping({"/","/index.html"})
    public String indexPage(){
        //1 业务
        return "index";
    }
}
找到nginx挂载目录下的nginx.conf

新增上游服务器配置:

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;
 }

java配置网关yml
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
完成,主启动不要忘记了

动静分离

配置nginx

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;
        }
        .........
        .........
}

nginx支持上传大小有限制**

.例如浏览器报错: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

你可能感兴趣的:(nginx,nginx,服务器,tomcat)