热门标签 | 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网站的架构层次。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文讨论了在手机移动端如何使用HTML5和JavaScript实现视频上传并压缩视频质量,或者降低手机摄像头拍摄质量的问题。作者指出HTML5和JavaScript无法直接压缩视频,只能通过将视频传送到服务器端由后端进行压缩。对于控制相机拍摄质量,只有使用JAVA编写Android客户端才能实现压缩。此外,作者还解释了在交作业时使用zip格式压缩包导致CSS文件和图片音乐丢失的原因,并提供了解决方法。最后,作者还介绍了一个用于处理图片的类,可以实现图片剪裁处理和生成缩略图的功能。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 本文介绍了Redis中RDB文件和AOF文件的保存和还原机制。RDB文件用于保存和还原Redis服务器所有数据库中的键值对数据,SAVE命令和BGSAVE命令分别用于阻塞服务器和由子进程执行保存操作。同时执行SAVE命令和BGSAVE命令,以及同时执行两个BGSAVE命令都会产生竞争条件。服务器会保存所有用save选项设置的保存条件,当满足任意一个保存条件时,服务器会自动执行BGSAVE命令。此外,还介绍了RDB文件和AOF文件在操作方面的冲突以及同时执行大量磁盘写入操作的不良影响。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文介绍了在Windows系统下安装Python、setuptools、pip和virtualenv的步骤,以及安装过程中需要注意的事项。详细介绍了Python2.7.4和Python3.3.2的安装路径,以及如何使用easy_install安装setuptools。同时提醒用户在安装完setuptools后,需要继续安装pip,并注意不要将Python的目录添加到系统的环境变量中。最后,还介绍了通过下载ez_setup.py来安装setuptools的方法。 ... [详细]
  • 深入理解Java虚拟机的并发编程与性能优化
    本文主要介绍了Java内存模型与线程的相关概念,探讨了并发编程在服务端应用中的重要性。同时,介绍了Java语言和虚拟机提供的工具,帮助开发人员处理并发方面的问题,提高程序的并发能力和性能优化。文章指出,充分利用计算机处理器的能力和协调线程之间的并发操作是提高服务端程序性能的关键。 ... [详细]
  • linux clickhouse安装在指定目录_Centos8服务器指定目录安装配置Nginx
    1.安装前准备(1)检查是否安装过nginx(如果没有安装过可以无视)find-namenginx搜索nginx文件及其文件夹rm-rf【nginx配置地址文件及其文件夹】手动删除 ... [详细]
  • OSI七层模型、TCP/IP五层模型
    OSI网络互连的七层框架:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层;应用层OSI参考模型中最靠近用户的一层,是为计算机用户提供应用接口,为用户直接提供各种网 ... [详细]
  • 2016年8月29日当初想的太简单~~~哎写在前面从3月份开始各大互联网类、游戏类、软件类等公司开始招暑期实习,9月份正式招聘,面临众多的工作选择和技术方向,我们不免有些眼花缭乱啊 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 前端性能优化无损压缩webp格式的图片
    一、什么是webpWebP格式,谷歌开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的23,并能节省大量的服务器宽带资源和数据空 ... [详细]
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社区 版权所有