超实用的Nginx常见配置合集分享

目录
  • 封禁 IP
  • 仅开放内网
  • 负载均衡
  • 列出文件列表
  • 路由转发
  • 开启 gzip 压缩
  • 解决跨域
  • 资源防盗链
  • Keepalived 提高吞吐量
  • HTTP 强制跳转 HTTPS

封禁 IP

通过 deny 可以封禁指定 IP

http {
    # ....
    # 封禁IP
    deny 192.168.4.3;
    deny 31.42.145.0/24;
    deny 51.12.35.0/24;
}

仅开放内网

需要先禁止 192.168.1.1

开放其他内网网段,然后禁止其他所有 IP

location / {
  # block one workstation
  deny    192.168.1.1;
  # allow anyone in 192.168.1.0/24
  allow   192.168.1.0/24;
  # drop rest of the world
  deny    all;
}

负载均衡

需要在 nginx.conf 中配置转发服务器信息

权重: weight=1,权重如果分配的值越大,权重越高

最大连接数: max_fails=3,最多连接失败次数为3次

连接失败时间: fail_timeout=20s,每次连接失败的时间

在站点配置 default.conf 中开启负载均衡

# nginx.conf中配置转发服务器信息
upstream web {
    server 192.168.37.2 weight=1 max_fails=3 fail_timeout=20s;
    server 192.168.37.3 weight=1 max_fails=3 fail_timeout=20s;
}

# default.conf中开启负载均衡
location / {
    proxy_pass http://web/;
}

列出文件列表

有时候服务器作为资源服务器,给用户提供下载资源使用

需要将服务上的文件以目录形式列出来

可以通过配置 autoindex on 允许列出目录,启用目录流量

可以通过 autoindex_exact_size off 显示出文件的确切大小,单位是 bytes

可以通过 autoindex_localtime on 显示的文件时间为文件的服务器时间

location / {
    autoindex on;
    autoindex_exact_size on;
    autoindex_localtime on;
}

路由转发

有时候用户通过路由访问服务器的资源,其实你的资源在另一个文件夹下面

可以使用 alias 命令,将用户请求进行转发

# nginx服务器
location /static {
    alias /public;
}

# window服务器
location ^~ /static {
    alias "D:\\public\\静态资源";
}

开启 gzip 压缩

gzip 压缩是一种提升访问速度的优化方向,可以大大提高

http {
    # 开启gzip
    gzip on;

    # 是否在http header中添加Vary: Accept-Encoding,建议开启
    gzip_vary on;

    # 启用gzip压缩的最小文件,小于设置值的文件将不会压缩
    gzip_min_length 1k;

    gzip_proxied any;

    # gzip 压缩级别,1-9,数字越大压缩的越好,也越占用CPU时间
    gzip_comp_level 6;

    # 设置压缩所需要的缓冲区大小
    gzip_buffers 16 8k;

    # 设置gzip的版本
    gzip_http_version 1.1;

    # 进行压缩的文件类型。javascript有多种形式,后面的图片压缩不需要的可以自行删除
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
}

解决跨域

server {
    location / {
        #允许跨域请求的域,*代表所有
        add_header 'Access-Control-Allow-Origin' *;
        #允许带上cookie请求
        add_header 'Access-Control-Allow-Credentials' 'true';
        #允许请求的方法,比如 GET / POST / PUT / DELETE
        add_header 'Access-Control-Allow-Methods' *;
        #允许请求的header
        add_header 'Access-Control-Allow-Headers' *;
    }
}

资源防盗链

为了防止其他网站直接实用我方的静态资源,可以增加防盗链配置

server {
    location ~*/(js|image|css) {
        # 检测*.autofelix.cn的请求,如果检测是无效的,直接返回403
        valid_referers *.autofelix.cn;
        if ($invalid_referer) {
            return 403;
        }
     }
}

Keepalived 提高吞吐量

通过 keepalived 可以设置长连接处理的数量

通过 proxy_http_version 可以设置长连接 http 版本

通过 proxy_set_header 可以清除 connection header 信息

# nginx.conf中配置吞吐量
upstream web {
    server 192.168.37.3 weight=1;keepalive 32;
}

# default.conf中配置
location / {
     proxy_pass http://tomcats;
     proxy_http_version 1.1;
     proxy_set_header Connection "";
}

HTTP 强制跳转 HTTPS

很多网站中,都强制实用 https 协议

这样我们就需要将 http 强制跳转到 https

