首页 > 系统相关 >配置 Nginx

配置 Nginx

时间:2024-03-18 21:11:07浏览次数:15  
标签:配置 server Nginx html location gzip 服务器

Nginx 是一种轻量级、高性能、低内存的 Web 服务器和反向代理服务器。

1. 正向代理和反向代理

正向代理:客户端向服务器发送请求,并指定目标服务器地址,然后由代理服务器和原始服务器通信,转交请求并获得响应,再返回给客户端。正向代理隐藏了真实的客户端,使真实的客户端对服务器不可见。

正向代理

反向代理:以代理服务器来接收互联网上的连接请求,然后将连接请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给客户端。此时的代理服务器对外就表现为一个反向代理服务器。

反向代理

2. 配置 Nginx

Mac 系统可以借助 brew 安装 Nginx。brew install nginx,安装成功后,配置文件在 /usr/local/etc/nginx 目录下。

Windows 系统可以在官网 下载 nginx

nginx 下载

解压缩后,配置文件在 \conf 目录下。移除掉部分被注释掉的代码(前面添加了 # 的那行代码)后,默认配置如下:

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #access_log  logs/access.log  main;

    sendfile        on; # 设置为 on 时,Nginx 会使用 sendfile() 系统调用来传输静态文件
    #tcp_nopush     on;

    keepalive_timeout  65; # 当这个超时 65s 到达时,如果连接上没有新的数据传输,Nginx 会关闭这个连接。

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        location / {
            root   html;
            index  index.html index.htm;
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

events 和 http 在最外层,server 在 http 中,location 在 server 中。server 和 location 都可以有多个配置,多个 server 代表多个服务,location 代表多个匹配规则。

该 server 监听了 80 端口,location 指定与请求中的 URI 的 "/" 前缀相匹配。例如请求 http://localhost/80 那么 nginx 会映射到 html/index.html 文件。

3. 配置反向代理

在前端开发中经常需要配置反向代理,已解决跨域问题。修改上面配置:

location / {
  proxy_pass https://www.baidu.com
}

这样访问页面就代理到百度了。

如果部署的服务是内网地址,如:192.168.0.110:10086,那么该如何配置。需要使用 upstream,它用来定义一组服务器,这些服务器可以监听不同的端口:

upstream backend-servers {
  server 192.168.0.110:10086
  server 192.168.0.111:10087  # 配置多个服务器
}

这时,location 要改成:

location / {
  proxy_pass http://backend-servers
}

4. 开启 gzip 压缩

gzip 是一种常用的网页压缩技术,通过 gzip 压缩之后,体积通常变为原来的一半甚至更小,节省带宽和提升传输速度。网络请求头中需要包含:Accept-Encoding: gzip 表示期望通过 gzip 压缩。

nginx 将经过 gzip 压缩过后的文件给浏览器并在响应头重添加:content-encoding: gzip,告诉浏览器自己采用的压缩算法是 gzip。

gzip on;  # 默认 off,on 表示开启 gzip
gzip_types text/plain text/csss application/json text/xml text/javascript  # gzip_types 表示要采用 gzip 压缩的 MIME 文件类型

5. 图片防盗配置

由于图片可以跨域访问,所以当图片被其他网站引用时,无形中增加了自家服务器负担。

server {
  # 图片防盗链
  location ~* \.(png|jpeg|jpg|gif)$ {
    valid_referers none blocked erver_names ~\.test\. ~\.test2\. *.qq.com;
    if ($invalid_referer) {
      return 403;
    }
  }
}

过滤请求:

# 如果是非指定请求,全返回 403
if ($request_method !~ ^(GET|POST|HEAD)$) {
  return 403;
}

location / {
  # IP 地址访问限制(只允许 192.168.0.110 的机器访问)
  allow 192.168.0.110
  deny all;
}

标签:配置,server,Nginx,html,location,gzip,服务器
From: https://www.cnblogs.com/xinjie-just/p/18080709

相关文章

  • 防火墙常用功能配置
    防火墙:为了限制不同区域之间的流量通信。默认有一条拒绝所有的策略。现在的防火墙主要作用:是区域隔离和访问控制。安全防护是核心特性路由器:ACL列表,控制流量入侵防御:网络攻击文件过滤,内容过滤,邮件过滤APT:未识别的攻击 沙箱和态势感知系统有选择性的转发路......
  • nginx访客日志
    访客日志处理日志模块的官网教程https://nginx.org/en/docs/http/ngx_http_log_module.htmlnginx日志变量的格式,作用找到nginx所有的内置变量,以及作用解释https://nginx.org/en/docs/https://nginx.org/en/docs/http/ngx_http_core_module.html#var_remote_addr当你的ng......
  • 在Linux中,如何配置负载均衡器以分配网络流量?
    1.NGINXNGINX是一款高性能的HTTP和反向代理服务器,也常用作负载均衡器。它支持多种负载均衡算法,如轮询、加权轮询、IP哈希等。配置步骤:安装NGINX:根据您的Linux发行版,使用相应的包管理器安装NGINX。配置负载均衡:编辑NGINX配置文件(通常位于/etc/nginx/nginx.conf或/etc/nginx/c......
  • Jenkins+Gradle持续集成之Jenkins的安装配置自动化打包
    来源:https://www.jianshu.com/p/b6d6cd597014一、工具准备官方网站:http://jenkins-ci.org/,我的系统是win10的,所以我选择的是红色圈起的Windos版的;另外一种是war包的,下载地址:http://mirrors.jenkins-ci.org/war/latest/jenkins.war Paste_Image.png二、准备安装前提......
  • nginx-ingress-controller限制上传文件大小问题
    参考:https://www.cnblogs.com/pitaiyang/p/17975041报错信息nginx-ingress-controller限制上传文件大小为1M如果上传文件大于1M则会在浏览器报以下错误#RequestEntityTooLarge解决方法修改ingress配置文件增加以下配置annotations:#nginx.org/client-max-b......
  • PFA烧杯打刻度带手柄低本底可配置蚀刻液
    产品介绍PFA烧杯也叫特氟龙烧杯,进口聚四氟乙烯烧杯。经常用来配制溶液和作为较大量的试剂的反应容器。在操作时,配套搅拌棒使用。常用规格:30ml50ml100ml250ml500ml等产品特性透明,带凸起刻度;耐强酸碱等有机试剂;具有翻边,便与夹持和移动,有散发热量和增加机械强度的作用,边沿......
  • 华为openEuler系统安装openjdk并配置环境变量
    华为openEuler系统安装openjdk并配置环境变量1、安装JDK软件包执行dnflistinstalled|grepjdk查询JDK软件是否已安装。$dnflistinstalled|grepjdk查看命令打印信息,若打印信息中包含“jdk”,表示该软件已经安装了,则不需要再安装。若无任何打印信息,则表示该软......
  • husck4.0以上版本如何配置我们的提交校验和提交信息校验
    husck4.0以上版本如何配置我们的提交校验和提交信息校验目的实现husck4.0以上版本如何配置我们的提交校验和提交信息校验,包括:提交信息校验提交校验分析步骤实现首先我们需要处理代码的格式化有一个完整的eslint规则,(默认大家的项目中都有)我们配置我们的项目中格式化......
  • 电气防火限流式保护器在住宅区域的功能与配置是怎样的?
    袁媛ACRELYY安科瑞电气股份有限公司电气防火限流式保护器主要功能功能1.短路保护功能。保护器实时监测用电线路电流,当线路发生短路故障时,能在150微秒内实现快速限流保护,并发出声光报警信号。2.过载保护功能。当被保护线路的电流过载且过载持续时间超过动作时间(3~60秒可......
  • Tomcat配置SSL证书
    omcat配置SSL证书的过程涉及几个步骤,包括生成密钥库(keystore),配置Tomcat的server.xml文件,以及重启Tomcat服务器。以下是一个基本的步骤指南:步骤1:生成密钥库(Keystore)首先,你需要一个有效的SSL证书。你可以从证书颁发机构(CA)购买,或者如果你只是在内部网络中使用,你也可以自己生成一个......