Nginx服务器

什么是Nginx?

  Nginx是一种服务器软件,如同apache、tomcat。是一种高性能的HTTP和反向代理服务器以及代理邮件服务器。也就是说Nginx服务器可以发布网站,也可以负载均衡,还可以作为邮件服务器实现收发邮件的功能。

什么是负载均衡?

  当一台服务器的单位时间内的访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就会崩溃。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。那么什么是负载均衡呢?我们可以建立很多很多服务器,组成一个服务器集群,当用户访问网站时,先访问一个中间服务器,在让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况。

  (Tip:发现没有,负载均衡特别像银行排队,他们都是蛇形排队法的翻版)

什么是反向代理?

  我们有时候,用自己的计算机A访问国外的某个网站B,但是访问不了,此时,有一台中间服务器C可以访问国外的网站B,那么,我们可以用自己的电脑访问服务器C,通过C来访问B网站。那么这时候,服务器C称为代理服务器,这种访问方式叫做正向代理。正向代理有一个特点,就是我们明确知道访问哪个网站。

  再如,当我们有一个服务器集中,并且服务器集群中的每台服务器的内容都一样的时候,同样我们要直接从个人电脑访问到服务器集群中的服务器时也无法访问,且此时第三方服务器能访问集群,这时,我们提供第三方服务器访问服务器集群的内容但是此时我们并不知道是哪一台服务器提供的内容,此时的代理称为反向代理。

Nginx的功能

  Nginx不实际处理用户请求,它将用户请求分别引入服务器集群中的各个服务器。

Nginx与其他服务器的性能比较

  IIS服务器只能在windows系统运行,而windows作为服务器性能是不如linux的。

  Tomcat服务器面向的语言是java,是一种重量级的服务器,nginx是轻量级服务器,二者不具备可比性。

  Apache服务器优点很多,稳定、开源、跨平台等,但apache不支持高并发;而Nginx能支持百万级的TCP连接、十万以上的并非请求,并且Nginx也跨平台。

Nginx的优缺点

  优点:高并发、部署简单、内存消耗小、成本低等。

  缺点:rewrite功能不够强大,模块没有Nginx多。

(windows系统下)Nginx的安装

  1、下载:进入Nginx官网 http://nginx.org/,点击右侧的download,然后在新页面选择 Stable version 中的“nginx/Windows-1.8.0”

  2、打开安装包,将里面的文件夹nginx-x.x.x解压到任意目录下

  3、运行nginx-x.x.x目录下的nginx.exe程序

  4、在浏览器中访问 http://localhost,出现欢迎界面表示安装成功。

非常简单!

Nginx的简单配置

  1 #运行用户,即谁启动了该服务器
  2 #user  nobody;
  3
  4 #启动进程数,通常设置和cpu一样的数量
  5 worker_processes  1;
  6
  7 #全局错误日志
  8 #error_log  logs/error.log;
  9 #error_log  logs/error.log  notice;
 10 #error_log  logs/error.log  info;
 11
 12 #PID文件
 13 #pid        logs/nginx.pid;
 14
 15
 16 #工作模式和连接数量上限
 17 events {
 18 #    use epoll;    #epoll是多路复用IO的一种方式,但仅用于linux2.6以上内核,可以大大提高nginx的性能(windows系统就别想了 <_>)
 19
 20     #单个后台work_process进程最大的并发链接数
 21     worker_connections  1024;
 22 }
 23
 24 #设置http服务器,利用它的反向代理功能提供负载均衡支持
 25 http {
 26     #设置mime类型,类型由mime.types文件定义
 27     include       mime.types;
 28     default_type  application/octet-stream;
 29
 30     #log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
 31     #                  ‘$status $body_bytes_sent "$http_referer" ‘
 32     #                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;
 33
 34     #设置日志格式
 35     #access_log  logs/access.log  main;
 36
 37     #sendfile 指令指定nginx是否调用sendfile函数来输出文件,对于普通应用,必须设置为on,
 38     #如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的uptime
 39     sendfile        on;
 40     #tcp_nopush     on;
 41
 42     #连接超时时间
 43     #keepalive_timeout  0;
 44     keepalive_timeout  65;
 45
 46     #是否开启gzip压缩
 47     #gzip  on;
 48
 49     #设定负载均衡的服务器列表
 50     #upstream mysvr {
 51         #weigth参数表示权值,权值越高被分配到的几率越大
 52     #    server 192.168.8.1x:3128 weight=5;#本机上的Squid开启3128端口
 53     #    server 192.168.8.2x:80  weight=1;
 54     #    server 192.168.8.3x:80  weight=6;
 55     #}
 56
 57     #负载均衡服务器
 58     upstream component{
 59         server localhost:8080 weight=10;
 60     }
 61
 62     server {
 63         #监听80端口
 64         listen       80;
 65
 66         #定义使用localhost来访问
 67         server_name  localhost;
 68
 69         #charset koi8-r;
 70
 71         #定义本虚拟主机的访问日志
 72         #access_log  logs/host.access.log  main;
 73
 74         #默认请求
 75         location / {
 76             #定义服务器默认网站根目录
 77             root   html;
 78             #定义首页索引文件的名称
 79             index  index.html index.htm;
 80         }
 81         #当访问http://localhost/component/*时,将请求转给http://component,它在前面的负载均衡服务器中定义为 localhost:8080
 82         #即访问http://localhost/component/*将会访问http://localhost:8080的内容
 83         location /component{
 84             proxy_pass http://component;
 85         }
 86         #静态资源都去root目录下寻找
 87         location ~ .*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$
 88         {
 89             root    F:/picture;
 90             expires    7d;
 91         }
 92
 93
 94         #error_page  404              /404.html;
 95
 96         # redirect server error pages to the static page /50x.html
 97         #
 98
 99         #定义错误提示页面
100         error_page   500 502 503 504  /50x.html;
101         location = /50x.html {
102             root   html;
103         }
104     }
105 }

