1、nginx基本概念

(1)nginx是什么,做什么事情?
nginx(“engine x”)是一个高性能的HTTP和反向代理服务器,特点是占用内存小,并发能力强。nginx专为性能优化而开发,能够经受高负载的考验。

(2)反向代理
要理解,反向代理首先理解正向代理,所谓正向代理就是在客户端配置代理服务器,通过代理服务器访问网址。
反向代理,客户端无需任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器选择目标服务器获取数据后,再返回给客户端,
此时反向代理服务器和目标服务器对外就是一个服务器,暴露的就是代理服务器的地址,隐藏了真实服务器的IP地址。
(3)负载均衡
随着当访问量和数据量飞速增长,传统的客户端访问服务器的流程已经不再使用。当并发量特别大时会造成服务器宕机。
这个时候集群的概念就产生了,我们可以增加服务器数量,然后将请求分发给各个服务器,将原先请求集中到单个服务器的情况改为分发到多个服务器上,
将负载分发到不同的服务器也就是我们所说的负载均衡。
(4)动静分离
为了加快网站的解析速度,可以把静态资源和动态资源请求分发到不同的服务器,加快解析速度,降低原来单个服务器的压力。

2、nginx的安装、常用命令和配置文件

(1)在Linux系统中安装nginx

2.1安装pcre依赖

https://sourceforge.net/projects/pcre/files/pcre/8.37/pcre-8.37.tar.gz/download 下载pcre-8.37.tar.gz,
http://nginx.org/download/nginx-1.12.2.tar.gz下载nginx-1.12.2.tar.gz并上传到服务器

  • 解压 tar -xvf pcre-8.37.tar.gz
  • 进入解压后的目录,执行./configure
  • 使用make && make install ,这里遇到一个问题,configure: error: You need a C++ compiler for C++ support.
  • 先安装c++编译器 yum install -y gcc gcc-c++,重新./configure,没问题后
  • 使用make && make install 安装
  • pcre-config --version 查看版本号

2.2安装其他的依赖

yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel

2.3安装nginx

  • 解压tar -xvf nginx-1.12.2.tar.gz

  • 进入解压后的目录,执行./configure

  • make && make install

  • 安装成功后 在usr多出一个文件夹/local/nginx,里面有一个sbin的启动脚本

  • 进入cd /usr/local/nginx/sbin
    *./nginx启动nginx

  • 进入conf目录,这里有一个nginx.conf文件

    可以通过localhost 即服务器地址,访问

  • 查看开放端口号 firewall-cmd --list-all

  • 设置开放端口号 sudo firewall-cmd --add-service=http -permanent

  • 查看防火墙 状态systemctl status firewalld

  • 开启防火墙systemctl start firewalld

  • 关闭防火墙systemctl stop firewalld

  • 重加载防火墙firewall-cmd --reload

(2)nginx常用命令
需要进入sbin目录才行

  • 查看nginx版本号 ./nginx -version
  • 关闭nginx ./nginx -s stop
  • 启动nginx ./nginx
  • 重加载nginx,比如改了nginx.conf 无需重启 ./nginx -s reload

