首页 > 系统相关 >【Linux】循序渐进学运维-服务篇-nginx入门

【Linux】循序渐进学运维-服务篇-nginx入门

时间:2023-04-06 18:04:55浏览次数:44  
标签:学运 00 1.12 nginx gaosh Linux apache root


文章目录

  • nginx 介绍
  • nginx最新版本号
  • nginx与apache的对比
  • 1、nginx相对于apache的优点:
  • 2. apache 相对于nginx 的优点:
  • 编译安装nginx
  • 1. 安装依赖包
  • 2. 下载nginx包
  • 3. 解压安装
  • a.解压
  • b. 编译 && 编译安装
  • c. 启动
  • d. 查看是否启动
  • nginx的目录结构
  • 主要的配置参数

nginx 介绍

Nginx (engine x) 是一个轻量的,高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫所研发,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,Nginx 1.0.4发布。

其特点是占有内存少,并发能力强, nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。

在高连接并发的情况下,Nginx是Apache服务器不错的替代品。

[root@gaosh-1 nginx]# curl -I  www.zmkjedu.com
HTTP/1.1 200 OK
Date: Thu, 30 Jul 2020 14:28:24 GMT
Server: Apache/2.4.16 (Unix) OpenSSL/1.0.2k-fips PHP/7.3.6
X-Powered-By: PHP/7.3.6
Link: <https://www.zmkjedu.com/index.php/wp-json/>; rel="https://api.w.org/"
Content-Type: text/html; charset=UTF-8

[root@gaosh-1 nginx]# curl -I  www.taobao.com
HTTP/1.1 301 Moved Permanently
Server: Tengine
Date: Thu, 30 Jul 2020 14:29:01 GMT
Content-Type: text/html
Content-Length: 278
Connection: keep-alive
Location: https://www.taobao.com/
Via: cache4.cn1003[,0]
Timing-Allow-Origin: *
EagleId: b7cb179815961193410258113e

Tengine:
Tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网、天猫商城等得到了很好的检验。(可以这样理解:淘宝网拿到了Nginx源代码之后,进行了功能的填充、优化等等,然后提交给Nginx官方,但是由于Nginx官方相应慢甚至不响应,加上语言沟通的不顺畅,于是淘宝公司就自己打包,在遵循GPL的原则上进行二次开发,于是就出了现在的Tengine这个版本)。

官网网站:http://tengine.taobao.org/

nginx最新版本号

网址: http://nginx.org/

【Linux】循序渐进学运维-服务篇-nginx入门_nginx

nginx与apache的对比

我们前面的n多篇文章其实都是在使用apache,那么apache有nginx有什么区别呢?

1、nginx相对于apache的优点:
  • 轻量级,同样起web 服务,比apache 占用更少的内存及资源
  • 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能
  • 高度模块化的设计,编写模块相对简单
  • 社区活跃,各种高性能模块出品迅速
  • 高并发场景下,nginx可以支持50000个并发连接数的响应
  • nginx适合做静态和反向代理
2. apache 相对于nginx 的优点:
  • rewrite功能 ,比nginx 的rewrite 强大
  • 模块超多,基本想到的都可以找到
  • 少bug ,nginx 的bug 相对较多
  • apache处理动态请求能力比nginx好

但nginx的缺点是只支持http,https,mail协议,对后端的健康检查只能通过端口来检测,不支持通过url检测,不支持session直接保持。

编译安装nginx

1. 安装依赖包

[root@gaosh-1 ~]# yum -y install gcc gcc-c++ pcre-devel openssl-devel wget

2. 下载nginx包

[root@gaosh-1 ~]# wget http://nginx.org/download/nginx-1.12.2.tar.gz

3. 解压安装
a.解压
[root@gaosh-1 ~]# tar xf nginx-1.12.2.tar.gz 
[root@gaosh-1 ~]# cd nginx-1.12.2

[root@gaosh-1 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx   ##环境检测
b. 编译 && 编译安装

[root@gaosh-1 nginx-1.12.2]# make && make install

c. 启动
[root@gaosh-1 nginx-1.12.2]# ln -sv /usr/local/nginx/sbin/nginx /usr/bin/nginx
"/usr/bin/nginx" -> "/usr/local/nginx/sbin/nginx"     ##做软链接设置启动命令
[root@gaosh-1 nginx-1.12.2]# nginx  ## 启动
[root@gaosh-1 nginx-1.12.2]# nginx -t  ## 检查配置文件的语法
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@gaosh-1 nginx-1.12.2]#
d. 查看是否启动
[root@gaosh-1 nginx-1.12.2]# ps -ef |grep nginx   ## 查看进程
root      47664      1  0 21:16 ?        00:00:00 nginx: master process nginx
nobody    47665  47664  0 21:16 ?        00:00:00 nginx: worker process
root      47670  45168  0 21:17 pts/2    00:00:00 grep nginx
[root@gaosh-1 nginx-1.12.2]# 

[root@gaosh-1 nginx-1.12.2]# nginx -s stop   ## 关闭nginx
[root@gaosh-1 nginx-1.12.2]# ps -ef |grep nginx
root      47675  45168  0 21:18 pts/2    00:00:00 grep nginx
[root@gaosh-1 nginx-1.12.2]# 
[root@gaosh-1 nginx-1.12.2]# nginx   ## 启动nginx
[root@gaosh-1 nginx-1.12.2]# nginx -s reload   ## 重新加载配置文件
[root@gaosh-1 nginx-1.12.2]#

