如何用nginx解决前端部署跨域问题

 更新时间:2024年07月02日 10:17:52   作者:biaobiaogege  
这篇文章主要介绍了如何用nginx解决前端部署跨域问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

该方法是在云服务器上【ubuntu18.04】源码编译nginx,【另外一种直接用apt下载】

源码编译安装

  • 下载
 wget http://nginx.org/download/nginx-1.19.0.tar.gz
 sudo tar zxf nginx-1.19.0.tar.gz
  • 安装依赖软件
 sudo apt install -y gcc make libpcre3 libpcre3-dev zlib1g zlib1g-dev openss
  • 编译
 cd nginx-1.19.0/
 sudo ./configure
 sudo make
 sudo make install

得到以下结果,编译安装成功

命令

/usr/local/nginx/sbin/nginx是个可执行文件,是nginx的main process

cd /usr/local/nginx/sbin
./nginx -v //查看版本号
./nginx //启动nginx
./nginx -s stop //停止nginx
./nginx -s quit //安全退出
./nginx -s reload //重新加载配置文件【常用】
ps aux|grep nginx 查看nginx进程

前端部署反向代理配置

/usr/local/nginx/conf 文件下的nginx.config是配置文件

nginx.config文件主要有全局块,events块,http块。主要在http块配置

sudo vim /usr/local/nginx/conf/nginx.config

找到http块下的server块,修改类似于如下代码块,即能完成反向代理配置。

server {
        listen       80; #监听端口
        server_name  localhost; #可以改成自己的域名或者ip
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 
        location / {
            root   dist; # 前端build文件所在位置与/usr/local/nginx/conf平级
            index  index.html index.htm; #入口文件
            try_files $uri $uri/ /index.html; #好像可以解决history路由,不过我用的hash
        }
 
        location /shadow/api {     # 这个就是代码中的想要访问的baseurl
            proxy_pass http://1.13.xxx.xxx:80; # [例如]反向代理的服务器真正的ip
            add_header 'Access-Control-Allow-Origin' '*'; #允许来自所有的访问地址
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' 'GET, PUT, POST, DELETE, OPTIONS'; #支持请求方式
            add_header 'Access-Control-Allow-Headers' 'Content-Type,*';
        }
}

保存只会用命令进行配置重新加载

sudo /usr/local/nginx/sbin/nginx -s reload

效果

如果build正确,并且配置生效,直接在浏览器访问【xxx.xxx.xxx.xxx:80】能够看到前端页面,括号里面是云服务器的ip,进入自己租的云服务器界面复制,比如腾讯云在下图这里复制。

不是配置的反向代理的ip

以上例子的反向代理ip是http://1.13.xxx.xxx:80

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解析Nginx中的日志模块及日志基本的初始化和过滤配置

    解析Nginx中的日志模块及日志基本的初始化和过滤配置

    ngx_errlog_module是Nginx中用来管理日志的模块,解析Nginx中的日志模块及日志基本的初始化和过滤配置,需要的朋友可以参考下
    2016-07-07
  • nginx status状态页配置方法和中文说明

    nginx status状态页配置方法和中文说明

    这篇文章主要介绍了nginx status状态页配置方法和中文说明,重点在配置例子和status的中文说明,需要的朋友可以参考下
    2014-06-06
  • 利用nginx搭建静态资源服务器的方法步骤

    利用nginx搭建静态资源服务器的方法步骤

    这篇文章主要介绍了利用nginx搭建静态资源服务器的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Nginx实现正向代理实例

    Nginx实现正向代理实例

    这篇文章主要介绍了Nginx实现正向代理实例,正向代理的作用在于正向代理隐藏了用户,用户的请求被代理服务器接收代替,到了服务器,服务器并不知道用户是谁,需要的朋友可以参考下
    2023-08-08
  • nginx 多个location转发任意请求或访问静态资源文件的实现

    nginx 多个location转发任意请求或访问静态资源文件的实现

    这篇文章主要介绍了nginx 多个location转发任意请求或访问静态资源文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 服务器nginx配置ssl并http重定向到https方式

    服务器nginx配置ssl并http重定向到https方式

    这篇文章主要介绍了服务器nginx配置ssl并http重定向到https方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • SpringBoot项目整合FastDFS+Nginx实现图片上传功能

    SpringBoot项目整合FastDFS+Nginx实现图片上传功能

    FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题,对SpringBoot整合FastDFS实现图片上传功能,感兴趣的朋友一起看看吧
    2022-05-05
  • 如何修改Nginx版本名称伪装任意web server

    如何修改Nginx版本名称伪装任意web server

    这篇文章主要介绍了修改Nginx版本名称伪装任意web server的方法,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-08-08
  • 利用nginx如何匹配多个条件

    利用nginx如何匹配多个条件

    这篇文章主要给大家介绍了利用nginx如何匹配多个条件的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • 在Nginx用htpasswd对网站进行密码保护的设置方法

    在Nginx用htpasswd对网站进行密码保护的设置方法

    很多时候我们需要对一些网站进行密码保护,比如团队内部的站点、demo站点等等。这里所说的密码保护是服务器级的,并非网站应用层的注册登录那一套,而是利用服务器配置和htpasswd文件来实现访问的密码验证
    2013-06-06

最新评论