2、nginx配置文件

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/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  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;server {listen       80;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;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;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {#    proxy_pass   http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

主要由三部分组成

全局块
从配置文件到events块之间的内容,主要设置一些影响nginx服务器整体运行的配置指令
events块
涉及的指令主要影响Nginx服务器与用户的网络链接
http块
最频繁的配置部分,包括http全局块、server块

3、nginx配置实例1-反向代理

实现效果

浏览器访问www.baidu.com,跳转到linux系统中的tomcat主页面。

访问过程分析


  • 修改nginx.conf文件
  • 效果演示
    使用以下网址
http://www.baidu.com

会跳转到服务器的8080端口即

http://127.0.0.1:80808

实现效果

访问http://127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8080
访问http://127.0.0.1:9001/org/ 直接跳转到127.0.0.1:8081
准备两个tomcat服务器,修改一下第二个tomcat的配置文件server.xml
访问过程分析


server {listen 9001;server_name localhost;location ~ /edu/ {proxy_pass http://localhost:8080;}location ~ /org/ {proxy_pass http://localhost:8081;}
}

4、nginx配置实例2-负载均衡

#加上负载均衡服务列表
upstream myserver{server localhost:8080 server localhost:8081
}server {listen 80;server_name localhost;location ~ /edu/ {proxy_pass http://myserver;root html;index index.html index.htm;}
}

nginx服务器分配策略

  • 1、轮询,每个服务器按时间顺序逐一分配到不同的服务器
  • 2、权重
  • 3、ip_hash 根据访问者ip分配,
  • 4、fair 按后端服务器响应时间分配,谁的响应时间短给谁分配

5、nginx配置实例3-动静分离

server {listen 80;server_name localhost;location ~ /www/ {root    /data/;index index.html index.htm;}location ~ /image/ {root    /data/;autoindex on;}
}

6、nginx配置实例4-高可用集群

  • 准备工作,需要在两个服务器上都装上nginx,作为主从nginx服务器;在两台服务器上都装上keepalived
  • yum install keepalived -y
  • 安装完成后,在etc里生成目录keepalived 有配置文件keepalived.conf

7、nginx原理

7、nginx原理

nginx学习笔记01相关推荐

  1. Docker学习笔记01

    Docker学习笔记01 Docker学习 Docker的概述 Docker的安装 Docker的命令 镜像命令 容器命令 操作命令 ... Docker镜像 容器数据卷 DockerFile Doc ...

  2. nginx 学习笔记(2) nginx新手入门

    这篇手册简单介绍了nginx,并提供了一些可以操作的简单的工作.前提是nginx已经被安装到你的服务器上.如果没有安装,请阅读上篇:nginx 学习笔记(1) nginx安装.这篇手册主要内容:1. ...

  3. JavaWeb黑马旅游网-学习笔记01【准备工作】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb黑马旅游网-学习笔记01[准备工作] JavaWeb黑马旅游网-学习笔记02[注册功能] JavaWeb黑马旅游网-学习笔记03[登陆和 ...

  4. JavaWeb-综合案例(用户信息)-学习笔记01【列表查询】

    Java后端 学习路线 笔记汇总表[黑马程序员] JavaWeb-综合案例(用户信息)-学习笔记01[列表查询] JavaWeb-综合案例(用户信息)-学习笔记02[登录功能] JavaWeb-综合案 ...

  5. Servlet和HTTP请求协议-学习笔记01【Servlet_快速入门-生命周期方法、Servlet_3.0注解配置、IDEA与tomcat相关配置】

    Java后端 学习路线 笔记汇总表[黑马程序员] Servlet和HTTP请求协议-学习笔记01[Servlet_快速入门-生命周期方法.Servlet_3.0注解配置.IDEA与tomcat相关配置 ...

  6. Tomcat学习笔记01【Web相关概念、Tomcat基本操作】

    Java后端 学习路线 笔记汇总表[黑马程序员] Tomcat学习笔记01[Web相关概念.Tomcat基本操作][day01] Tomcat学习笔记02[Tomcat部署项目][day01] 目录 ...

  7. XML学习笔记01【xml_基础、xml_约束】

    Java后端 学习路线 笔记汇总表[黑马程序员] XML学习笔记01[xml_基础.xml_约束][day01] XML学习笔记02[xml_解析][day01] 目录 01 xml_基础 今日内容 ...

  8. Bootstrap学习笔记01【快速入门、栅格布局】

    Java后端 学习路线 笔记汇总表[黑马程序员] Bootstrap学习笔记01[快速入门.栅格布局][day01] Bootstrap学习笔记02[全局CSS样式.组件和插件.案例_黑马旅游网][d ...

  9. JavaScript学习笔记01【基础——简介、基础语法、运算符、特殊语法、流程控制语句】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  10. HTML/CSS学习笔记01【概念介绍、基本标签】

    w3cschool菜鸟教程.CHM(腾讯微云):https://share.weiyun.com/c1FaX6ZD HTML/CSS学习笔记01[概念介绍.基本标签.表单标签][day01] HTML ...

最新文章

  1. 入门到放弃node系列之网络模块(二)
  2. 【Android 高性能音频】AAudio 状态机 ( 创建 | 打开 Open | 开始 Started | 暂停 Paused | 刷写 Flushed | 停止 Stopped | 关闭 )
  3. 艾瑞发布2018视频云行业报告,网易云信领跑第一阵营
  4. 创建javascript对象的几种方式
  5. facebook 邀请好友_如何查看紧急情况下您的Facebook朋友是否安全
  6. 25 CO配置-控制-产品成本控制-成本对象控制-期末结算-定义利润分析码
  7. python unicodeencodeerror_Python发起请求提示UnicodeEncodeError错误代码解决方法
  8. 9 | Spatial-based GNN/convolution模型之GIN
  9. Oracle:grouping和rollup
  10. jmeter 分布式注意事项
  11. 【Java 随机数游戏】
  12. 【小型系统】简单的刷票系统(突破IP限制进行投票)
  13. DeepinXP Lite 完美精简版 |5.2|5.3|5.4|5.5|5.6|5.7|5.8|5.9|5.10||6.1New| 迅雷下载
  14. 笔记本无法启用免费wifi
  15. Halcon 3D create_pose
  16. 《招标投标法》和《招标投标实施条例》有什么关系?
  17. 如何制定新年节假日ASO搜索优化策略
  18. 有关心理暗示的自我剖析
  19. java 表达式 日期加减_jdk8获取当前时间|时间加减|java8时间格式化|时间处理工具|时间比较|线程安全的时间处理方法...
  20. 【算法-0】排序算法-双向冒泡排序(也称鸡尾酒排序、搅拌排序),附python代码+注释

热门文章

  1. 四川的软考成绩终于出来了
  2. FLASH缓动导航制作方法.
  3. 凸优化第二章凸集 2.6 对偶锥与广义不等式
  4. 将ibatis.net中定义的statement转换为实际的sql语句
  5. 项目中关于IFRAME引发的问题【出现率很高】
  6. ArcGIS 后台服务器抛出异常
  7. 安装conntrack-tools
  8. Go语言之进阶篇请求报文格式分析
  9. Java ConcurrentModificationException 异常分析与解决方案
  10. ClassPathResource详解