server {
    # 监听的端口号
    listen 80;

    # 强制跳转
    rewrite ^(.*)$ https://$host$1 permanent;
}

server {
    # 监听的端口号
    listen       443;
    # 主机名
    server_name www.520web.cn;
    # 开启ssl验证
    ssl on;
    # 字符集
    charset utf-8;
    # 访问的根目录
    root   /var/www/html;
    # 错误页面
    error_page  404    ...404文件路径;

    # 图片视频静态资源缓存到客户端时间
    location ~ .*\.(jpg|jpeg|gif|png|ico|mp3|mp4|swf|flv){
      expires 10d;
    }

    # js/css静态资源缓存到客户端时间
    location ~ .*\.(js|css){
      expires 5d;
    }

    # ssl的相关配置,pem文件的地址
    ssl_certificate  ...pem文件的绝对路径;
    # key文件的绝对路径
    ssl_certificate_key  ...key文件的绝对路径;
    # 断开重连时间
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    # ssl协议
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    # 首页访问的文件
    location / {
        index  index.php index.html index.htm;
    }

    # php-ftm配置
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

到此这篇关于超实用的Nginx常见配置合集分享的文章就介绍到这了,更多相关Nginx常见配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 详解Nginx反向代理跨域基本配置与常见误区

    跨域是指a页面想获取b页面资源,如果a.b页面的协议.域名.端口.子域名不同,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源.注意:跨域限制访问,其实是浏览器的限制.理解这一点很重要!!! 最近公司前后端分离,前端独立提供页面和静态服务很自然的就想到了用nginx去做静态服务器.同时由于跨域了,就想利用nginx的反向代理去处理一下跨域,但是在解决问题的同时,发现网上有些方案的确是存在一些问题,在这里总结一下基本配置,也聊一下常见的配置问题. Ng

  • Nginx安装配置详解

    不论是本地开发,还是远程到 Server 开发,还是给提供 demo 给人看效果,我们时常需要对 Nginx 做配置,Nginx 的配置项相当多,如果考虑性能配置起来会比较麻烦.不过,我们往往只是需要一个静态 Server,或者一个反向代理 Server,这对 Nginx 来说小菜一碟. 简介 Nginx 的安装: # CentOS yum install nginx; # Ubuntu sudo apt-get install nginx; # Mac brew install nginx;

  • nginx 配置指令之location使用详解

    目录 前言 配置策略 具体属性介绍 Nginx是支持世界上所有网站三分之一的Web服务器.因为轻巧,模块化,用户友好的配置格式以强大的反向代理能力,Nginx迅速取代其他Web服务器成了互联网上最常用Web服务器之.作为一个门户和对外暴露的入口,Nginx也是Web服务在保障企业服务在性能和安全方面功不可没,虽然Nginx也暴露过一些漏洞(比如CVE-2013-4547,CVE-2017-7529,CVE-2018-16843/16844,CVE-2019-9516和CVE-2020-12440

  • Nginx常见的错误配置举例

    Nginx是当前主流的Web服务. 以下是一些最常见的错误配置. Missing root location server { root /etc/nginx; location /hello.txt { try_files $uri $uri/ =404; proxy_pass http://127.0.0.1:8080/; } } root指令指定Nginx的根目录. 在上面的示例中,根目录是/etc/nginx,这意味着我们可以访问该目录下的文件. 上面的配置没有/的位置(location

  • Nginx内容缓存以及常见参数配置详析

    使用场景: 项目的页面需要加载很多数据,也不是经常变化的,不涉及个性化定制,为每次请求去动态生成数据,性能比不上根据请求路由和参数缓存一下结果,使用 Nginx 缓存将大幅度提升请求速度. 基础 只需要配置 proxy_cache_path 和 proxy_cache 就可以开启内容缓存,前者用来设置缓存的路径和配置,后者用来启用缓存. http { ... proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max

  • Nginx配置使用详解

    配置步骤: 1.配置nginx的方法:首先要打开“/etc/nginx/conf.d/”文件夹: 2.然后创建配置文件:接着在“/etc/nginx/nginx.conf”文件中修改配置项: 3.最后重新启动nginx即可 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器Nginx (engine x) 也是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务.Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler

  • 常见的Nginx配置误区

    假设我们用PHP实现了一个前端控制器,或者直白点说就是统一入口:把PHP请求都发送到同一个文件上,然后在此文件里通过解析「REQUEST_URI」实现路由.此时很多教程会教大家这样配置Nginx+PHP: 复制代码 代码如下: server {    listen 80;    server_name foo.com; root /path; location / {        index index.html index.htm index.php; if (!-e $request_fi

  • 超实用的Nginx常见配置合集分享

    目录 封禁 IP 仅开放内网 负载均衡 列出文件列表 路由转发 开启 gzip 压缩 解决跨域 资源防盗链 Keepalived 提高吞吐量 HTTP 强制跳转 HTTPS 封禁 IP 通过 deny 可以封禁指定 IP http { # .... # 封禁IP deny 192.168.4.3; deny 31.42.145.0/24; deny 51.12.35.0/24; } 仅开放内网 需要先禁止 192.168.1.1 开放其他内网网段,然后禁止其他所有 IP location / {

  • PHP常见算法合集代码实例

    许多人都说 算法是程序的核心,一个程序的好于差,关键是这个程序算法的优劣,下面是一些常用的算法和实例,大家可以好好学习下 一.文件夹遍历 <?php function allFile($path = __DIR__, $level = 1) { if (is_dir($path) && is_readable($path)) { if($pd = opendir($path)) { while (($file = readdir($pd)) !== false) { if($file

  • 2022最新前端常见react面试题合集

    目录 react性能优化方案 什么是 React Context? 何为 JSX props 是什么 应该在 React 组件的何处发起 Ajax 请求 react 强制刷新 使用 React Hooks 好处是啥? Redux内部原理 内部怎么实现dispstch一个函数的 何为纯函数(pure function) 如何配置 React-Router 实现路由切换 在 React 中,何为 state react16版本的reconciliation阶段和commit阶段是什么 类组件和函数组

  • Nginx+Tomcat负载均衡集群安装配置案例详解

    目录 前言 一.Nginx+Tomcat 二.配置Nginx服务器 三.部署Tomcat应用服务器 总结 前言 介绍Tomcat及Nginx+Tomcat负载均衡集群,Tomcat的应用场景,然后重点介绍Tomcat的安装配置.Nginx+Tomcat负载均衡集案列是应用于生产环境的一套可靠的Web站点解决方案. 一.Nginx+Tomcat 通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完

  • 一篇文章快速掌握Nginx部署前端项目(Nginx安装配置及部署都非常详细!)

    目录 前言: Nginx的三个作用: 负载均衡: 反向代理: 动静分离: Nginx的下载安装(Linux环境下) Nginx的使用 三.部署前端项目 总结 前言: 之前在Linux系统中部署了后端项目,今天继续来给大家分享如何部署前端项目. 涉及到了Nginx的简单介绍以及Nginx如何安装及配置并且能够部署前端项目 Nginx是一个轻量级的反向代理web服务器,在当今应用地非常广泛,特别是前后端分离的情况下. Nginx的三个作用: 负载均衡: 当我们的单个项目访问量达到了单个tomcat无

  • PHP7+Nginx的配置与安装教程详解

    下面我们小编把PHP7+Nginx的配置与安装教程分享给大家,供大家参考,本文写的不好还请见谅. 系统环境:centos6.5 x64 软件版本:nginx-1.10.0 php-7.0.6 安装 Nginx Nginx官网:http://nginx.org/ 先安装编译依赖的一些组件 复制代码 代码如下: yum install pcre pcre-devel openssl openssl-devel -y 1.解压程序包 复制代码 代码如下: tar xf nginx-1.10.0.tar

  • 基于apicloudAJAX请求代码合集

    get请求代码: api.ajax({ url:'http://m.weather.com.cn/data/101010100.html' //天气预报网站的WebService接口 },function(ret,err){ if (ret) { api.alert({msg:JSON.stringify(ret)}); } else { api.alert({msg:JSON.stringify(err)}); }; }); POST请求-Form表单提交: api.ajax({ url: '

  • LNMP编译安装之nginx安装配置方法图文教程

    本文为大家分享了LNMP编译安装之nginx安装图文教程,具体如下 1.前言 本次安装采用源码安装,主要资源包从官网下载,次要依赖则使用yum进行安装,本篇只涉及nginx的安装,不涉及nginx的配置,对应nginx如何访问php,本篇也不涉及.该教程纯属安装,不涉及任何重要知识点,老少皆宜. 2.安装步骤 nginx官网 2.1.下载nginx wget http://nginx.org/download/nginx-1.12.0.tar.gz 2.2.下载pcre安装包 wget ftp:

随机推荐