首页 > 编程知识 正文

上传文件到nginx服务器,linux搭建nginx服务器

时间:2023-05-04 18:59:52 阅读:269867 作者:1325

nginx服务器

Nginx服务器(engine-X),是一种web服务器。它是一种开源的高性能HTTP和反向代理服务器。 它也可提供IMAP/POP3/SMTP代理服务等功能。

Nginx是以多进程的方式来工作的。也支持多线程的方式,只是主流的方式还是多进程的方式,也是Nginx的默认方式。

Nginx启动后,它在Unix系统中会以daemon的方式在后台运行,后台进程包含一个master进程和多个worker进程。

master进程主要用来管理worker进程,包含:接收来自外界的信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程退出后(异常情况下),会自动重新启动新的worker进程。

而基本的网络事件,则是放在worker进程中来处理了。多个worker进程之间是对等的,他们同等竞争来自客户端的请求,各进程互相之间是独立的。

一个请求,只可能在一个worker进程中处理,一个worker进程,不可能处理其它进程的请求。worker进程的个数是可以设置的,一般我们会设置与机器cpu核数一致。

优点

高并发连接

官方测试能支撑5万并发连接,在实际生产环境中跑到2~3万并发连接数。Nginx服务器专为性能优化而开发。它支持内核Poll模型,能经受高负载的考验。

内存消耗少

Nginx服务器采取了分阶段资源分配技术,这使得它的CPU与内存占用率非常低。

配置文件简单

成本低 : Nginx服务器是开源软件。

支持Rewrite重写规则

能根据域名、URL的不同,将 HTTP 请求分到不同的后端服务器群组。

内置的健康检查功能.

若 Nginx服务器 Proxy 后端的某台 Web 服务器宕机,不会影响前端访问。

节省带宽.

支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。

稳定性高.

Nginx服务器的稳定性很高。其它HTTP服务器在遇到访问峰值,或有人恶意发起慢速连接时,很可能会导致服务器物理内存耗尽,频繁交换,失去响应(只能重启服务器)。

另外, Nginx服务器采用master-slave模型,能充分利用SMP的优势,且能减少工作进程在磁盘I/O的阻塞延迟。

Nginx服务器代码质量很高,很规范, 模块扩展也很容易。Nginx服务器采用了一些os提供的最新特性如对sendfile (Linux2.2+),accept-filter(FreeBSD4.1+),TCP_DEFER_ACCEPT (Linux 2.4+)的支持,从而大大提高了性能。

Nginx和Apache的区别

相同点:

都是HTTP服务器软件;

功能实现上都采用模块化结构设计;

都支持通用的语言接口(如PHP、Perl、Python);

都支持正、反向代理,虚拟主机,URL重写,压缩传输,SSL加密传输等;

差别:

Apache处理速度较慢,且占用很多内存资源,而Nginx服务器却相反;

在功能实现上,Apache的所有模块都支持动、静态编译,而Nginx服务器模块都是静态编译的;

在处理连接方式上,Nginx支持epoll,而Apache不支持;

Nginx服务器安装包很小,只有几百KB;

安装Nginx Linux下yum安装

产生yum配置文件/etc/yum.repos.d/nginx.repo

编写如下内容:

[nginx]name=nginx repobaseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/gpgcheck=0enabled=1

其中OS可以选择:“rhel” or “centos”

OSRELEASE,选择6,或者7即可。

yum install nginx就可以安装了。

Linux下源码安装

Nginx有模块依赖性,需要依赖下面3个包,才能源码编译安装。

gzip 模块需要zlib库

rewrite 模块需要pcre库

ssl 功能需要openssl库

Nginx的配置文件结构

nginx.conf由多个块组成。最外面的一块是main,main包含events和http,http包含多个upstream和多个server,server又包含多个location块:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nQ7XTcC0-1600152737806)(file:///C:UsersjohnAppDataLocalTempksohtmlwps8D17.tmp.jpg)]

main(全局设置)、server(虚拟主机设置)、upstream(负载均衡服务器设置)和 location(URL匹配特定位置的设置)。

Ø main块设置的指令将影响其他所有设置;

Ø server块的指令主要用于指定主机和端口,以及网站路径;

Ø upstream指令主要用于负载均衡,设置一系列的后端服务器;

Ø location块用于匹配网页位置;

这四者之间的关系:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。

Nginx的全局配置 #指定使用的用户和组 #user nginx nginx; #启动进程,通常设置成和cpu的数量相等 worker_processes 1; #全局错误日志 #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #PID文件--存放进程号的文件 #pid logs/nginx.pid; events配置 #工作模式及连接数上限 events { #单个后台worker process进程的最大并发链接数 worker_connections 1024; #并发总数是 worker_processes 和 worker_connections 的乘积 #Nginx服务器支持如下处理连接的方法(I/O复用方法),这些方法可以通过 use指令指定. #use [ kqueue | rtsig | epoll | /dev/poll | select | poll]; use epoll; #使用 epoll(linux2.6的性能方式 ) }

注意: 服务器为linux时, 请用use epoll。 利用linux的内核提供性能优化方案。

http配置

http { #Nginx服务器对HTTP服务器相关属性的配置 include mime.types; default_type application/octet-stream; #设定虚拟主机配置 server { #侦听80端口 listen 80; #定义使用 www.itsource.cn访问 server_name www.itsource.cn; location { } location { } ….. } server { #侦听80端口 listen 80; #定义使用 www.example.cn访问 server_name www.example.cn; location { } location { } ….. } }

include是个主模块指令。它实现对配置文件所包含的文件的设定,以减少主配置文件的复杂度。

default_type属于HTTP核心模块指令. 这里设定默认类型为二进制流,也就是当文件类型未定义时使用这种方式。

server块的指令主要用于指定主机和端口(虚拟主机).

location部分主要用于匹配网页位置,设置不同的功能特征. 比如:缓存,重定向等…

什么是反向代理?

当以代理服务器来接受网络上的连接请求,再将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给网络上发出请求的客户端时,代理服务器对外就表现为一个反向代理服务器.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。