热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Nginx安装及基础知识

Nginx安装及基础知识Nginx安装Nginx基础命令Nginx配置文件Nginx配置实例一、反向代理二、反向代理(2)三、负载均衡四、动静分离五、高

Nginx安装及基础知识

  • Nginx安装
  • Nginx基础命令
  • Nginx配置文件
  • Nginx配置实例
    • 一、反向代理
    • 二、反向代理(2)
    • 三、负载均衡
    • 四、动静分离
    • 五、高可用集群
    • 六、Nginx并发计算



Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。

专为性能优化而开发,支持5万个并发连接数。

正向代理: 在浏览器端进行配置,然后访问目标端的方式。经过代理服务器然后访问目标端,访问端口为目标端实际端口号。
反向代理: 不需要在浏览器端(客户端)进行任何配置,经过反向代理服务器访问目标端的方式。注:配置信息在反向代理服务器中,对外暴露端口非目标端实际端口号。
负载均衡: 客户端发送多个请求到服务器,由代理服务端对请求进行分发,分发到不同的服务器上。
动静分离: 将动态页面和静态页面由不同的服务器来解析,加快解析速度,降低单个服务器的压力。静态资源:html、css、js 动态资源:jsp、servlet


Nginx安装

yum安装:

yum install -y nginx

安装包安装(推荐):

  1. 安装依赖:pcre-8.37.tar.gz、openssl-1.0.1t.tar.gz、zlib-1.2.8.tar.gz、gcc-c++-4.8.5-4.tar.gz

yum install gcc-c++ #安装C++编译环境
yum install pcre pcre-devel #正则表达式库
yum install zlib zlib-devel #数据压缩
yum install openssl openssl-devel #密码库

  1. 下载nginx
    nginx下载路径:http://nginx.org/en/download.html
  2. 安装nginx

tar -zxvf nginx-1.16.1.tar.gz
cd nginx-1.16.1/
./configure
make && make install
./nginx -v

  1. 端口设置

查看开放的端口号

firewall-cmd --list-all

设置开放的端口号

firewall-cmd -add-service=http --permanent
Sodu firewall-cmd –add-port=80/tcp –permanent

重启防火墙

firewall-cmd –reload

Nginx基础命令

进入nginx的目录中执行命令
1.查看版本

./nginx –v

2.启动nginx

./nginx

3.关闭nginx

./nginx –s stop

4.重新加载

./nginx –s reload

Nginx配置文件

位置:/usr/local/nginx/conf/nginx.conf或/etc/nginx/nginx.conf
配置文件组成(三部分)

  1. 全局块
    从配置文件开始到events块之间的内容,主要会设置一些影响nginx服务器整体运行的配置命令。

worker_processes 1; 值越大,可支持的并发处理量也越多。

  1. events块
    涉及的指令主要影响nginx服务器与用户的网络连接

events {worker_connections 1024;
}

  • 支持的最大连接数。

  1. http块

  • a) http全局块
  • b) server块
    • i. 全局server
    • ii. Location

Nginx配置实例

一、反向代理

配置一个tomcat环境

  1. 在host文件中添加内容
    Windows:C:\Windows\System32\drivers\etc\hosts
    Linux:/etc/hosts

192.168.10.10 www.nginx.com

  1. 在nginx.conf修改http块下的server块下的全局server中。

listen 80;
server_name localhost; # localhost改为代理IP – 192.168.10.10location / { proxy_pass http://127.0.0.1:8080; # 添加目标服务器网址root html;index index.html index.htm;}

  1. 测试
    浏览器访问www.nginx.com,跳转到http://127.0.0.1:8080
    切记端口一定要放开,我已然放了这个错误,嘿嘿。

二、反向代理(2)


  1. 准备
    两个tomcat,一个8080,一个8081端口。
    两个tomcat下分别建不同的页面,以便测试。
    通过不同的地址,访问不同的tomcat。
    监听9001,然后到不同的页面中去。
  2. 配置nginx.conf
    在nginx.conf修改http块下的server块下的全局server中。

listen 9001; # 监听端口
server_name localhost; # localhost改为代理IP – 192.168.10.10
# 下面采用正则表达式写法
location ~ /edu/ {proxy_pass http://www.nginx.com:8080;
}
location ~ /vod/ {proxy_pass http://www.nginx.com:8081;
}

  1. 测试
  2. 补充
    格式:

location [=|~|~*|^~] {...
}

a) = 用于不含正则表达式的url前,要求请求字符串与url严格匹配。
b) ~ 用于表示url包含正则表达式,且区分大小写。
c) ~*用于表示url包含正则表达式,且不区分大小写。
d) ^~用于包含正则表达式的url前,要求nginx服务器找到标识url和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则url和请求字符串作匹配。


