今天试着部署了一个gin-vue的项目,但是只有一个域名。前端项目直接放到dist目录里面的,然后后端项目也要用这个域名,方法就是前端项目请求接口的时候都/api,然后通过nginx的域名正则去过滤掉api.下面是我的配置。
upstream zp_server2{
#后端端口
server 127.0.0.1:8080;
}
server
{
listen 80;
server_name your.host;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/go/web/dist;#前端文件路径
proxy_connect_timeout 180;
proxy_send_timeout 180;
proxy_read_timeout 180;
proxy_set_header Host $host;
proxy_set_header X-Forwarder-For $remote_addr;
#如果你的后端接口不包含后缀 /api
location ^~/api/ {
proxy_pass http://zp_server2/;
}
#如果你的后端接口包含后缀 /api,两个之中根据你的情况选一个不能都写
location /api/ {
proxy_pass http://zp_server2/;
}
include enable-php-74.conf;
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
location ~ \.well-known{
allow all;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log off;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log off;
access_log /dev/null;
}
access_log /www/wwwlogs/yourdir.log;
error_log /www/wwwlogs/yourdir.error.log;
}