Nginx详细入门-Nginx常用配置以及基本功能一

Nginx其实在项目中特别常用,用于项目的部署

配置文件

我们直接直入主题,nginx中最重要的就是nginx.conf 配置文件(目录在 nginx/conf 里面),我们基本上所需要的基本功能都是它提供的。
以下就是一个最基础的nginx.conf 配置文件

user  nginx;
worker_processes  auto; #worker_processes 1; 默认为1,表示开启一个业务进程

error_log  /var/log/nginx/error.log notice;#制定日志路径,级别:debug|info|notice|warn|error|crit|alert|emerg
pid        /var/run/nginx.pid; #指定nginx进程运行文件存放地址


events {
    worker_connections  1024; # 单个业务进程可接受最大连接数,默认为512
}


http {
    include       /etc/nginx/mime.types; #文件扩展名与文件类型映射表
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;# 使用linux的 sendfile(socket, file, len) 高效网络传输,也就是数据0拷贝。
    #tcp_nopush     on;

    keepalive_timeout  65; #连接超时时间,默认为75s,可以在http,server,location块。

     # 第一个Server区块开始,表示一个独立的虚拟主机站点
    server {
    	keepalive_requests 120; #单连接请求上限次数。
        listen 8081; #监听端口,监听地址默认就是127.0.0.1
        location /login { # 请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
                proxy_pass    http://127.0.0.1:8081/; #请求转发到哪

        }
        location / { # 请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
                root   /usr/share/nginx/html/dist; #请求到达后的文件根目录
                index  index.html index.htm; #设置默认页

                fastcgi_buffers 256 128k;
                chunked_transfer_encoding off;

               }
        }
   # include /etc/nginx/conf.d/*.conf;
}

根据以上文件我们先来看看整体结构
event块,主要是为了配置和网络链接相关的配置
http块 配置代理、缓存、日志记录、虚拟主机等配置
server块 配置虚拟主机的相关参数,一个http块中可以有多个server块
location块 配置请求的路由,以及各种页面的处理情况,一个server块里面可以有多个location块

locat映射讲解

格式

location [ = | ~ | * | ! | !~* | @ ] uri {…}

解释

= 表示精确匹配,如果找到,立即停止搜索并立即处理此请求。
表示执行一个正则匹配,区分大小写匹配
~* 表示执行一个正则匹配,不区分大小写匹配
!~ 区分大小写不匹配
!~* 不区分大小写不匹配
^~ 即表示只匹配普通字符(空格)。使用前缀匹配,^表示“非”,即不查询正则表达式。如果匹配成功,则不再匹配其他location。
@ 指定一个命名的location,一般只用于内部重定向请求。例如 error_page, try_files
uri 是待匹配的请求字符串,可以不包含正则表达式,也可以包含正则表达式;

示例

location = / {
    # 精确匹配/,主机名后面不能带任何字符串 /
    # 只匹配http://abc.com
    # http://abc.com [匹配成功]
    # http://abc.com/index [匹配失败]
}
location ^~ /img/ {
      #以 /img/ 开头的请求,都会匹配上
    #http://abc.com/img/a.jpg   [成功]
    #http://abc.com/img/b.mp4  [成功]
    }
location ~* /Example/ {
  # 则会忽略 uri 部分的大小写
  #http://abc.com/test/Example/ [匹配成功]
  #http://abc.com/example/ [匹配成功]
}
location /documents {
    # 如果有正则表达式可以匹配,则优先匹配正则表达式。
    #http://abc.com/documentsabc [匹配成功]
}
location / {
    #http://abc.com/abc [匹配成功]
}

反向代理

反向代理是我们实际开发中经常会用到的东西。比如我们有一个中转机,需要通过中转机来实现两台机器的访问,那我们就可以通过反向代理的功能实现。
举例说明一下:

server {
    listen       8090;
    server_name  localhost;


    location / {
         proxy_pass http://localhost:8081;
         
         # 当请求服务器出错去寻找其他服务器
         proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
	}
}

这时候当我们访问了localhost:8090的时候,ngnix就将我们的请求转到 localhost:8081了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值