nginx学习与使用(1)

1 nginx安装与运行

1.1 安装依赖

  • PCRE: sudo apt-get install libpcre3 libpcre3-dev,编译nginx所需的pcre-devel是用PCRE开发的配置文件nginx.conf中使用正则表达式需要PCRE支持

  • zlib: sudo apt-get install zlib1g-dev,若在nginx.conf中配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量,则在编译时就必须把zlib编译进nginx

  • OpenSSL:sudo apt-get install openssl libssl-dev ,若nginx启用HTTPS 或 想使用MD5SHA1等散列函数则需要OpenSSL

1.2 安装nginx

sudo apt install nginx

以上为Ubuntu安装流程,Centos安装nginx步骤参考https://www.nginx.cn/install

文件结构大致为:

  • 配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
  • 程序文件在/usr/sbin/nginx
  • 日志放在了/var/log/nginx中
  • 并已经在/etc/init.d/下创建了启动脚本nginx
  • 默认的虚拟主机的目录设置在了/var/www/nginx-default (有的版本 默认的虚拟主机的目录设置在了/var/www, 请参考/etc/nginx/sites-available里的配置)

1.3 运行

sudo nginx

sudo /etc/init.d/nginx start

systemctl start nginx.service

打开浏览器访问机器的IP,若如下图,则安装成功

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-83PTkVYA-1601367951004)(nginx.assets/54a2a47d0001528105000169.jpg)]

1.4 停止

  • nginx -s stop 立即停止nginx

  • nginx -s quit 进程完成当前工作后再停止。

  • killall nginx 直接杀死进程,

  • systemctl stop nginx.service

其他常用命令

  • 重启systemctl restart nginx.service

  • 重新载入配置文件nginx -s reload

  • 查看端口号netstat -tlnp

2 nginx架构

在这里插入图片描述

2.1 两种进程

如上图,Nginx有两种进程,一个master进程,一种是worker进程。nginx启动时,会生成两种类型的进程,一个是主进程(Master),一个(windows版本的目前只有一个)或者多个工作进程(Worker)。

主进程不处理网络请求,主要负责调度工作进程,也就是图示的三项:加载配置、启动工作进程及非停升级。服务器实际处理网络请求及响应的是工作进程(worker)。

2.2 模块化设计

nginx的worker,包括核心和功能性模块,核心模块负责维持一个运行循环(run-loop),执行网络请求处理的不同阶段的模块功能,如网络读写、存储读写、内容传输、外出过滤,以及将请求发往上游服务器等。

2.3 反向代理

代理也被称为正向代理,是一个位于客户端和目标服务器之间的代理服务器,客户端将发送的请求和制定的目标服务器都提交给代理服务器,然后代理服务器向目标服务器发起请求,并将获得的结果返回给客户端的过程

反向代理的对象就是服务器,即代理服务代理的时服务器而不是客户端,它的作用现在是代替服务器接受请求,而不在像正向代理那样代理客户端。反向代理,主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。

3 常用配置

注:Ubuntu下配置文件路径/etc/nginx/nginx.conf

3.1 简单配置

nginx配置文件里面是由一个个配置块组成(配置块名称 {}),注:配置块的名称和左大括号之间要有空格。

例: 转载

worker_processes	1;
envents {
	work_connections	1024;
}

http {
	include	mine.types;
	default_type	application/octet-stream;
	
	sendfile	on;
	keepalive_timeout	65;
	
	server{
		listen	8080;
		server_name	localhost;
	
		location / {
			root	html;
			index	index.html	index.htm;
		}
	}
}

1 worker_processes 属性表示的是worker进程的进程数

2 events 表示对事件的配置

​ 2.1 events中worker_connections的含义是最大链接数

3 http表示对http请求的配置

​ 3.1 http中的include属性表示引入的意思,示例中表示nginx的配置文件引入了mime.types文件

​ 3.2 default_type表示请求响应的默认数据类型

​ 3.3 sendfile属性值为on表示启用sendfile,sendfile的作用是在底层拷贝数据的时候可以跳过应用,直接从内核拷贝到网卡,加快速度

​ 3.4 keepalive_timeout表示长连接的一个保活时间,一个连接请求完并不是立马销毁,通过这个属性可以等一段时间,以便下次有请求继续用

​ 3.5 server 配置块代表配置一个虚拟机,用来启动并响应

​ 3.5.1 server中的listen属性表示监听的端口,不能和其它重复

​ 3.5.2 server中server_name用来配置域名,分发请求的时候会根据访问的域名和配置的域名的对应关系分发

​ 3.5.3 server中location表示其中一个请求的地址 后面可以加斜杠、等于号等正则表达式方式匹配,其中的内容是对应的链接和页面,root表示页面所在目录

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值