nginx的目录结构

```objectivec
[root@gaosh-1 nginx-1.12.2]# cd /usr/local/nginx/
[root@gaosh-1 nginx]# ls
client_body_temp  conf  fastcgi_temp  html  logs  proxy_temp  sbin  scgi_temp  uwsgi_temp

【Linux】循序渐进学运维-服务篇-nginx入门_循序渐进学运维_02

主要的配置参数

[root@ gaosh-01 ~]# cat /usr/local/nginx/conf/nginx.conf

(1)user  nginx;  #配置运行nginx的用户
(2)worker_processes  2; #初始的子进程数量
(3)worker_connections  1024; #配置单个进程处理的最大请求连接数
(4)server{  #配置虚拟主机
(5)listen	#配置虚拟主机监听端口
(6)server_name #配置服务器域名
(7)location  匹配规则 { }   #配置匹配特定的url
(8)root   #配置网站根目录
(9)index  #配置虚拟主机的默认首页
(10)error_page  404              /404.html; 
#解释:当出现404的时候,要重定向到网站根目录下的404.html页面
}

location匹配规则

=

开头表示精确匹配

^~

开头表示 uri 以某个常规字符串开头,理解为匹配 url 路径即可。nginx 不对 url 做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)

~

开头表示区分大小写的正则匹配

~*

开头表示不区分大小写的正则匹配

/

通用匹配,任何请求都会匹配到


标签:学运,00,1.12,nginx,gaosh,Linux,apache,root
From: https://blog.51cto.com/zmedu/6173924

相关文章

  • 【Linux】wordpress后台设置
    文章目录一.个人资料1.点击右上角的个人名称:选中编辑我的个人资料2.按下图进行修改二.设置--常规选项三.文章分类一.个人资料1.点击右上角的个人名称:选中编辑我的个人资料2.按下图进行修改二.设置–常规选项三.文章分类登陆后台-文章-分类目录Linux基础,web应用,中间件,数......
  • 【Linux】apache服务相关概念及安装
    文章目录web服务概述什么是apachehttpd工作模型apache的安装及应用1.apache的安装2.启动:3.设置开机启动:4.查看httpd的进程及端口号httpd的程序环境查看运行情况方法1:浏览器输入IP,可以查看到已经运行方法2:elinks命令测试总结web服务概述WEB服务器也称为WWW(WORLDWIDEWEB,万......
  • Linux下使用rm删除文件,并排除指定文件
    rm是我们在Linux下删除文件经常用到的命令,但是有时候我们目录下有很多个文件想要删除,偏偏却要保留其中1个或几个文件,那怎么办呢?很多新手朋友可能会采取一个一个文件删除的方法来操作,但是如果文件很多呢?删到啥时候啊~~ 今天我们就来教大家使用rm命令删除文件的时候如何排除指定......
  • Linux - vi & vim 编辑器
    vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正确性,方便程序设计。vim是从vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。   基本上vi/vim共分为三种模式,分别是命令模式、输入模式和(不想写了,访问:htt......
  • Linux系统介绍
    什么是Linux?可以运行在PC机上类似于Unix风格的操作系统,由众多程序员通过Internet协作开发Linux是开源的开源好处:自由软件——使用自由、研究自由、散布自由、改良自由Linux系统结构:Linux操作系统由内核及应用程序组成。不同的厂商根据各自的需要将各种应用软件和Linux内核一起打包......
  • 【webserver 前置知识 03】Linux网络编程入门其二,I/O多路复用
    I/O多路复用I/O多路复用使得程序能够同时监听多个文件描述符LInux下实现I/O多路复用的系统调用主要由select、poll以及epoll(常问,要会自己写出来)例子阻塞等待阻塞等待可以一定程度上提高程序运行的效率优点是:不占用cpu的时间片;缺点是:同一时刻只能处理一个操作,效率较低;使用......
  • Linux系统与应用.复习题
    选择题用户编写了一个文本文件a.txt,想将该文件名称改为txt.a,下列命令D可以实现。A.cda.txtxt.aB.echoa.txt>txt.aC.rma.txttxt.aD.cata.txt>txt.aLinux文件权限一共10位长度,分成四段,第三段表示的内容是C。A.文件类型......
  • 基于 Nginx&Lua 实现自建服务端埋点系统
    前言埋点数据一般取决于服务提供商想从用户身上获取什么信息。通常来讲,主要分为用户的基本属性信息和行为信息。用户的基本属性信息主要包括:年龄、性别、设备等。行为信息即用户的点击行为和浏览行为,在什么时间,哪个用户点击了哪个按钮,浏览了哪个页面,浏览时长等等的数据。基本属......
  • Linux下安装MySQL
    0准备工作yum换源:https://www.cnblogs.com/lgjb/p/17293111.html1下载yumRepositorywget-i-chttp://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm2安装yumRepositoryyum-yinstallmysql57-community-release-el7-10.noarch.rpm3安装mysql5.......
  • Linux下安装Java
    1检查当前系统中是否已安装JDK查看Java版本:java-version检测系统JDK默认安装包:rpm-aq|grepjava2、卸载OpenJDK,若未检测出jdk则跳过yumremove*openjdk*3安装JDK3.1选择到jdk官网上下载你想要的jdk版本。下载地址:https://www.oracle.com/java/technologies/do......