以前前后端没有分离的时候,项目启动前后端就一起启动了,现在前后端分离,服务端和页面分开部署。
有一段时间都以为因为是html页面,直接扔tomcat的webapp下就好,然后发现启动tomcat后,页面是找不到css和js的,不知道什么原因,后面有时间去研究一下,今天研究的是用nginx启动web页面项目。
1、前提:启动服务端,比如服务器端为127.0.0.1:8080,然后所有接口都是以/api开头的,比如登录接口,127.0.0.1:8080/api/login
2、将前端开发好的页面解压,放到一个指定目录下,我这边解压好的目录结构是这样的
3、配置nginx,在conf/nginx.conf目录里面配置
events { worker_connections 1024; } http { include mime.types; 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"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; tcp_nopush on; tcp_nodelay on; types_hash_max_size 2048; client_max_body_size 20M; #keepalive_timeout 0; keepalive_timeout 65; gzip on; upstream localserver { #这里配置服务器的地址,刚才我们启动的是8080端口 server 127.0.0.1:8080; } server { listen 9999;#这里是nginx监听的端口,就是一会儿浏览器打开的端口,访问的时候用http://testhosts.com:9999,如果这个地方改成80端口,那么就只需要用http://testhosts.com访问就行,多个server可以同时监听80端口,然后代理域名用不同的名字就行 server_name testhosts.com; #charset koi8-r; #access_log logs/host.access.log main; root D:\plugins\product_page\dist;#这里是前端页面的根路径 location / { index index.html index.htm; } location ^~/api/ {#这里表示浏览器所有以/localhost:9999/api开头的请求,经过nginx代理,到服务器都用localserver/api/请求,实际localserver就是上面我们配置服务器地址 proxy_pass http://localserver/api/; } location ^~/document/{ proxy_pass http://localserver/document/; } location ^~/file/zip/ { proxy_pass http://localserver/file/zip/; } location ^~/doc/bill/{ proxy_pass http://localserver/doc/bill/; } }
4、启动nginx.exe(我这里是在windows端,在linux端去网上查询相应启动、停止命令)
5、访问页面,在浏览器输入testhosts:9999,访问成功