Nginx各个模块的配置及常用配置选项

目录
  • Nginx Location配置
  • 请求转发和重定向
  • Nginx静态文件配置
  • 文件下载服务器
  • Nginx配置HTTPS
  • Nginx日志配置
  • Nginx超时设置
  • 请求超时设置
  • Proxy反向代理超时设置
  • Nginx负载均衡
  • 轮询(默认)
  • 权重(weight)
  • ip_hash
  • url_hash
  • fair(第三方)
  • Nginx与uWSGI服务器的沟通
  • 小结

接下来,我们仔细分析下Nginx各个模块的配置选项。
注意:http块也可以进一步分成3块,http全局块里的配置对所有站点生效,server块配置选项仅对单个站点生效,而location块的配置仅对单个页面或url生效。

Nginx Location配置

Nginx Location配置是Nginx的核心配置,它负责匹配请求的url, 并根据Location里定义的规则来处理这个请求,比如拒绝、转发、重定向或直接提供文件下载。

URL匹配方式及优先级

Nginx的Location配置支持普通字符串匹配和正则匹配,不过url的各种匹配方式是有优先级的,如下所示:

匹配符 匹配规则 优先级逐级降低

= 精确匹配 1
^~ 以某个字符串开头 2
~ 区分大小写的正则匹配 3
~* 不区分大小写的正则匹配 4
!~ 区分大小写的不匹配正则 5
!~* 不区分大小写的不匹配正则 6
/ 通用匹配,任何请求都会匹配到 7

为了加深你的理解,我们来看如下一个例子。由于规则2的优先级更高,当用户访问/static/或则/static/123.html时,Nginx会优先执行规则2里的操作,其它的的请求则会交由规则1执行。

 # 规则1:通用匹配
 location / {
 }
 # 规则2:处理以/static/开头的url
 location ^~ /static {
     alias /usr/share/nginx/html/static; # 静态资源路径
 }

上例中我们使用了alias别名设置了静态文件所在目录,我们还可以使用root指定静态文件目录。这里请一定注意alias和root的区别:

root对路径的处理:root路径 + location路径alias对路径的处理:使用alias路径替换location路径

如果用root设置静态文件资源路径,可以按如下代码设置。两者是等同的。

# 规则2:处理以/static/开头的url
 location ^~ /static {
     root /usr/share/nginx/html; # 静态资源路径
 }

Location还支持正则匹配,比如下例可以禁止用户访问所有的图片格式文件。

# 拒绝访问所有图片格式文件
 location ~* .*\.(jpg|gif|png|jpeg)$ {
         deny all;
 }

请求转发和重定向

另一个我们在Location块里经常配置的就是转发请求或重定向,如下例所示:

# 转发动态请求
 server {
     listen 80;
     server_name  localhost;
     client_max_body_size 1024M;
     location / {
         proxy_pass http://localhost:8080;
         proxy_set_header Host $host:$server_port;
     }
 }
 # http请求重定向到https请求
 server {
     listen 80;
     server_name Domain.com;
     return 301 https://$server_name$request_uri;
 }

无论是转发请求还是重定向,我们都使用了以$符号开头的变量,这些都是Nginx提供的全局变量。它们的具体含义如下所示:

$args, 请求中的参数;
 $content_length, HTTP请求信息里的"Content-Length";
 $content_type, 请求信息里的"Content-Type";
 $document_root, 针对当前请求的根路径设置值;
 $document_uri, 与$uri相同;
 $host, 请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名;
 $limit_rate, 对连接速率的限制;
 $request_method, 请求的方法,比如"GET"、"POST"等;
 $remote_addr, 客户端地址;
 $remote_port, 客户端端口号;
 $remote_user, 客户端用户名,认证用;
 $request_filename, 当前请求的文件路径名
 $request_body_file,当前请求的文件
 $request_uri, 请求的URI,带查询字符串;
 $query_string, 与$args相同;
 $scheme, 所用的协议,比如http或者是https,比如rewrite ^(.+)$
 $scheme://example.com$1 redirect;
 $server_protocol, 请求的协议版本,"HTTP/1.0"或"HTTP/1.1";
 $server_addr, 服务器地址;
 $server_name, 请求到达的服务器名;
 $server_port, 请求到达的服务器端口号;
 $uri, 请求的URI,可能和最初的值有不同,比如经过重定向之类的。

