您的位置:时时app平台注册网站 > 时时app平台注册网站 > Nginx学习笔记

Nginx学习笔记

2019-11-01 11:53

功能

基于《实战Nginx:取代Apache的高性能Web服务器》 2010年版本

集群

第四章 Nginx与PHP的安装、配置与优化

常见问题

  • 与IIS(80端口)冲突
    • 被System占用
      • 找到HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/HTTP下的Start修改其值为0,重启电脑即可
    • 被IIS占用
      • 停用IIS 80端口的网站
  • nginx群集
    • 如果nginx服务器挂了,那我们的站点就直接挂了,可以通过keepalived组件来搭建多台nginx服务提供服务。
  • error.log 错误日志:signal process started
    • 并非错误,只要执行-s reload就会发出

第五章 Nginx与JSP、ASP.NET、Perl的安装与配置

1.对于使用jsp的网页,一般静态页面、图片、js、css、flash等使用nginx处理,.jsp、.do的请求,由nginx反向代理Tomcat HTTP服务器处理。

图片 1image

TCP集群

  • 和http同级
stream {
    server {
        listen 1034;
        proxy_pass app;
    }

    upstream app {
        server 192.168.0.111:5672;
        server 192.168.0.112:5672;
    }
}

第二章 Nginx服务器的安装与配置

在ubuntu 16.04中安装Nginx:1.配置用户:

# 添加www组groupadd www# 创建nginx运行账户www并加入到www组,不允许www用户直接登录系统useradd -g www www -s /bin/false

2.安装依赖:

# 查看zlib是否安装dpkg -l | grep zlib# 解决依赖包openssl安装sudo apt-get install openssl libssl-dev# 解决依赖包pcre安装sudo apt-get install libpcre3 libpcre3-dev# 解决依赖包zlib安装sudo apt-get install zlib1g-dev

3.下载并解压

# 下载nginxwget http://nginx.org/download/nginx-1.13.1.tar.gz# 解压nginxtar -xzvf nginx-1.13.1.tar.gz# 重命名文件夹mv nginx-1.13.1 nginx

4.安装

# 配置nginxcd /root/nginxsudo ./configure --user=www --group=www --prefix=/root/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_realip_module --conf-path=/root/nginx/nginx.conf# 编译nginxsudo make# 安装nginxsudo make install

5.检查安装是否成功

cd /root/nginx/sbin./nginx -t 

6.启动

cd /root/nginx/sbin./nginx -c /root/nginx/conf/nginx.conf

7.停止

# 查找master进程idps -ef | gre nginx# 从容停止kill -QUIT master进程号 #快速停止kill -TERM master进程号/PID文件#强制停止kill -9 nginx

8.平滑重启

# 首先检查配置文件nginx -t# 重启nginx -HUP master进程号/PID文件

代理

server {
    listen 8080;                # 监听8080端口
    resolver 114.114.114.114;   # dns解析地址  
    location / {
        proxy_pass  $scheme://$host$request_uri; # 代理到哪个地址
        proxy_set_header Host $http_host;
        #allow 127.0.0.1;       # 允许127.0.0.1地址访问
        #deny all;              # 禁止所有地址访问(allow位置在上面,所以127.0.0.1仍能访问)
    }
}

第一章 Nginx简介

1.Nginx的优点:

  • 高并发:使用epoll和kqueue网络I/O模型,而Apache是传统的select模型。能够支持5万并发,实际2到4万。
  • 内存消耗少
  • 成本低
  • 功能强:支持rewrite重写规则等

重定向

location / {
    rewrite ^/(.*)$ http://www.xx.com/$1 permanent;
}
  • flag
    • last – 基本上都用这个Flag。
    • break – 中止Rewirte,不在继续匹配
    • redirect – 返回临时重定向的HTTP状态302
    • permanent – 返回永久重定向的HTTP状态301

第三章 Nginx的基本配置与优化

1.基本配置

  • user指定用户和组
  • worker_processes指定工作衍生进程数,一般为CPU的总核数或者两倍
  • error_log指定错误日志级别和路径
  • pid指定pid存放路径
  • worker_rlimit_nofile指定文件描述符数量
  • events指定网络模型、连接数等
  • http指定http协议、字符集、上传文件大小限制等
  • server指定服务监听端口,转发规则等

2.虚拟主机:用于在同一台机器上搭建多个网站,nginx有三种虚拟主机的方式

  • 基于IP: http-server-listen中配置不同ip
  • 基于域名:http-server-listen中配置不同server_name
  • 基于端口:http-server-listen中配置不同端口

