以前前后端没有分离的时候,项目启动前后端就一起启动了,现在前后端分离,服务端和页面分开部署。用nginx启动web页面项目。

1、前提:启动服务端,比如服务器端为127.0.0.1:8080,然后所有接口都是以/api开头的,比如登录接口,127.0.0.1:8080/api/login

2、将前端开发好的页面解压,放到一个指定目录下,我这边解压好的目录结构是这样的,index.html是首页

 3、下载nginx,地址:http://nginx.org/en/download.html,我用的是1.16.1,解压后放到你合适的电脑位置

 

 4、在C:\Windows\System32\drivers\etc目录下的hosts文件,以管理员权限打开,在下面添加127.0.0.1 testhosts.com

4.1、配置nginx,在conf/nginx.conf目录里面配置。主要就是配置upstream,server里面的listen、server_name、root、location

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端口,localserver是我们自定义取的名称,可以更换成其它的名称,注意不要和nginx本身的一些名词冲突就行
	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/ {#这里表示浏览器所有以/testhosts.com:9999/api开头的请求,经过nginx代理,到服务器都用localserver/api/请求,实际localserver就是上面我们配置服务器地址
	  proxy_pass  http://localserver/api/;
        }
		
}
        

5、启动nginx.exe

6、访问页面,在浏览器输入testhosts:9999,访问成功。停止nginx的时候,需要启动任务管理器结束进程