【Nginx】入门看这一篇就够啦,nginx 简介、安装、工作原理、工作方式、详解配置文件

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

目录

1、nginx 简介

2、nginx的工作原理

3、nginx 工作方式

4、nginx 安装

命令行安装

卸载命令

从源码构建

查看版本

测试启动

5、详解nginx配置文件

第一部分全局块

第二部分events块

第三部分http

6、hosts 文件简介


1、nginx 简介

nginx [engine x] 是 HTTP 和反向代理服务器、邮件代理服务器和通用 TCP/UDP 代理服务器。

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

在高连接并发的情况下nginx是Apache服务器不错的替代品能够支持高达50000个并发连接数的响应。

  • 使用epoll and kqueue作为开发模型。
  • nginx作为负载均衡服务器nginx既可在内部直接支持和PHP程序对外进行服务也可支持作为HTTP代理服务器对外进行服务。
  • nginx采用C进行编写不论系统资源开销还是CPU使用效率都比Perlbal要好很多。

2、nginx的工作原理

在解析配置文件时nginx的每个模块都有可能去处理某个请求但是同一个处理请求只能由一个模块来完成。

启动nginx时会启动一个Master进程这个进程不处理任何客户端的请求主要用来产生worker线程一个worker线程用来处理n个request。

3、nginx 工作方式

在工作方式上Nginx分为单工作进程和多工作进程两种模式。

  • 在单工作进程模式下除主进程外还有一个工作进程工作进程是单线程的
  • 在多工作进程模式下每个工作进程包含多个线程。

Nginx默认为单工作进程模式。

Nginx在启动后会有一个master进程和多个worker进程。

下图展示了nginx模块一次常规的HTTP请求和响应的过程

4、nginx 安装

命令行安装

nginx 的安装方式可能不同具体取决于操作系统。

本文针对ubuntu系统可以使用命令行进行安装。

sudo apt-get update
sudo apt-get install nginx
sudo systemctl status nginx.service

卸载命令

sudo apt-get –purge remove nginx

从源码构建

如果需要一些特殊功能packages和ports不可用也可以从源文件编译 nginx。虽然更灵活但这种方法对于初学者来说可能很复杂。

查看版本

nginx -v

测试启动

ps -ef | grep nginx

从上图可以看出master进程与worker进程。

查看nginx默认端口默认为80使用网页的形式测试。

localhost:80

5、详解nginx配置文件

配置文件所在位置。

cd /etc/nginx
ls

 配置文件内容

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

events {
	worker_connections 768;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}


#mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#	server {
#		listen     localhost:110;
#		protocol   pop3;
#		proxy      on;
#	}
# 
#	server {
#		listen     localhost:143;
#		protocol   imap;
#		proxy      on;
#	}
#}

第一部分全局块

从配置文件开始到 events 块之间的内容主要会设置一些影响nginx 服务器整体运行的配置指令主要包括配 置运行 Nginx 服务器的用户组、允许生成的 worker process 数进程 PID 存放路径、日志存放路径和类型以 及配置文件的引入等。

user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;

例如

worker_processes auto;

这是 Nginx 服务器并发处理服务的关键配置worker_processes 值越大可以支持的并发处理量也越多但是会受到硬件、软件等设备的制约。

第二部分events块

events 块涉及的指令主要

  • 影响 Nginx 服务器与用户的网络连接常用的设置包括是否开启对多 work process 下的网络连接进行序列化
  • 是否 允许同时接收多个网络连接
  • 选取哪种事件驱动模型来处理连接请求
  • 每个 word process 可以同时支持的最大连接数等
events {
	worker_connections 768;
	# multi_accept on;
}

上述所示表示worker proess 支持最大连接数为768。对 Nginx 的性能影响较大在实际中应该灵活配置。

第三部分http

Nginx 服务器配置中最频繁的部分代理、缓存和日志定义等绝大多数功能和第三方模块的配置都在这里。

需要注意的是http 块也可以包括 http全局块、server 块。

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# SSL Settings
	##

	ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
	ssl_prefer_server_ciphers on;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

6、hosts 文件简介

hosts 是一个没有扩展名文件作用是保存一些IP地址和域名的对应的文件。

  • 在 Windows 系统中该文件的路径为C:\Windows\System32\drivers\etc

  •  在linux系统中该文件的路径是/etc/hosts

sudo gedit hosts

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: nginx

“【Nginx】入门看这一篇就够啦,nginx 简介、安装、工作原理、工作方式、详解配置文件” 的相关文章