3.nginx的日志文件与切割:在server中使用access_log配置日志路径(设置为off关闭日志),log_format指定日志格式,需要借crontab进行日志切割。

4.location下面是使用autoindex on自动列目录。

5.expire设置浏览器本地缓存。

反向代理

server {
    listen 8081;                    # 监听8080端口
    server_name  localhost;         # 虚拟hostName

    location / {
        proxy_pass   http://127.0.0.1:8081; # 反向代理到的服务器
    }
}

第六章 Nginx HTTP负载均衡和反向代理的配置与优化

1.负载均衡:多台服务器以对称方式组成一个服务器集合,每台服务器等价的承载负载。反向代理是指代理服务器接受Internet上的连接请求,然后将请求转发给内部服务器。

2.常用复杂均衡方式:

  • 手动选择
  • dns轮询
  • OSI网络名四层、七层负载均衡交换机,如F5

3.nginx负载均衡与反向代理配置,使用的是HTTP Upstream模块

  • upstream设置一组服务器
  • 通过location区分不同地址进行反向代理,proxy_pass设置进行反向代理的upstream服务器集群,proxy_set_header添加指定的Header头消息。

4.Upstream模块命令:

  • ip_hash:通过对访问ip执行hash操作确定目标服务器
  • server:用于配置服务器权重,失败重连、暂停时间,标记离线、恢复等配置
  • upstream:设定一组可以再proxy_pass指令中使用的代理服务器

HTTP集群

upstream clusterName {
    # 通过weight设置每台服务器分配请求站的权重,值越高分配的越多。
    server  127.0.0.1:9000 weight=4; 
    server  127.0.0.1:8082 weight=1; 
    # ip_hash会计算ip对应hash值,然后分配到固定服务器
    ip_hash; 
}

location / {
    proxy_pass   http://clusterName; # 反向代理到群集服务器
    # 设置主机头和客户端真实地址,以便服务器获取客户端真实IP
    proxy_set_header   Host             $host; 
    proxy_set_header   X-Real-IP        $remote_addr; 
    proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
}

第七章 Nginx的Rewrite规则与实例

1.Rewrite的主要功能是实现URL的重写,使用pcre库(Perl兼容正则表达式)。相关指令如下:

  • break:完成当前的规则集,不再处理rewrite指令
  • if:条件判断,不支持前嵌套、&&和||处理。变量比较:=和!=,正则表达式:*或者,文件存在判断-f,目录存在判断-d,文件或者目录判断-e,文件是否可执行-x。
  • return:结束规则并返回状态码给客户端
  • rewrite:根据表达式重定向URI,只对相对路径有效,要配对主机名,使用if语句。如果替换串以
  • set:设定环境变量
  • uninitialized_variable_warn:开启或者关闭未初始化变量的警告信息

2.rewrite格式:

rewrite <regex> <replacement> flag

rewrite的最后一项为flag标记,取值有:

  • last-完成rewrite;
  • break:本条匹配完成后,终止匹配;
  • redirect:302临时重定向,浏览器显示跳转后的URL;
  • permanent:返回301永久重定向,浏览器地址显示跳转后URL。last和break浏览器地址不变。

未完待续...

简介

Nginx ("engine x") 是一款轻量级,高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。
传输层的负载均衡有LVS(Linux) 和 NLB(Windows)

常用命令

  • nginx -v // nginx 版本
  • start nginx // 启动nginx,不阻塞命令窗口
  • nginx -s stop | nginx -s quit // 快速停止 | 有序退出
  • nginx -s reload // 加载配置重新启动

绑定证书

# HTTPS server
#
server {
    listen       443 ssl;
    server_name  localhost;

    ssl_certificate      /nginx/server.cer; # 公钥(一般为公钥证书   中级证书)
    ssl_certificate_key  /nginx/server.key; # 私钥

    ssl_session_cache    shared:SSL:1m;
    ssl_session_timeout  5m;

    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ALL:!ADH:!EXPORT56:RC4 RSA: HIGH: MEDIUM: LOW: SSLv2: EXP;
    ssl_prefer_server_ciphers on;
}

目录

  • 简介

  • 常用命令

  • 功能

    • 代理
    • 反向代理
    • 集群
      • HTTP集群
      • TCP集群
    • 重定向
    • 静态文件
    • HTTPS配置
  • 常见问题

静态文件

location /^(.*) {
    root   html;                    # 根目录为html文件夹
    index  $1 index.html index.htm; # $1表示正则匹配第一项
}

本文由时时app平台注册网站发布于时时app平台注册网站,转载请注明出处:Nginx学习笔记

关键词: