使用Nginx解决跨域问题

前言:

项目是公司的老项目,只有部署在服务器上的时候,项目才可以正常运行(接口是通的);现在需求:在现有的项目代码上进行修改,请求接口是第三方给的。接口是正常的,通过Ajax进项请求,存在跨域问题。然后就进行了Nginx反向代理的摸索操作,,,

原理:

Nginx是一个高性能的开源Web服务器和反向代理服务器。它的代理功能是通过反向代理实现的。

Nginx的代理原理是将客户端请求转发给后端服务器,并将后端服务器的响应返回给客户端。它作为中间层存在接收客户端的请求,并根据配置规则将请求转发给后端服务器

具体的代理过程如下:

  1. 客户端发送请求到Nginx服务器。
  2. Nginx根据配置规则,确定请求需要被代理到哪个后端服务器。
  3. Nginx将请求转发给后端服务器。
  4. 后端服务器处理请求,并生成响应。
  5. 后端服务器将响应返回给Nginx。
  6. Nginx将后端服务器的响应返回给客户端。

通过这种方式,Nginx实现了反向代理功能。它可以隐藏后端服务器的真实IP地址和其他信息,起到负载均衡、缓存加速、安全过滤等作用。同时,Nginx的高性能和高并发能力也使得它成为一个常用的代理服务器解决方案。

步骤:

一、配置环境

1、下载安装Nginx nginx: download

2、查看是否安装成功

  • 找到nginx的安装目录

二、修改配置文件

找到nginx.conf配置文件(路径:nginx-1.24.0 ==> conf ==>nginx.conf),进行文件修改

配置代码如下:

javascript 复制代码
server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.html index.htm;
	        proxy_pass http://192.168.1.149:8080/;
	        proxy_set_header Host $http_host;
        }
	    location  /apis {
	        proxy_pass http://14.18.99.55:8846/core/v3;
	    }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #

三、重启nginx

修改完配置文件需重启nginx

javascript 复制代码
nginx.exe -s reload

四、访问项目

没有配置Nginx之前,访问项目地址是http://192.168.1.149:8080/znwd/index.html

配置完Nginx后,访问项目地址变成 http://localhost/znwd/index.html

Ajax请求:

五、遇到问题

  1. 重启Nginx时报错 nginx: [error] CreateFile() "D:\nginx-1.24.0\nginx-1.24.0/logs/nginx.pid" failed 解决方式:执行nginx -c conf/nginx.conf命令创建logs/nginx.pid文件,然后关闭命令指向窗口,在nginx目录下重新cmd打开命令执行窗口,输入nginx.exe -s reload 命令,不再报错。
  2. 重启项目后,接口报404错误(百度结果是:查看80端口是否被占用,如果被占用,杀死占用80端口的进程);根据搜索结果进行操作,80端口没有被占用,报错原因是修改文件时,本地项目地址proxy_pass http://192.168.1.149:8080;忘记了在8080后添加'/'

六、补充

Nginx常用命令:

nginx -v : 查看版本号

nginx -t:验证配置是否正确

start -s stop:快速停止或关闭Nginx

nginx -s reload:配置文件修改后重装载命令

相关推荐
筑梦之路20 分钟前
深入linux的审计服务auditd —— 筑梦之路
linux·运维·服务器
陈说技术24 分钟前
服务器CPU达到100%解决思路
运维·服务器
hi_link29 分钟前
centos系统将/home分区的空间分配给/
linux·运维·centos
应用市场1 小时前
Linux驱动开发原理详解:从入门到实践
linux·运维·驱动开发
siriuuus1 小时前
Linux MySQL 多实例部署与配置实践
linux·运维·mysql
郝学胜-神的一滴2 小时前
深入解析Linux下的`lseek`函数:文件定位与操作的艺术
linux·运维·服务器·开发语言·c++·软件工程
Java水解2 小时前
Nginx平滑升级与location配置案例详解
后端·nginx
刘某的Cloud3 小时前
ceph设置标志位
linux·运维·ceph·openstack
monkeyhlj3 小时前
excel-mcp-server rocky linux简单部署
linux·运维·excel
liulilittle4 小时前
HI3798MV100 运营商机顶盒NAS LINUX OS - IP地址静态绑定指南
linux·运维·服务器·网络·tcp/ip·nas·机顶盒