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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 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;
    ......
    }

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

目录
相关文章
|
5天前
|
Kubernetes 应用服务中间件 nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
k8s学习--YAML资源清单文件托管服务nginx
|
1天前
|
安全 应用服务中间件 Shell
nginx配置https的ssl证书和域名
nginx配置https的ssl证书和域名
|
2月前
|
应用服务中间件 nginx Docker
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
这篇文章介绍了如何通过域名在本地访问虚拟机上的nginx服务,包括创建nginx容器、修改配置文件、修改本地host文件以及进行访问测试的详细步骤。文章提供了具体的Docker命令来创建并配置nginx容器,展示了配置文件的修改示例,说明了如何在本地系统的hosts文件中添加虚拟机IP和自定义域名,以及如何通过浏览器进行测试访问。
本地通过域名访问虚拟机上nginx的服务、搭建域名访问环境一(反向代理配置)
|
2月前
|
JavaScript 应用服务中间件 PHP
nginx server 禁止特定目录下的某类文件访问
【8月更文挑战第26天】这段Nginx配置代码旨在保护`/uploads/`目录下的文件,禁止执行任何`.php`, `.html`, `.htm`, 或 `.js`等潜在有害文件,即便被访问也无法运行。取而代之的是重定向到首页。为了实现这一设置,用户需要定位到对应子域名的`.conf`配置文件中进行相应修改。若网站支持多个访问域名,则需确保在正确的`.conf`文件中实施此配置。
37 1
|
2月前
|
存储 监控 应用服务中间件
查看nginx日志文件
器性能和提高网站可用性。掌握日志文件的路径、查看方法和基本分析技能对于任何服务器管理员来说都是必备技能。
81 1
|
2月前
|
缓存 安全 应用服务中间件
Nginx:关于实现跨域代理
Nginx:关于实现跨域代理
239 1
|
3月前
|
存储 缓存 前端开发
(三)Nginx一网打尽:动静分离、压缩、缓存、黑白名单、跨域、高可用、性能优化...想要的这都有!
早期的业务都是基于单体节点部署,由于前期访问流量不大,因此单体结构也可满足需求,但随着业务增长,流量也越来越大,那么最终单台服务器受到的访问压力也会逐步增高。时间一长,单台服务器性能无法跟上业务增长,就会造成线上频繁宕机的现象发生,最终导致系统瘫痪无法继续处理用户的请求。
|
3月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
42 1
|
3月前
|
运维 负载均衡 算法
SLB与NGINX的异同是什么
SLB与NGINX的异同是什么
206 2
|
2月前
|
应用服务中间件 Linux nginx
Nginx log 日志文件较大,按日期生成 实现日志的切割
Nginx log 日志文件较大,按日期生成 实现日志的切割
344 0

热门文章

最新文章