三、负载均衡


  1. 准备两个服务。
  2. 配置nginx.conf
    在nginx.conf修改http块下的server块下的全局server中。

http {
……upstream myserver{ip_hash;server 192.168.20.21:8080 weight=1;server 192.168.20.22:8081 weight=1;#fair; # 此行注释,只表明格式}……server {location / {listen server_name proxy_pass http://myserver;proxy_connect_timeout 10;}}
}

  1. 策略(参考2的格式)

a) 轮询(默认)
b) Weight(权重,默认值1,值越高,分配的用户越多)
c) Ip_hash(同访问下,第一次访问某个IP,之后便一直访问某个IP)
d) fair(根据后端服务器的响应时间来分配,响应短的优先分配)


四、动静分离


  1. 什么是动静分离

把动态请求和静态请求分离开来。
a) 纯粹把静态文件独立成单独的域名,放在独立的服务器上。
b) 把动态和静态文件混合在一起发布,通过nginx来分开。


  1. 准备
    在系统中准备一些静态资源
  2. 配置nginx.conf

listen 90; # 修改端口
server_name 192.168.20.29; # 改为代理IP
# 下面采用正则表达式写法
location /www/ {root /data/;index index.html index.htm;
}
location /image/ {root /data/;autoindex on;
}

  1. 测试
    访问192.168.17.129/image/a.jgp
    访问192.168.17.129/www/a.html
  2. 另有参数,还需补充

五、高可用集群

在这里插入图片描述

  1. 准备
    需要两台服务器192.168.17.129和192.168.17.131
    分别安装nginx
    在两台服务器安装keepalived
    可以使用压缩包解压缩安装:

# 下载keepalived地址:
# http://www.keepalived.org/download.html
# 解压安装:
tar -zxvf keepalived-1.2.18.tar.gz -C /usr/local/
yum install -yopensslopenssl-devel #需要安装一个软件包
cd keepalived-1.2.18/ && ./configure --prefix=/usr/local/keepalived
make && make install

也可以使用yum命令直接安装(此次使用):

yum install keepalived -y

  1. 配置keepalived.conf文件
    /etc/keepalived/keepalived.conf
    需要在两台nginx服务器上都安装keepalived,文件内容配置Keepalived
  2. 启动主从服务器
    启动nginx:./nginx
    启动keepalived:systemctl start keepalived
  3. 访问测试
    两台同启测试,一台故障测试。

六、Nginx并发计算


最大并发数计算:
静态访问:每个worker的最大连接数*worker数/2
反向代理:每个worker的最大连接数*worker数/4


推荐阅读
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • SQL Server 内存中OLTP内部机制概述(一)
    内存中OLTP(项目名为“Hekaton”)是一个新的完全集成到SQLServer中的数据库引擎组件。它专为访问内存常驻数据的OLTP工作负荷而进行优化。内存中OLTP有助于OLT ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 本文介绍了在Python中使用zlib模块进行字符串的压缩与解压缩的方法,并探讨了其在内存优化方面的应用。通过压缩存储URL等长字符串,可以大大降低内存消耗,虽然处理时间会增加,但是整体效果显著。同时,给出了参考链接,供进一步学习和应用。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • 本文介绍了OkHttp3的基本使用和特性,包括支持HTTP/2、连接池、GZIP压缩、缓存等功能。同时还提到了OkHttp3的适用平台和源码阅读计划。文章还介绍了OkHttp3的请求/响应API的设计和使用方式,包括阻塞式的同步请求和带回调的异步请求。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 本文介绍了Android中的assets目录和raw目录的共同点和区别,包括获取资源的方法、目录结构的限制以及列出资源的能力。同时,还解释了raw目录中资源文件生成的ID,并说明了这些目录的使用方法。 ... [详细]
  • 如何方便地退订邮件列表,避免混乱和烦恼
    本文介绍了如何方便地退订邮件列表,避免混乱和烦恼。文章指出,退订邮件列表可能会造成混乱,特别是当被意外添加到列表中时。为了快速、轻松地取消订阅,建议不要将退订电子邮件发送到用于发布消息的电子邮件地址。文章还介绍了邮件列表由邮件列表软件控制,作为邮件列表成员,可以对该软件进行一些用户控制。一些邮件列表允许使用自动电子邮件地址退订,但这可能会带来一些混乱。最后,文章提到退订邮件列表需要向电子邮件服务器发送特殊命令来脱离列表。 ... [详细]
  • centos6.8 下nginx1.10 安装 ... [详细]
author-avatar
赤血-魔鬼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有