以前前后端沒有分離的時候,項目啟動前后端就一起啟動了,現在前后端分離,服務端和頁面分開部署。
有一段時間都以為因為是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,訪問成功