知道这些全局变量的含义后,我们就可以限制用户的请求方法。比如下例中配置了只允许用户通过GET或POST方法访问,其他的请求方法则返回405。

Nginx静态文件配置

Nginx可直接作为强大的静态文件服务器使用,支持对静态文件进行缓存还可以直接将Nginx作为文件下载服务器使用。

静态文件缓存

缓存可以加快下次静态文件加载速度。我们很多与网站样式相关的文件比如css和js文件一般不怎么变化,缓存有效器可以通过expires选项设置得长一些。

 # 使用expires选项开启静态文件缓存,10天有效
     location ~ ^/(images|javascript|js|css|flash|media|static)/  {
       root    /var/www/big.server.com/static_files;
       expires 10d;
     }

静态文件压缩

Nginx可以对网站的css、js 、xml、html 文件在传输前进行压缩,大幅提高页面加载速度。经过Gzip压缩后页面大小可以变为原来的30%甚至更小。使用时仅需开启Gzip压缩功能即可。你可以在http全局块或server块增加这个配置。

 http {
     # 开启gzip压缩功能
     gzip on;

     # 设置允许压缩的页面最小字节数; 这里表示如果文件小于10k,压缩没有意义.
     gzip_min_length 10k; 

     # 设置压缩比率,最小为1,处理速度快,传输速度慢;
     # 9为最大压缩比,处理速度慢,传输速度快; 推荐6
     gzip_comp_level 6; 

     # 设置压缩缓冲区大小,此处设置为16个8K内存作为压缩结果缓冲
     gzip_buffers 16 8k; 

     # 设置哪些文件需要压缩,一般文本,css和js建议压缩。图片视需要要锁。
     gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
 }

文件下载服务器

Nginx也可直接做文件下载服务器使用,在location块设置autoindex相关选项即可。

 server {

     listen 80 default_server;
     listen [::]:80 default_server;
     server_name  _;

     location /download {
         # 下载文件所在目录
         root /usr/share/nginx/html;

         # 开启索引功能
         autoindex on;  

         # 关闭计算文件确切大小(单位bytes),只显示大概大小(单位kb、mb、gb)
         autoindex_exact_size off; 

         #显示本机时间而非 GMT 时间
         autoindex_localtime on;   

         # 对于txt和jpg文件,强制以附件形式下载,不要浏览器直接打开
         if ($request_filename ~* ^.*?\.(txt|jpg|png)$) {
             add_header Content-Disposition 'attachment';
         }
     }
 }

Nginx配置HTTPS

# 负载均衡,设置HTTPS
 upstream backend_server {
     server APP_SERVER_1_IP;
     server APP_SERVER_2_IP;
 }

 # 禁止未绑定域名访问,比如通过ip地址访问
 # 444:该网页无法正常运作,未发送任何数据
 server {
     listen 80 default_server;
     server_name _;
     return 444;
 # HTTP请求重定向至HTTPS请求
     listen 80;
     listen [::]:80;
     server_name your_domain.com;

     location / {
         proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header X-Forwarded-Proto $scheme;
         proxy_set_header Host $http_host;
         proxy_redirect off;
         proxy_pass http://backend_server;
      }
     return 301 https://$server_name$request_uri;
     listen 443 ssl http2;
     listen [::]:443 ssl http2;
     # ssl证书及密钥路径
     ssl_certificate /path/to/your/fullchain.pem;
     ssl_certificate_key /path/to/your/privkey.pem;
     # SSL会话信息
     client_max_body_size 75MB;
     keepalive_timeout 10;
         proxy_pass http://django; # Django+uwsgi不在本机上,使用代理转发
     }

Nginx日志配置

Nginx的日志主要包括访问日志access_log和错误日志error_log,你还可以通过log_format定义日志格式。你可以在全局块,Server块或Location块定义日志。比如下例在http块中定义了一个名为main的日志格式,所有站点的日志都会按这个格式记录。

http {
  # 日志格式及access日志路径
   log_format main '$remote_addr - $remote_user [$time_local]  $status '
     '"$request" $body_bytes_sent "$http_referer" '
     '"$http_user_agent" "$http_x_forwarded_for"';
   access_log   logs/access.log  main;
 }

