nginx下一个域名配置接口兼容静态资源
问题背景
之前配置小程序上线的时候,需要https支持的域名,如果涉及到一些静态资源站的访问,还需要配置两个域名,整理两套ssl证书,这样太麻烦,有没有一种解决方案,可以实现一个域名即能访问接口,又能访问我们的静态资源站的数据呢?
nginx是什么
Nginx它本身也是一个静态资源服务器,当我们只有静态资源的时候,我们就可以使用Nginx来作为我们的服务器了。
目前动静分离是大的流行趋势,我们也可以是用Nginx来实现。
nginx的作用
- 作为静态资源服务器
- 作为服务端接口服务器(动静分离了)
- 负载均衡
- 反向代理
到这里,我们可能明白了nginx的作用了,它即可以做静态资源服务器,也可与做服务端接口映射,也可以做负载均衡,也可以做反向代理。这就是我们的nginx。
动静分离(nginx + tomcat实现动静分离)
静态资源:静态资源是不会改变的数据,请求的时候也不需要后台接口返回数据
动态资源:模板、jsp等,他们的数据是需要通过后台接口处理后返回的数据给前端页面展示效果
之前我们之配置过动态映射接口,今天我们看一下怎么将静态资源融合到nginx中,从而实现对静态资源的缓存,提高我们的资源响应速度(这就是我们所说的网站静态化的核心解决思路)。
好了直接上代码:
server {
listen 443 ssl;
server_name www.aaaa.cn;#填写绑定的证书域名
ssl_certificate 8659238_www.aaaa.cn.pem;
ssl_certificate_key 8659238_www.aaaa.cn.key;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#按照此协议配置了
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DH3;#按照这个配置配
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://localhost:8080;
}
location ~* \.(jpg|jpeg|gif|png|swf|rar|zip|css|js|map|svg|woff|ttf|txt)$ {
root /tools/huanrao/uploadfile;
index index.html;
add_header Access-Control-Allow-Origin *;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
从代码中我们可以看到,上面先配置了接口的映射、下面配置的所有的静态资源的存放地址!
好了,今天关于动静分离,一个域名兼容接口及静态资源服务的配置就到这里,欢迎大家留言交流!
也欢迎大家关注我的工种昊《coder练习生》