nginx配置springboot、springcloud项目进行文件上传以及预览

配置springboot项目

#pid        logs/nginx.pid;
events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    client_max_body_size 2048m;

    #gzip  on;

	upstream proxy_store {
       ip_hash;
       server 127.0.0.1:6789;     #业务逻辑后台系统地址
    }

    server {
        listen       84;
        server_name  127.0.0.1;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
		
        location / {
            root   html;
            index  index.html index.htm;
        }

        #文件预览下载
		location ^~ /download/ {
			alias /home/test/file/uploads/;
		}
		
        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }
	

}

#文件预览下载
location ^~ /download/ {
     alias /home/test/file/uploads/;
}

比如说数据库中存储的文件是/download/aaa.png, alias 表示别名,此配置则表示将/download/替换为/home/test/file/uploads/,然后通过文件名称找到相应的文件,进行预览。

配置springcloud项目 ,同时配置PC端和h5端的页面访问

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
    underscores_in_headers on;
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
	# 配置nginx上传文件最大限制
    client_max_body_size 100m;

    #gzip  on;
    gzip on;
    gzip_buffers 32 4K;
    gzip_comp_level 6;
    gzip_min_length 100;
    gzip_types application/javascript text/css text/xml;
    gzip_disable "MSIE [1-6]\."; #配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)
    gzip_vary on;

    upstream proxy_store {
       #ip_hash;
       hash $remote_addr consistent;
       server 127.0.0.1:48081;     #业务逻辑,网关地址
    }

    upstream proxy_store_upload {
       #ip_hash;
       hash $remote_addr consistent;
       server 127.0.0.1:48080;     #业务逻辑,后台服务地址
    }

    map $http_upgrade $connection_upgrade {
        default upgrade;
        '' close;
    }
	
	#pc端
    server {
        listen       8180;
        server_name  test.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;


        location / {
            #add_header 'Access-Control-Allow-Origin' *;
            #add_header 'Access-Control-Allow-Credentials' 'true';
            #add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            #add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
            #add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
            #if ($request_method = 'OPTIONS') {
            #    add_header 'Access-Control-Max-Age' 1728000;
            #    add_header 'Content-Type' 'text/plain; charset=utf-8';
            #    add_header 'Content-Length' 0;
            #    return 204;
            #}
            
            root   html;   #前端文件地址
            index  index.html;
        }
        
        #后台服务访问前缀
        location ^~/basic-api/ {
            proxy_pass http://proxy_store/;
            proxy_set_header Host    $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
		
		location ^~/basic-file/ {
            proxy_pass http://proxy_store_upload/;
            proxy_set_header Host    $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

        #文件上传路径
        location /upload {
            proxy_pass http://proxy_store_upload/admin-api/infra/file/upload;
            proxy_set_header Host    $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }

    }
	
	server {
        listen       8181;
        server_name  test.com;
		#rewrite ^(.*)$  https://${server_name}$1 permanent;  # http转https
	
        #charset koi8-r;
	
        #access_log  logs/host.access.log  main;
	
        location / {
           
            root   htmlApp;   #h5前端文件地址
            index  index.html;
        }
        
        location ^~/api/ {
            proxy_pass http://proxy_store/;
            proxy_set_header Host    $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
	
        location /upload {
            proxy_pass http://proxy_store_upload/admin-api/infra/file/upload;
            proxy_set_header Host    $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
	
    }
	

}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. 首先安装nginx,可以使用apt-get或yum等包管理器进行安装。 2. 在nginx配置文件中添加以下内容: ``` server { listen 80; server_name yourdomain.com; location / { proxy_pass http://localhost:808; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 其中,yourdomain.com为你的域名,proxy_pass为你的Spring Boot应用程序的端口号。 3. 保存并退出配置文件,然后重新启动nginx服务。 4. 启动Spring Boot应用程序,确保它正在监听与proxy_pass相同的端口。 5. 现在你可以通过访问yourdomain.com来访问你的Spring Boot应用程序了。nginx将充当反向代理服务器,将所有请求转发到Spring Boot应用程序。 ### 回答2: Nginx 是目前最流行的开源 Web 服务器之一,它可以作为反向代理服务器来加速 Web 应用程序,并支持负载均衡、HTTP 缓存、SSL/TLS 加密等功能。在将 Spring Boot 项目部署到生产环境时,将其与 Nginx 配合使用,可以有效提高应用程序的性能和可靠性。 配置 Spring Boot 项目Nginx 中非常简单,只需按照以下步骤操作即可: 1. 安装 Nginx 并启动。具体安装方法可以参考官网文档或 Linux 发行版的包管理器。启动命令如下: ``` sudo systemctl start nginx ``` 2. 编辑 Nginx配置文件Nginx配置文件通常位于 /etc/nginx/nginx.conf,我们需要修改该文件,以使其转发请求到 Spring Boot 应用程序。具体配置如下: ``` server { listen 80; server_name example.com; location / { proxy_pass http://localhost:8080; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 上面的配置文件中,我们使用了反向代理服务器的模式,并将请求转发到 Spring Boot 应用程序的默认端口 8080。同时,我们还配置了一些 Nginx 的头部信息,以方便 Spring Boot 应用程序获取客户端的 IP 地址和其他相关信息。 3. 重新加载 Nginx 配置文件。执行以下命令: ``` sudo nginx -t # 测试配置文件 sudo nginx -s reload # 重新加载配置文件 ``` 4. 启动 Spring Boot 应用程序。Spring Boot 应用程序可以以内置的方式启动,也可以作为系统服务运行。在此不再赘述。 通过上述步骤,我们就可以在 Nginx配置 Spring Boot 项目。当用户发起请求时,Nginx 将会代理该请求,并将其转发到 Spring Boot 应用程序中进行处理。这样可以大大提高 Web 应用程序的响应速度和并发能力,为公司的业务发展提供保障。 ### 回答3: Nginx是一款高性能的Web服务器和反向代理服务器,可以通过一些简单的配置,将多个Spring Boot项目集成在一起,优化网络传输和资源占用,提高系统效率和用户体验。 以下是配置步骤: 1. 安装Nginx 先确保服务器上已经安装了Nginx。如果没有安装,可以通过以下命令进行安装: sudo apt-get install nginx 2. 配置Nginx反向代理 在Nginx配置文件中添加反向代理规则,将请求代理到Spring Boot应用程序。例如,如果Spring Boot应用程序运行在localhost:8080,则可以通过以下配置将请求代理到该应用程序: server { listen 80; server_name localhost; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host:$server_port; } } 3. 配置SSL/TLS 为了提高网站的安全性,可以为Nginx配置SSL/TLS证书。可以通过以下命令生成证书: sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt 然后,在Nginx配置文件中添加以下配置,使其支持HTTPS: server { listen 443 ssl; server_name localhost; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host:$server_port; } } 4. 配置负载均衡 如果存在多个Spring Boot应用程序,可以使用Nginx的负载均衡功能将请求分配给这些应用程序。以下是一个示例配置: upstream backend { server localhost:8080; server localhost:8081; server localhost:8082; } server { listen 80; server_name localhost; location / { proxy_pass http://backend; proxy_set_header Host $host:$server_port; } } 通过以上的配置,可以经过Nginx代理将请求分配给多个Spring Boot应用程序,提高系统的可用性和健壮性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值