access_log文件随着访问记录增多有可能变得非常大,我们可以使用access_log off关闭一些不需要记录的访问。比如当一个站点没有设置favicon.ico时,access_log会记录了大量favicon.ico 404信息, 这是没有必要的, 可以按如下方式关闭访问日志记录。

 location = /favicon.ico {
   log_not_found off;
   access_log off; # 不在access_log记录该项访问
 }

Nginx超时设置

Nginx提供了很多超时设置选项,目的是保护服务器资源,CPU,内存并控制连接数。你可以根据实际项目需求在全局块、Server块和Location块进行配置。

请求超时设置

# 客户端连接保持会话超时时间,超过这个时间,服务器断开这个链接。
 keepalive_timeout 60;

 # 设置请求头的超时时间,可以设置低点。
 # 如果超过这个时间没有发送任何数据,nginx将返回request time out的错误。
 client_header_timeout 15;

 # 设置请求体的超时时间,可以设置低点。
 # 如果超过这个时间没有发送任何数据,nginx将返回request time out的错误。
 client_body_timeout 15;

 # 响应客户端超时时间
 # 如果超过这个时间,客户端没有任何活动,nginx关闭连接。
 send_timeout 15;

 # 上传文件大小限制
 client_max_body_size 10m;

 # 也是防止网络阻塞,不过要包涵在keepalived参数才有效。
 tcp_nodelay on;

 # 客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置。
 # 一般一个请求头的大小不会超过 1k,不过由于一般系统分页都要大于1k
 client_header_buffer_size 2k;

 # 这个将为打开文件指定缓存,默认是没有启用的。
 # max指定缓存数量,建议和打开文件数一致,inactive 是指经过多长时间文件没被请求后删除缓存。
 open_file_cache max=102400 inactive=20s;

 # 这个是指多长时间检查一次缓存的有效信息。
 open_file_cache_valid 30s;

 # 告诉nginx关闭不响应的客户端连接。这将会释放那个客户端所占有的内存空间。
 reset_timedout_connection on;

Proxy反向代理超时设置

 # 该指令设置与upstream服务器的连接超时时间,这个超时建议不超过75秒。
 proxy_connect_timeout 60;

 # 该指令设置应用服务器的响应超时时间,默认60秒。
 proxy_read_timeout 60;
 # 设置了发送请求给upstream服务器的超时时间
 proxy_send_timeout 60;
 # max_fails设定Nginx与upstream服务器通信的尝试失败的次数。
 # 在fail_timeout参数定义的时间段内,如果失败的次数达到此值,Nginx就认为服务器不可用。
 upstream big_server_com {
    server 192.168.0.1:8000 weight=5  max_fails=3 fail_timeout=30s; # weight越高,权重越大
    server 192.168.0.2:8000 weight=1  max_fails=3 fail_timeout=30s;
    server 192.168.0.3:8000;
    server 192.168.0.4:8001 backup; # 热备
 }

Nginx负载均衡

Nginx提供了多种负载均衡算法, 最常见的有5种。我们只需修改对应upstream模块即可。

轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除;

 # 轮询,大家权重一样
 upstream backend_server {
    server 192.168.0.1:8000;
    server 192.168.0.2:8000;
    server 192.168.0.3:8000 down; # 不参与负载均衡
    server 192.168.0.4:8001 backup; # 热备
 }

 server {
    listen          80;
    server_name     big.server.com;
    access_log      logs/big.server.access.log main;

    charset utf-8;
    client_max_body_size 10M; # 限制用户上传文件大小,默认1M
    location / {
      # 使用proxy_pass转发请求到通过upstream定义的一组应用服务器
      proxy_pass      http://backend_server;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $http_host;
      proxy_redirect off;
      proxy_set_header X-Real-IP  $remote_addr;
    }

 权重(weight)

通过weight指定轮询几率,访问比率与weight成正比,常用于后端服务器性能不均的情况。不怎么忙的服务器可以多承担些任务。

# 权重,weight越大,承担任务越多
 upstream backend_server {
    server 192.168.0.1:8000 weight=3;
    server 192.168.0.2:8000 weight=1;
 }

ip_hash

每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。

# 权重,weight越大,承担任务越多
 upstream backend_server {
    ip_hash;
    server 192.168.0.1:8000;
    server 192.168.0.2:8000;
 }

url_hash

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

 # URL Hash
 upstream backend_server {
    hash $request_uri;
    server 192.168.0.1:8000;
    server 192.168.0.2:8000;
 }

fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。使用这个算法需要安装nginx-upstream-fair这个库。

# Fair
 upstream backend_server {
    server 192.168.0.1:8000;
    server 192.168.0.2:8000;
    fair;
 }

Nginx与uWSGI服务器的沟通

在前面的案例中,Nginx都是使用proxy_pass转发的动态请求,proxy_pass使用普通的HTTP协议与应用服务器进行沟通。如果你部署的是Python Web应用(Django, Flask), 你的应用服务器(uwsgi, gunicorn)一般是遵守uwsgi协议的,对于这种情况,建议使用uwsgi_pass转发请求。

如果你部署的是Django或则Flask Web应用,一个完整的nginx配置文件如下所示,可以使用通过uWSGI或gunicorn部署的Python Web项目。

# nginx配置文件,nginx.conf
 # 全局块
 user www-data;
 worker_processes  2;  ## 默认1,一般建议设成CPU核数1-2倍

 # Events块
 events {
   # 使用epoll的I/O 模型处理轮询事件。
   # 可以不设置,nginx会根据操作系统选择合适的模型
   use epoll;

   # 工作进程的最大连接数量, 默认1024个
   worker_connections  2048;
   # http层面的keep-alive超时时间
   keepalive_timeout 60;
 }
 http {
     # 开启gzip压缩功能
     gzip on;

     # 设置允许压缩的页面最小字节数; 这里表示如果文件小于10k,压缩没有意义.
     gzip_min_length 10k;
     # 设置压缩比率,最小为1,处理速度快,传输速度慢;
     # 9为最大压缩比,处理速度慢,传输速度快; 推荐6
     gzip_comp_level 6;
     # 设置压缩缓冲区大小,此处设置为16个8K内存作为压缩结果缓冲
     gzip_buffers 16 8k;
     # 设置哪些文件需要压缩,一般文本,css和js建议压缩。图片视需要要锁。
     gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
     upstream backend_server {
         server 192.168.0.1:8000; # 替换成应用服务器或容器实际IP及端口
         server 192.168.0.2:8000;
     }
     server {
         listen 80; # 监听80端口
        # 可以是nginx容器所在ip地址或127.0.0.1,不能写宿主机外网ip地址
         server_name localhost;
         charset utf-8;
         client_max_body_size 10M; # 限制用户上传文件大小

         # 客户端请求头部的缓冲区大小
         client_header_buffer_size 2k;
         client_header_timeout 15;
         client_body_timeout 15;
         access_log /var/log/nginx/mysite1.access.log main;
         error_log /var/log/nginx/mysite1.error.log warn;
         # 静态资源路径
         location /static {
             alias /usr/share/nginx/html/static;
         }
         # 媒体资源路径,用户上传文件路径
         location /media {
             alias /usr/share/nginx/html/media;
         location / {
             include /etc/nginx/uwsgi_params;
             uwsgi_pass backend_server;   # 使用uwsgi_pass, 而不是proxy_pass
             uwsgi_read_timeout 600; # 指定接收uWSGI应答的超时时间
             uwsgi_connect_timeout 600;  # 指定连接到后端uWSGI的超时时间。
             uwsgi_send_timeout 600; # 指定向uWSGI传送请求的超时时间
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             proxy_set_header Host $http_host;
             proxy_redirect off;
             proxy_set_header X-Real-IP  $remote_addr;

如果你的nginx与uwsgi在同一台服务器上,用不到负载均衡,你还可以通过本地机器的unix socket进行通信,这样速度更快,如下所示:

location / {
     include /etc/nginx/uwsgi_params;
     uwsgi_pass unix:/run/uwsgi/django_test1.sock;
 }

注意:取决于Nginx采用那种方式与uWSGI服务器进行通信(本地socket, 网络TCP socket和http协议),uWSGI的配置文件也会有所不同。这里以uwsgi.ini为例展示了不同。

uwsgi.ini配置文件

# 对于uwsgi_pass转发的请求,使用本地unix socket通信
# 仅适用于nginx和uwsgi在同一台服务器上的情形
socket=/run/uwsgi/django_test1.sock

# 对于uwsgi_pass转发的请求,使用TCP socket通信
socket=0.0.0.0:8000
# 对于proxy_pass HTTP转发的请求,使用http协议
http=0.0.0.0:8000

小结

本文总结了Nginx常用配置选项,包括url匹配优先级、请求转发、日志配置、超时配置、静态文件处理以及负载均衡的各项算法。

到此这篇关于Nginx各个模块的配置的文章就介绍到这了,更多相关Nginx 模块配置内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用Nginx中自带的模块配置缩略图功能的教程

    http_image_filter_module是nginx提供的集成图片处理模块,支持nginx-0.7.54以后的版本,在网站访问量不是很高磁盘有限不想生成多余的图片文件的前提下可,就可以用它实时缩放图片,旋转图片,验证图片有效性以及获取图片宽高以及图片类型信息,由于是即时计算的结果,所以网站访问量大的话,不建议使用. 安装 安装还是很简单的,默认HttpImageFilterModule模块是不会编译进nginx的,所以要在configure时候指定 ./configure argumen

  • 详解nginx使用ssl模块配置支持HTTPS访问

    背景: 项目开发中用到了微信小程序,但是服务器配置URL必须是HTTPS,所以需要通过配置nginx的SSL模块来支持HTTPS访问,也就是说,要做一个网站域名为 dmsdbj.com 要求通过HTTPS://dmsdbj.com进行访问. SSL英文名为Secure Socket Layer,安全套接字层.SSL是一种数字证书,它使用ssl协议在浏览器和web server之间建立一条安全通道,数据信息在client与server之间的安全传输. 本篇博客是对这个操作步骤的详解. 前提: 1.

  • Nginx服务器基本的模块配置和使用全攻略

    1. 安装nginx 1.1 选择稳定版本 我们编译安装nginx来定制自己的模块,机器CentOS 6.2 x86_64.首先安装缺少的依赖包: # yum -y install gcc gcc-c++ make libtool zlib zlib-devel openssl openssl-devel pcre pcre-devel 这些软件包如果yum上没有的话可以下载源码来编译安装,只是要注意编译时默认安装的目录,确保下面在安装nginx时能够找到这些动态库文件(ldconfig). 从

  • 详解nginx使用ssl模块配置HTTPS支持

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译时指定–with-http_ssl_module参数,安装模块依赖于OpenSSL库和一些引用文件,通常这些文件并不在同一个软件包中.通常这个文件名类似libssl-dev. 生成证书 可以通过以下步骤生成一个简单的证书: 首先,进入你想创建证书和私钥的目录,例如: $ cd /usr/local/nginx/conf 创建服务器私钥,命令会让你输入一个口令: $ openssl genrsa -des3 -out serverkey

  • nginx使用ssl模块配置支持HTTPS访问的方法

    默认情况下ssl模块并未被安装,如果要使用该模块则需要在编译nginx时指定–with-http_ssl_module参数. 需求: 做一个网站域名为 www.localhost.cn 要求通过https://www.localhost.cn进行访问. 10.10.100.8 www.localhost.cn 实验步骤: 1.首先确保机器上安装了openssl和openssl-devel #yum install openssl #yum install openssl-devel 2.创建服务

  • Nginx各个模块的配置及常用配置选项

    目录 Nginx Location配置 请求转发和重定向 Nginx静态文件配置 文件下载服务器 Nginx配置HTTPS Nginx日志配置 Nginx超时设置 请求超时设置 Proxy反向代理超时设置 Nginx负载均衡 轮询(默认) 权重(weight) ip_hash url_hash fair(第三方) Nginx与uWSGI服务器的沟通 小结 接下来,我们仔细分析下Nginx各个模块的配置选项.注意:http块也可以进一步分成3块,http全局块里的配置对所有站点生效,server块

  • 思科路由器基本配置与常用配置命令simple for CCNA

    启动接口,分配IP地址: router> router> enable router# router# configure terminal router(config)# router(config)# interface Type Port router(config-if)# no shutdown router(config-if)# ip address IP-Address Subnet-Mask router(config-if)# ^z 配置RIP路由协议:30秒更新一次 ro

  • nginx HTTP模块配置常用指令

    一.HTTP模块的作用是什么? Nginx的HTTP模块用于控制Nginx的HTTP进程. 二.配置指令 1. alias含义:指定location使用的路径,与root类似,但不改变文件的跟路径,仅适用文件系统的路径.语法:alias <file-path | directory-path>缺省:N/A作用域:http.server.location示例: 复制代码 代码如下: location /i/ {    alias /home/michael/web/i/;} 如请求 /i/log

  • Nginx的一些常用配置汇总

    目录 Nginx配置文件结构 Nginx日志切割 root 与 alias 使用GZIP压缩提升请求效率 location匹配规则解析 使用SwitchHosts模拟本地域名解析 Nginx跨域配置支持 Nginx防盗链支持 Nginx负载均衡 upstream指令参数 Keepalived 提高吞吐量 Nginx的缓存 Nginx的反向代理缓存 使用Nginx配置HTTPS域名证书 总结 Nginx配置文件结构 1.设置worker进程的用户,指的linux中的用户,会涉及到nginx操作目录

  • Centos7.x下Nginx安装及SSL配置与常用命令详解

    一.安装 采用yum方式安装 ##自动安装 yum nginx ##启动 nginx 二.SSL及默认端口配置 泛解析配置 server { listen 443; server_name *.banacoo.cn; ssl on; ssl_certificate /etc/nginx/conf.d/1_banacoo.cn_bundle.crt; ssl_certificate_key /etc/nginx/conf.d/2_banacoo.cn.key; gzip on; gzip_buff

  • nginx常用配置conf的示例代码详解

    nginx常用配置conf 代理静态文件 # 静态文件 server { # 压缩问价你配置 gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 6; gzip_types text/plain text/css application/javascript application/json image/jpeg image/png image/gif; gzip_disa

  • Nginx与安全有关的几个配置详解

    这里再总结下nginx配置中与安全有关的一些配置 隐藏版本号 http { server_tokens off; } 经常会有针对某个版本的nginx安全漏洞出现,隐藏nginx版本号就成了主要的安全优化手段之一,当然最重要的是及时升级修复漏洞 开启HTTPS server { listen 443; server_name ops-coffee.cn; ssl on; ssl_certificate /etc/nginx/server.crt; ssl_certificate_key /etc

  • Nginx七层及四层反向代理配置的全过程

    目录 部署测试http服务 nginx反向代理http服务 nginx通过https反向代理http服务 NginxStream模块负载均衡测试 准备测试用https服务 nginxstream安装配置 负载均衡策略 默认采用轮询算法 一致性hash算法测试 附:负载均衡四层和七层的区别 总结 本文旨在测试 nginx对 http服务 https 服务 的代理方式. 部署测试 http服务 准备测试服务程序 gintest 并启动如下 [root@localhost ~]# sudo nohup

  • ThinkPHP的常用配置选项汇总

    本文实例讲述了ThinkPHP的常用配置选项.分享给大家供大家参考,具体如下: return array( /* Dispatch设置 */ 'DISPATCH_ON' => true, // 是否启用Dispatcher // URL模式: 0 普通模式 1 PATHINFO 2 REWRITE 3 兼容模式 当DISPATCH_ON开启后有效 'URL_MODEL' => 1, // 默认为PATHINFO 模式,提供最好的用户体验和SEO支持 // PATHINFO 模式 // 普通模式

  • webpack4 从零学习常用配置(小结)

    webpack 的核心价值就是前端源码的打包,即将前端源码中每一个文件(无论任何类型)都当做一个 pack ,然后分析依赖,将其最终打包出线上运行的代码.webpack 的四个核心部分 entry 规定入口文件,一个或者多个 output 规定输出文件的位置 loader 各个类型的转换工具 plugin 打包过程中各种自定义功能的插件 webpack 如今已经进入 v4.x 版本,v5.x 估计也会很快发布.不过看 v5 的变化相比于 v4 ,常用的配置没有变,这是一个好消息,说明基本稳定.

随机推荐