nginx前后端分离、多前端部署配置文件

本文涉及的产品
.cn 域名,1个 12个月
简介: nginx前后端分离、多前端部署配置文件
 
#user  nobody;
worker_processes 1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
events {
    worker_connections 1024;
}
 
 
http {
    include mime.types;
    default_type application/octet-stream;
    underscores_in_headers on; #nginx消除header 里-的问题
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
 
    #gzip_static开启 默认加载gzip结尾的文件
    gzip on;
    gzip_static on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_types text/plain application/javascript application/x-javascript
    text/javascript text/css application/xml;
    gzip_vary on;
    gzip_proxied expired no-cache no-store private auth;
    gzip_disable "MSIE [1-6]\.";
 
    #access_log  logs/access.log  main;
 
    sendfile on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout 65;
 
    #gzip  on;
 
    server {
        listen 80;
        server_name localhost;
        rewrite ^(.*)$ https://$host$1 permanent; #把http的域名请求转成https
    }
 
    # HTTPS server
 
    server {
        listen 443 ssl;
        server_name wwww.xxxxx.com;
 
        ssl_certificate /usr/local/nginxj/a.pem;
        ssl_certificate_key /usr/local/b.key;
 
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout 5m;
 
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
 
        location /api/ {
            if ($request_method = 'OPTIONS') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
                add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
                add_header 'Access-Control-Max-Age' 1728000;
                add_header 'Content-Type' 'text/plain; charset=utf-8';
                add_header 'Content-Length' 0;
                return 204;
            }
            if ($request_method = 'POST') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
                add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
                add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
            }
            if ($request_method = 'GET') {
                add_header 'Access-Control-Allow-Origin' '*';
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
                add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
                add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
            }
            rewrite "^/api/(.*)$" /$1 break;
            proxy_pass http://localhost:8080/;
        }
 
 
        location /admin {
            # alias结尾记得添加/
            alias /usr/local/xxx/admin/;
            index index.html index.htm;
            if (!-e $request_filename) {
                # 此处是重点,如果有配置根域名,且前端未做跳转配置,则下方rewrite也需要携带根域名 否则会出现刷新404
                rewrite ^/(.*) /admin/index.html last;
                break;
            }
        }
 
        location / {
            add_header Cache-Control no-store;
 
            alias /usr/local/xxx/front/;
 
            index index.html index.htm;
            if (!-e $request_filename) {
                # 此处是重点,如果有配置根域名,且前端未做跳转配置,则下方rewrite也需要携带根域名 否则会出现刷新404
                rewrite ^/(.*) /index.html last;
                break;
            }
        }
        location /wb_df9ff20ea541968f.txt {
            root /usr/local/xxx/;
        }
        location /MP_verify_u3ohQNDHVylfuKHB.txt {
            root /usr/local/xxx/;
        }
        location /apple-app-site-association {
            include mime.types;
            default_type application/json;
            root /usr/local/xxx/;
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
            root html;
        }
    }
}
相关文章
|
20天前
|
前端开发 应用服务中间件 nginx
前端服务器部署方式
【8月更文挑战第25天】前端服务器部署方式
24 1
|
30天前
|
负载均衡 前端开发 应用服务中间件
使用Nginx配置SSL以及部署前端项目
本文介绍了如何使用Nginx配置SSL证书以启用HTTPS,并展示了如何通过Nginx部署前端项目,包括配置SSL证书、设置代理和负载均衡的示例。
68 2
|
1月前
|
缓存 前端开发 应用服务中间件
看看高手是怎么部署前端代码的
【8月更文挑战第8天】从简单的前端项目部署开始,构建dist文件夹并通过Nginx代理接口请求,以解决跨域问题。为进一步优化大型系统的性能及稳定性,需采用高级部署策略。例如,利用CDN分发静态资源并采用缓存控制减少带宽消耗,通过文件哈希值更新URL确保资源按需刷新。面对大规模部署挑战,采用非覆盖式发布方法避免样式错乱风险,并通过灰度部署逐步验证新版功能,确保服务平稳过渡。借助Nginx实现流量切分,可灵活调整新旧版本流量比例,有效降低上线风险。
31 3
|
1月前
|
运维 应用服务中间件 网络安全
运维系列.Nginx配置文件结构功能总结
运维系列.Nginx配置文件结构功能总结
33 0
运维系列.Nginx配置文件结构功能总结
|
16天前
|
JSON 前端开发 应用服务中间件
韬光敛彩:用 nginx + express 无痛实现前端项目本地 mock
韬光敛彩:用 nginx + express 无痛实现前端项目本地 mock
|
23天前
|
缓存 负载均衡 前端开发
前端必会的nginx知识点
【8月更文挑战第22天】前端必会的nginx知识点
35 0
|
2月前
|
前端开发 应用服务中间件
前端项目部署问题总结
【7月更文挑战第13天】
32 1
|
2月前
|
开发框架 前端开发 应用服务中间件
部署基于.netcore5.0的ABP框架后台Api服务端,以及使用Nginx部署Vue+Element前端应用
部署基于.netcore5.0的ABP框架后台Api服务端,以及使用Nginx部署Vue+Element前端应用
|
1月前
|
存储 前端开发 JavaScript
前端语言串讲 | 青训营笔记
前端语言串讲 | 青训营笔记
21 0
|
3月前
|
JSON 前端开发 JavaScript
前端Ajax、Axios和Fetch的用法和区别笔记
前端Ajax、Axios和Fetch的用法和区别笔记
63 2