Tomcat服务器正常配置就行。

时间: 2024-12-24 04:42:54

Nginx服务器的相关文章

nginx服务器代理获取接口数据

自从学会用nginx服务器代理抓取数据,妈妈再也不用担心我写DEMO时拿不到数据了,从此你也摆脱了自己造数据的烦恼.哇!又出新框架了,走,写个DEMO练习去,那我们用React.JS仿制个淘宝出来吧,淘宝数据怎么办???so easy , 直接去抓取接口数据就可以了. 一.下载nginx服务器 去nginx官网下载nginx服务器,我们就下载nginx/Windows-1.8.1 pgp 这个吧! 二.配置环境 1. 将下载的压缩包解压后获得如下图所示的文件夹: 2.打开conf文件夹并打开ng

在CentOS 7中安装nginx服务器

简要地介绍一下,如何在CentOS 7中安装nginx服务器  下载对应当前系统版本的nginx包(package) # wget  http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm  建立nginx的yum仓库 # rpm -ivh nginx-release-centos-7-0.el7.ngx.noarch.rpm  下载并安装nginx # yum inst

nginx服务器的网站权限问题

有时候我们的网站根目录会从一个目录迁移到另一个目录,如果我们服务器使用的是nginx或者Apache,我们一般会配置好网站根目录后然后往直接把网站解压或者上传到根目录中,这样引起的问题是无法对对文件进行任何的操作导致网站的异常,这在框架中最为常见,本地运行好好的网站,上传到服务器之后突然就不能访问了,出现很多错误,这就是在Linux下存在的权限问题,网上有些方法是很粗暴的使用chmod -R 777 dirname把所有的文件权限全部打开,其实这样能解决问题,但是不是最好的解决方案,我们如果理解

Nginx服务器处理相关图片详细方法

Nginx服务器在进行图片处理时,会有有不少的问题.说到访问权限控制,很多看了Nginx相关文章的朋友都会自然联想到X-Accel-Redirect这个头.这个头有个缺陷,就是所有的访问都会先经过一个fastcgi来判断权限. 在下载系统上,用这个方法是非常合适的,但是在访问量非常大的图片服务器,单单用这个方法会使大量无需权限判定的图片也经过一个fastcgi处理,多此一举并且无端耗费大量的资源.虽然X-Accel-Redirect是一个新的方案,但是并不代表它能很好的解决所有问题,同时也不妨碍

windows环境下nginx服务器的安装与配置

转载至:http://www.cnblogs.com/hxxy2003/archive/2012/09/20/2695254.html nginx服务器是一个高性能的HTTP和反向代理服务器,它以稳定性.强大的功能.示例配置文件和低系统资源的消耗而闻名了.现在国内有很多大型网站都在使用nginx服务器,如腾讯.新浪.网易等. 1.安装nginx,去官网http://nginx.net去下载nginx,解压后即可: 2.使用命令行进入nginx的目录,如下: C:\Users\della>cd c

linux 安装nginx服务器

LINUX安装nginx服务器 1.安装nginx所需要的依赖包 说明:如果没有安装以上的安装包可以按照以下的方式安装 2.上传nginx包 在ssh远程连接工具(本文使用的是Xshell 5)中输入rz后会提示选择软件包 3.解压nginx软件包 4.创建nginx用户 5.配置并安装nginx服务器 ./configure --prefix=/usr/local/nginx--user=nginx --group=nginx --with-http_stub_status_module &&a

nginx服务器防sql注入/溢出攻击/spam及禁User-agents

本文章给大家介绍一个nginx服务器防sql注入/溢出攻击/spam及禁User-agents实例代码,有需要了解的朋友可进入参考. 在配置文件添加如下字段即可  代码如下 复制代码 server { ## 禁SQL注入 Block SQL injections set $block_sql_injections 0; if ($query_string ~ "union.*select.*(") { set $block_sql_injections 1; } if ($query_

在阿里云服务器(ECS)上从零开始搭建nginx服务器

本文介绍了如何在阿里云服务器上从零开始搭建nginx服务器.阿里云服务器(ECS)相信大家都不陌生,感兴趣的同学可以到http://www.aliyun.com/product/ecs去购买,或到体验馆去体验(半个月有效期).至于如何注册.管理ECS这里就不详细介绍了.因为官方文档已经写的很清楚了.如果还不清楚,打咨询电话询问. 现在假设你已经拥有了阿里云服务器,ip是139.128.33.11(假的,读者需要换成自己的ip地址).并且没有选择任何安装包.现在ECS是完全空的,除了必须的Linu

FreeBSD上构架Nginx服务器

这篇文章主要记录作者如何在FreeBSD上构架Nginx服务器.作者采用下载该程序的一个源代码包手动编译的方法,而不是使用包管理工具.这样做有两个原因:首先包质量不能保证,或无效或版本旧:其次需要在编译时对多种重要的选项进行配置. 另外,相关FreeBSD初始优化见博主之前的博文. 1          GCC Nginx是一个由C语言编写的程序,因此首先需要在系统上安装编译工具.我们采用常见GNU的GCC.确保系统上安装GCC: # gcc gcc: No input files specif

Centos7 &nbsp; Nginx 服务器的安装配置

一. Nginx 简介 Nginx 是由俄罗斯软件工程师 Igor Sysoev 开发的一个高性能的 HTTP 和反向代理服务器,具备 IMAP/POP3 和 SMTP 服务器功能. 作为 Web 服务器:相比较与 Apache, Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤为受到虚拟主机提供商的欢迎,能够支持高达 50000 个并发的连接数的响应. 作为负载均衡服务器: Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP