springboot-整合vue,nginx前后端分离部署
springboot-整合vue,nginx前后端分离部署
⽂章⽬录
完整代码下载链接:
环境
idea2018,jdk1.8,
springboot版本:springboot1.5.9.RELEASE
nginx version: nginx/1.6.2
chrome浏览器
1.1nginx的安装
nginx的详细配置见:
nginx的作⽤:
1)静态服务器
2)反向代理,转发请求
3)作为内容服务器的负载均衡器
1.2nginx的基本配置
Nginx配置⽂件主要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,主要为反向代理、负载均衡相关配置)和 location(URL匹配特定位置后的设置),每部分包含若⼲个指令。1)main部分设置的指令将影响其它所有部分的设置,还有⼀些其他的配置段,如 event等;
2)server部分的指令主要⽤于指定虚拟主机域名、IP和端⼝;
3)upstream的指令⽤于设置⼀系列的后端服务器,设置反向代理及后端服务器的负载均衡;
4)location部分⽤于匹配⽹页位置(⽐如,根⽬录"/","/images",等等)。
他们之间的关系式:server继承main,location继承server;upstream既不会继承指令也不会被继承。它有⾃⼰的特殊指令,不需要在其他地⽅的应⽤。
1.3nginx配置多个端⼝,不同端⼝⽤于转发到不同项⽬
1.4nginx配置1个端⼝,多个域名区分不同项⽬(1个后台多个前端)
1.5nginx做负载均衡
upstream配置项中:指定转发地址:
###upstream的负载均衡
upstream mysite
{
server 192.168.1.139:8090 weight=1;
server 192.168.1.139:8080 weight=1;
}
server配置项中设置转发:
###对项⽬名开头的url动态请求就去访问后台服务
location /springboot-html {
###设置转发地址
proxy_pass mysite;nginx 配置文件
proxy_redirect default;
###拦截错误如404
proxy_intercept_errors on;
root /usr/local/webserver/webapp;#站点⽬录,对应项⽬的地址
index index.html index.htm index.php;#⾸页
error_page 404 500 502 503 504 /50x.html;
}
1.6nginx访问静态资源
###配置Nginx动静分离,定义的静态资源页⾯直接从Nginx发布⽬录读取。
##有两种配置模式,⽬录匹配或后缀匹配,任选其⼀或搭配使⽤
# location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
location /webapp1/static/
{
root /usr/local/nginx/html;
#expires定义⽤户浏览器缓存的时间为7天,如果静态页⾯不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压⼒
expires 7d;
}
2.测试
nginx配置好后(f的配置见下⾯),建⽴3个web⽂件夹(以webapp1为例,将前端打包后的index.html和静态⽂件这⾥以/static 开始的⽂件夹都放在webapp1下,其他项⽬类似),如下所⽰:
3)测试nginx不同端⼝,⼀个端⼝不同上下⽂;测试nginx⼀个端⼝不同上下⽂,访问:
* 192.168.159.142:8070/webapp2/
* 192.168.159.142:8070/webapp2/test
* 192.168.159.142:8070/webapp3/
* 192.168.159.142:8070/webapp3/test
上述测试f的完整配置
user yhh yhh;#⽤户组,⽤户名
worker_processes 2; #设置值和CPU核⼼数⼀致
error_log /usr/local/nginx/logs/nginx_error.log crit; #⽇志位置和⽇志级别
pid /usr/local/nginx/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 65535;
events
{
use epoll;
worker_connections 65535;
}
http
{
pes;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
#charset gb2312;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;
#limit_zone crawler $binary_remote_addr 10m;
>>>server:8060>>>>###
###upstream负载均衡
upstream mysite
{
server 192.168.3.2:8090 weight=1;
server 192.168.3.2:8080 weight=1;
}
#server虚拟主机的配置
server
{
listen 8060;#监听端⼝
server_name localhost;#域名
###配置Nginx动静分离,定义的静态资源页⾯直接从Nginx发布⽬录读取。
##有两种配置模式,⽬录匹配或后缀匹配,任选其⼀或搭配使⽤
# location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
location /webapp1/static/
{
root /usr/local/nginx/html;
#expires定义⽤户浏览器缓存的时间为7天,如果静态页⾯不常更新,可以设置更长,这样可以节省带宽和缓解服务器的压⼒ expires 30d;
}
###对项⽬名开头的url动态请求就去访问后台服务
location /webapp1 {
###设置转发地址
proxy_pass mysite;
proxy_redirect default;
###拦截错误如404
proxy_intercept_errors on;
error_page 404 500 502 503 504 /50x.html;
}
>>>>>>>>###
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
f;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|ico)$
{
expires 30d;
# access_log off;
}
location ~ .*\.(js|css)?$
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
nginx转发国密请求
« 上一篇
nginx consul 原理
下一篇 »
发表评论