nginx学习笔记(Beginner‘s guide)

nginx是一个http的反向代理服务器,一个邮件代理服务器,或者一个TCP/UDP代理服务器。nginx包含一个主进程(master process)和多个工作进程(work process),主进程负责读取配置文件,分配网络请求给工作进程以及对工作进程的维护,工作进程负责具体的网络请求处理,工作进程的数量配置文件、CPU的核数确定。
nginx的配置文件是需要主要学习了解的内容

nginx的启动、重启、停止操作

在root下,输入nginx启动
接下来,nginx可以通过nginx -s signal进行控制

  • nginx -s reload 重新加载配置文件
  • nginx -s quit 正常关闭nginx进程
  • nginx -s reopen 重新打开日志文件
  • nginx -s stop 直接关闭nginx

配置文件的结构(重点)

nginx可以看成由很多模块(module)组成,这些模块由nginx的“指令”来控制。
nginx的指令可以分为两类

  1. 简单的指令, 简单的指令的格式是name parameter;
  2. 指令块, 指令块的格式是blockDirectiveName { additional instruction },如果指令块中包含了其他的指令(directive),那么这个指令块叫做上下文(context)

在配置文件中,不在上下文中的指令,我们认为它在主上下文(main context), event,http指令在主上下文,server在http中,location在server中。

例子1 nginx提供静态网页服务

user  yourname;
worker_processes  auto;

error_log  /.../error.log notice;
pid        /.../nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    
    # 日志文件的格式 其中main是日志格式的标签
    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  /.../access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    # include /.../conf.d/*.conf;

    server {
        listen 9999;
        # added by peter
        location / {
          root /.../apache-tomcat-8.5.69/webapps/docs;
        }

        location /images/ {
          root /.../apache-tomcat-8.5.69/webapps/docs;
        }
    }
}

注意,这里如果出现了403forbiden的问题,估计是由于权限不足导致。

例子2 设置一个简单的代理服务器

nginx常用的场景就是代理服务器了,

user  yourname;
worker_processes  auto;

error_log  /.../nginx/error.log notice;
pid        /.../nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /.../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  /.../access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    # include /.../conf.d/*.conf;

    server {
      listen 9998;
      root /.../apache-tomcat-8.5.69/webapps/docs;
      location / {
      	# 代理到 http://ipaddress:8080
        proxy_pass http://ipaddress:8080;
      }
      # 正则表达式,~是用在正则表达式之前,用来匹配所有gif,jpg,png,svg格式的图片
      location ~ \.(gif|jpg|png|svg)$ {
        root /.../apache-tomcat-8.5.69/webapps/docs/images;
      }

    }
}

nginx匹配请求和配置文件中的前缀,首先匹配最长前缀,然后检查正则表达式,

例子3 设置一个Fast CGI代理

没有php,就算了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值