Nginx解决跨域、大文件、负载均衡和域名管理的问题(亲测真实有效)

简介: NginxNginx在解决跨域、负载均衡和域名管理的问题上,有非常好的作用!值得应用。 在工作和学习中,前后端交互的时候,时常会需要做跨域的事情,这个时候,有两种方式,一种是服务端代码程序中去解决跨域,这是一种比较愚蠢的方式,推荐使用Nginx进行跨域的操作。

Nginx

Nginx在解决跨域、负载均衡和域名管理的问题上,有非常好的作用!值得应用。
在工作和学习中,前后端交互的时候,时常会需要做跨域的事情,这个时候,有两种方式,一种是服务端代码程序中去解决跨域,这是一种比较愚蠢的方式,推荐使用Nginx进行跨域的操作。


一、安装Nginx

这边安装Nginx有一个写的比较好的,我也是采用这个方式!
安装Nginx

二、重要的目录

root@ubuntu:/etc/nginx# ls
conf.d          koi-utf     nginx.conf    sites-available  uwsgi_params
fastcgi.conf    koi-win     proxy_params  sites-enabled    win-utf
fastcgi_params  mime.types  scgi_params   snippets
root@ubuntu:/etc/nginx# 

这边的nginx.conf 这个是配置文件,在每次修改后,需要重启才会生效。

三、nginx里面的sites-available和sites-enabled有什么区别

If you are coming from Apache, the "sites-available" and "sites-enabled" 
directories will be familiar.

  These directories are used to define configurations for your websites. 
Files are generally created in the "sites-available" directory, and then
symbolically linked to the "sites-enabled" directory when they are ready 
to go live.

...

In the "nginx.conf" file, we can see that the end of the "http" block has:

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;

sites-available是存放当前的server配置, 在这里修改
sites-enabled是激活并使用的server配置(从sites_available的文件创建快捷方式到sites-enabled)

四、解决监听域名冲突(不生效)的问题。

默认情况下,对serve_name的配置应该实在sites-available目录下,Nginx默认加载的serve_name就是这里面的值。如果你不想要sites-available目录下的 defeat文件生效。那么直接将此文件改个名字,保持这边没有文件。那么这个时候,Nginx就会去加载nginx.conf文件了。
这里写图片描述

上面的 _ 符号表示默认的监听本机器的IP。

五、那么在nginx.conf中怎么配置合适呢?

只需要在Http{}中,按照如下配置即可

server

   {
    listen 80;
    server_name _;

    location ~ ^/front/ {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,cookietoken,cookieuid';

        if ($request_method = 'OPTIONS') {
          return 200;
        }

        proxy_pass http://47.98.233.15:8099;
        proxy_redirect          off;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location ~ ^/back/ {
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
        add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization,cookietoken,cookieuid,lang';

        if ($request_method = 'OPTIONS') {
          return 200;
        }

        proxy_pass http://47.98.233.15:8087;
        proxy_redirect          off;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

六、然后按照如下的访问即可

这里写图片描述

七、如果你上传的文件比较大

需要增加以下配置,30m根据你的需要写,100m等都可以。

server

   {
    listen 80;
    server_name _;
    client_max_body_size 20m;
    ......
    }

好啦,祝你学习和工作顺利!

相关实践学习
基于函数计算快速搭建Hexo博客系统
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
28天前
|
应用服务中间件 nginx
Nginx中如何配置中文域名?
Nginx中如何配置中文域名?
38 0
|
9天前
|
负载均衡 算法 应用服务中间件
面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
字节跳动面试题:Nginx有哪些负载均衡算法?Nginx位于七层网络结构中的哪一层?
26 0
|
2月前
|
前端开发 应用服务中间件 Linux
nginx解决springcloud前后端跨域问题,同时配置ssl
nginx解决springcloud前后端跨域问题,同时配置ssl
|
25天前
|
数据可视化 应用服务中间件 网络安全
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
Nginx Proxy Manager是一款强大的代理服务器管理工具,提供简单直观的界面来配置和管理Nginx代理服务器,帮助用户轻松提升配置的简洁性和便捷性。
44 0
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
|
1月前
|
容器
在容器服务ACK中,如果你想更改ALB Ingress的域名和端口
【2月更文挑战第15天】在容器服务ACK中,如果你想更改ALB Ingress的域名和端口
13 3
|
1月前
|
Kubernetes 负载均衡 应用服务中间件
Ingress Nginx 安装【亲测可用】
Ingress Nginx 安装【亲测可用】
103 2
|
2月前
|
负载均衡 Java 应用服务中间件
|
2月前
|
应用服务中间件 nginx
nginx 根据域名转发
nginx 根据域名转发
42 0
|
2月前
|
负载均衡 监控 应用服务中间件
Nginx负载均衡:你的网站流量翻倍利器
Nginx负载均衡:你的网站流量翻倍利器
42 0
|
2月前
|
消息中间件 关系型数据库 MySQL
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
使用Nginx的stream模块实现MySQL反向代理与RabbitMQ负载均衡
59 0