服务器自带域名(服务器域名是什么意思举例阐明)「服务器域名是什么意思举例说明」

  1.安装nginx1.1选择稳固版本

  我们编译安装nginx来定制本身的模块,呆板CentOS6.2x86_64。起首安装缺少的依靠包:

  1

  #yum-yinstallgccgcc-c++makelibtoolzlibzlib-developensslopenssl-develpcrepcre-devel

  这些软件包假如yum上没有的话可以下载源码来编译安装,只是要留意编译时默认安装的目次,确保下面在安装nginx时可以或许找到这些动态库文件(ldconfig)。

  从https://nginx.org/en/download.html下载稳固版nginx-1.6.3.tar.gz到/usr/local/src下解压。

  为了后续预备我们别的下载2个插件模块:nginx_upstream_check_module-0.3.0.tar.gz——查抄后端服务器的状态,nginx-goodies-nginx-sticky-module-ng-bd312d586752.tar.gz(发起在/usr/local/src下解压后将目次重定名为nginx-sticky-module-ng-1.2.5)——后端做负载均衡办理sessionsticky题目(与upstream_check模块连合利用必要别的打补丁,请参考nginx负载均衡设置实战)。

  请留意插件与nginx的版本兼容题目,一样平常插件越新越好,nginx不消追新,稳固第一。nginx-1.4.7,nginx-sticky-module-1.1,nginx_upstream_check_module-0.2.0,这个搭配也没题目。sticky-1.1与nginx-1.6版本由于更新没跟上编译堕落。(可以直接利用Tengine,默认就包罗了这些模块)

  1

  2

  3

  4

  5

  6

  7

  8

  [root@cachetsnginx-1.6.3]#pwd

  /usr/local/src/nginx-1.6.3

  [root@cachetsnginx-1.6.3]#./configure--prefix=/usr/local/nginx-1.6--with-pcre\

  --with-http_stub_status_module--with-http_ssl_module\

  --with-http_gzip_static_module--with-http_realip_module\

  --add-module=../nginx_upstream_check_module-0.3.0

  [root@cachetsnginx-1.6.3]#makemakeinstall

  1.2常用编译选项阐明

  nginx大部分常用模块,编译时./configure--help以--without开头的都默认安装。

--prefix=PATH:指定nginx的安装目次。默认/usr/local/nginx

--conf-path=PATH:设置nginx.conf设置文件的路径。nginx答应利用差别的设置文件启动,通过下令行中的-c选项。默以为prefix/conf/nginx.conf

--user=name:设置nginx工作进程的用户。安装完成后,可以随时在nginx.conf设置文件更改user指令。默认的用户名是nobody。--group=name雷同

--with-pcre:设置PCRE库的源码路径,假如已通过yum方式安装,利用--with-pcre主动找到库文件。利用--with-pcre=PATH时,必要从PCRE网站下载pcre库的源码(版本4.4–8.30)并解压,剩下的就交给Nginx的./configure和make来完成。perl正则表达式利用在location指令和ngx_http_rewrite_module模块中。

--with-zlib=PATH:指定zlib(版本1.1.3–1.2.5)的源码解压目次。在默认就启用的网络传输压缩模块ngx_http_gzip_module时必要利用zlib。

--with-http_ssl_module:利用https协议模块。默认环境下,该模块没有被构建。条件是openssl与openssl-devel已安装

--with-http_stub_status_module:用来监控Nginx的当前状态

--with-http_realip_module:通过这个模块答应我们改变客户端哀求头中客户端IP地点值(比方X-Real-IP或X-Forwarded-For),意义在于可以或许使得背景服务器记录原始客户端的IP地点

--add-module=PATH:添加第三方外部模块,如nginx-sticky-module-ng或缓存模块。每次添加新的模块都要重新编译(Tengine可以在新参加module时无需重新编译)

  再提供一种编译方案:

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  17

  18

  19

  ./configure\

  --prefix=/usr\

  --sbin-path=/usr/sbin/nginx\

  --conf-path=/etc/nginx/nginx.conf\

  --error-log-path=/var/log/nginx/error.log\

  --http-log-path=/var/log/nginx/access.log\

  --pid-path=/var/run/nginx/nginx.pid\

  --lock-path=/var/lock/nginx.lock\

  --user=nginx\

  --group=nginx\

  --with-http_ssl_module\

  --with-http_stub_status_module\

  --with-http_gzip_static_module\

  --http-client-body-temp-path=/var/tmp/nginx/client/\

  --http-proxy-temp-path=/var/tmp/nginx/proxy/\

  --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/\

  --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi\

  --with-pcre=../pcre-7.8

  --with-zlib=../zlib-1.2.3

  1.3启动关闭nginx

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  ##查抄设置文件是否精确

  #/usr/local/nginx-1.6/sbin/nginx-t

  #./sbin/nginx-V#可以看到编译选项

  ##启动、关闭

  #./sbin/nginx#默认设置文件conf/nginx.conf,-c指定

  #./sbin/nginx-sstop

  或pkillnginx

  ##重启,不会改变启动时指定的设置文件

  #./sbin/nginx-sreload

  或kill-HUP`cat/usr/local/nginx-1.6/logs/nginx.pid`

  固然也可以将nginx作为体系服务管理,下载nginx到/etc/init.d/,修改内里的路径然后赋予可实行权限。

  1

  #servicenginx{start|stop|status|restart|reload|configtest}

  1.4yum安装

  ——2015-05-22更新

  yum安装rpm包会比编译安装简单很多,默认会安装很多模块,但缺点是假如你想以后安装第三方模块那就没办法了。

  1

  2

  3

  4

  5

  6

  #vi/etc/yum.repo.d/nginx.repo

  [nginx]

  name=nginxrepo

  baseurl=https://nginx.org/packages/centos/$releasever/$basearch/

  gpgcheck=0

  enabled=1

  剩下的就yuminstallnginx搞定,也可以yuminstallnginx-1.6.3安装指定版本(条件是你去packages里看到有对应的版本,默认是最新版稳固版)。

  2.nginx.conf设置文件

  Nginx设置文件重要分成四部分:main(全局设置)、server(主机设置)、upstream(上游服务器设置,重要为反向署理、负载均衡相干设置)和location(URL匹配特定位置后的设置),每部分包罗多少个指令。main部分设置的指令将影响别的全部部分的设置;server部分的指令重要用于指定假造主机域名、IP和端口;upstream的指令用于设置一系列的后端服务器,设置反向署理及后端服务器的负载均衡;location部分用于匹配网页位置(比如,根目次“/”,“/images”,等等)。他们之间的关系式:server继承main,location继承server;upstream既不会继承指令也不会被继承。它有本身的特别指令,不必要在其他地方的应用。

  当前nginx支持的几个指令上下文:

  2.1通用

  下面的nginx.conf简单的实现nginx在前端做反向署理服务器的例子,处理惩罚js、png等静态文件,jsp等动态哀求转发到别的服务器tomcat:

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  11

  12

  13

  14

  15

  16

  17

  18

  19

  20

  21

  22

  23

  24

  25

  26

  27

  28

  29

  30

  31

  32

  33

  34

  35

  36

  37

  38

  39

  40

服务器自带域名(服务器域名是什么意思举例说明) 服务器自带域名(服务器域名是什么意思举例阐明
)「服务器域名是什么意思举例说明」 行业资讯

  41

  42

  43

  44

  45

  46

  47

  48

  49

  50

  51

  52

  53

  54

  55

  56

  57

  58

  59

  60

  61

  62

  63

  64

  65

  66

  67

  68

  69

  70

  71

  72

  73

  74

  75

  76

  77

  78

  79

  80

  81

  82

  83

  84

  85

  86

  87

  88

  89

  90

  91

  92

  93

  94

  95

  96

  97

  98

  99

  100

  101

  102

  103

  104

  105

  106

  107

  108

  109

  110

  111

  112

  113

  114

  115

  userwwwwww;

  worker_processes2;

  error_loglogs/error.log;

  #error_loglogs/error.lognotice;

  #error_loglogs/error.loginfo;

  pidlogs/nginx.pid;

  events{

  useepoll;

  worker_connections2048;

  }

  http{

  includemime.types;

  default_typeapplication/octet-stream;

  #log_formatmain'$remote_addr-$remote_user[$time_local]"$request"'

  #'$status$body_bytes_sent"$http_referer"'

  #'"$http_user_agent""$http_x_forwarded_for"';

  #access_loglogs/access.logmain;

  sendfileon;

  #tcp_nopushon;

  keepalive_timeout65;

  #gzip压缩功能设置

  gzipon;

  gzip_min_length1k;

  gzip_buffers416k;

  gzip_http_version1.0;

  gzip_comp_level6;

  gzip_typestext/htmltext/plaintext/csstext/javaapplication/jsonapplication/javaapplication/x-javaapplication/xml;

  gzip_varyon;

  #http_proxy设置

  client_max_body_size10m;

服务器自带域名(服务器域名是什么意思举例说明) 服务器自带域名(服务器域名是什么意思举例阐明
)「服务器域名是什么意思举例说明」 行业资讯

  client_body_buffer_size128k;

  proxy_connect_timeout75;

  proxy_send_timeout75;

  proxy_read_timeout75;

  proxy_buffer_size4k;

  proxy_buffers432k;

  proxy_busy_buffers_size64k;

  proxy_temp_file_write_size64k;

  proxy_temp_path/usr/local/nginx/proxy_temp12;

  #设定负载均衡背景服务器列表

  upstreambackend{

  #ip_hash;

  server192.168.10.100:8080max_fails=2fail_timeout=30s;

  server192.168.10.101:8080max_fails=2fail_timeout=30s;

  }

  #很紧张的假造主机设置

  server{

  listen80;

  server_nameitoatest.example.com;

  root/apps/oaapp;

  charsetutf-8;

  access_loglogs/host.access.logmain;

  #对/全部做负载均衡+反向署理

  location/{

  root/apps/oaapp;

  indexindex.jspindex.htmlindex.htm;

  proxy_passhttps://backend;

  proxy_redirectoff;

  #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP

  proxy_set_headerHost$host;

  proxy_set_headerX-Real-IP$remote_addr;

  proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;

  proxy_next_upstreamerrortimeoutinvalid_headerhttp_500http_502http_503http_504;

  }

  #静态文件,nginx本身处理惩罚,不去backend哀求tomcat

  location~*/download/{

  root/apps/oa/fs;

  }

  location~.*\.(gif|jpg|jpeg|bmp|png|ico|txt|js|css)$

  {

  root/apps/oaapp;

  expires7d;

  }

  location/nginx_status{

  stub_statuson;

  access_logoff;

  allow192.168.10.0/24;

  denyall;

  }

  location~^/(WEB-INF)/{

  denyall;

  }

  #error_page404/404.html;

  #redirectservererrorpagestothestaticpage/50x.html

  #

  error_page500502503504/50x.html;

  location=/50x.html{

  roothtml;

  }

  }

  ##别的假造主机,server指令开始

  }

  2.2常用指令阐明2.2.1main全局设置

  nginx在运行时与具体业务功能(比如http服务大概email服务署理)无关的一些参数,比如工作进程数,运行的身份等。

woker_processes2

  在设置文件的顶级main部分,worker脚色的工作进程的个数,master进程是吸取并分配哀求给worker处理惩罚。这个数值简单一点可以设置为cpu的核数grep^processor/proc/cpuinfo|wc-l,也是auto值,假如开启了ssl和gzip更应该设置成与逻辑CPU数量一样乃至为2倍,可以镌汰I/O操纵。假如nginx服务器尚有别的服务,可以思量得当镌汰。

worker_cpu_affinity

  也是写在main部分。在高并发环境下,通过设置cpu粘性来低落由于多CPU核切换造成的寄存器等现场重修带来的性能斲丧。如worker_cpu_affinity0001001001001000;(四核)。

worker_connections2048

  写在events部分。每一个worker进程能并发处理惩罚(发起)的最大毗连数(包罗与客户端或后端被署理服务器间等全部毗连数)。nginx作为反向署理服务器,盘算公式最大毗连数=worker_processes*worker_connections/4,以是这里客户端最大毗连数是1024,这个可以增到到8192都不要紧,看环境而定,但不能高出背面的worker_rlimit_nofile。当nginx作为http服务器时,盘算公式内里是除以2。

worker_rlimit_nofile10240

  写在main部分。默认是没有设置,可以限定为操纵体系最大的限定65535。

useepoll

  写在events部分。在Linux操纵体系下,nginx默认利用epoll变乱模子,得益于此,nginx在Linux操纵体系下服从相称高。同时Nginx在OpenBSD或FreeBSD操纵体系上采取雷同于epoll的高效变乱模子kqueue。在操纵体系不支持这些高效模子时才利用select。

2.2.2http服务器

  与提供http服务相干的一些设置参数。比方:是否利用keepalive啊,是否利用gzip举行压缩等。

sendfileon

  开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,镌汰用户空间到内核空间的上下文切换。对于平凡应用设为on,假如用来举行下载等应用磁盘IO重负载应用,可设置为off,以均衡磁盘与网络I/O处理惩罚速率,低落体系的负载。

keepalive_timeout65:长毗连超时时间,单位是秒,这个参数很敏感,涉及欣赏器的种类、后端服务器的超时设置、操纵体系的设置,可以别的起一片文章了。长毗连哀求大量小文件的时间,可以镌汰重修毗连的开销,但假如有大文件上传,65s内没上传完成会导致失败。假如设置时间过长,用户又多,长时间保持毗连会占用大量资源。

send_timeout:用于指定相应客户端的超时时间。这个超时仅限于两个毗连活动之间的时间,假如高出这个时间,客户端没有任何活动,Nginx将会关闭毗连。

client_max_body_size10m

  答应客户端哀求的最大单文件字节数。假如有上传较大文件,请设置它的限定值

client_body_buffer_size128k

  缓冲区署理缓冲用户端哀求的最大字节数

  模块http_proxy:

  这个模块实现的是nginx作为反向署理服务器的功能,包罗缓存功能(另见文章)

proxy_connect_timeout60

  nginx跟后端服务器毗连超时时间(署理毗连超时)

proxy_read_timeout60

  毗连乐成后,与后端服务器两个乐成的相应操纵之间超时时间(署理吸取超时)

proxy_buffer_size4k

  设置署理服务器(nginx)从后端realserver读取并生存用户头信息的缓冲区巨细,默认与proxy_buffers巨细雷同,着实可以将这个指令值设的小一点

proxy_buffers432k

  proxy_buffers缓冲区,nginx针对单个毗连缓存来自后端realserver的相应,网页均匀在32k以下的话,如许设置

proxy_busy_buffers_size64k

  高负荷下缓冲巨细(proxy_buffers*2)

proxy_max_temp_file_size

  当proxy_buffers放不下后端服务器的相应内容时,会将一部分生存到硬盘的临时文件中,这个值用来设置最大临时文件巨细,默认1024M,它与proxy_cache没有关系。大于这个值,将从upstream服务器传回。设置为0禁用。

proxy_temp_file_write_size64k

  当缓存被署理的服务器相应到临时文件时,这个选项限定每次写临时文件的巨细。proxy_temp_path(可以在编译的时间)指定写到哪谁人目次。

  proxy_pass,proxy_redirect见location部分。

  模块http_gzip:

gzipon:开启gzip压缩输出,镌汰网络传输。

gzip_min_length1k:设置答应压缩的页面最小字节数,页面字节数从header头得content-length中举行获取。默认值是20。发起设置成大于1k的字节数,小于1k大概会越压越大。

gzip_buffers416k:设置体系获取几个单位的缓存用于存储gzip的压缩结果数据流。416k代表以16k为单位,安装原始数据巨细以16k为单位的4倍申请内存。

gzip_http_version1.0:用于辨认http协议的版本,早期的欣赏器不支持Gzip压缩,用户就会看到乱码,以是为了支持前期版本加上了这个选项,假如你用了Nginx的反向署理并盼望也启用Gzip压缩的话,由于末了通讯是http/1.0,故请设置为1.0。

gzip_comp_level6:gzip压缩比,1压缩比最小处理惩罚速率最快,9压缩比最大但处理惩罚速率最慢(传输快但比力斲丧cpu)

gzip_types:匹配mime范例举行压缩,无论是否指定,”text/html”范例总是会被压缩的。

gzip_proxiedany:Nginx作为反向署理的时间启用,决定开启大概关闭后端服务器返回的结果是否压缩,匹配的条件是后端服务器必须要返回包罗”Via”的header头。

gzip_varyon:和http头有关系,会在相应头加个Vary:Accept-Encoding,可以让前端的缓存服务器缓存颠末gzip压缩的页面,比方,用Squid缓存颠末Nginx压缩的数据。。

2.2.3server假造主机

  http服务上支持多少假造主机。每个假造主机一个对应的server设置项,设置项内里包罗该假造主机相干的设置。在提供mail服务的署理时,也可以创建多少server。每个server通过监听地点或端口来区分。

listen

  监听端口,默认80,小于1024的要以root启动。可以为listen*:80、listen127.0.0.1:80等情势。

server_name

  服务器名,如localhost、www.example.com,可以通过正则匹配。

  模块http_stream

  这个模块通过一个简单的调治算法来实现客户端IP到后端服务器的负载均衡,upstream后接负载均衡器的名字,后端realserver以host:portoptions;方式构造在{}中。假如后端被署理的只有一台,也可以直接写在proxy_pass。

  2.2.4location

  http服务中,某些特定的URL对应的一系列设置项。

root/var/www/html

  界说服务器的默认网站根目次位置。假如locationURL匹配的是子目次或文件,root没什么作用,一样平常放在server指令内里或/下。

indexindex.jspindex.htmlindex.htm

  界说路径下默认访问的文件名,一样平常跟着root放

proxy_passhttp:/backend

  哀求转向backend界说的服务器列表,即反向署理,对应upstream负载均衡器。也可以proxy_passhttps://ip:port。

proxy_redirectoff;

  proxy_set_headerHost$host;

  proxy_set_headerX-Real-IP$remote_addr;

  proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for;

  这四个临时如许设,假如穷究的话,每一个都涉及到很复杂的内容,也将通过另一篇文章来解读。

  关于location匹配规则的写法,可以说尤为关键且底子的,参考文章nginx设置location总结及rewrite规则写法;

  2.3别的2.3.1访问控制allow/deny

  Nginx的访问控制模块默认就会安装,而且写法也非常简单,可以分别有多个allow,deny,答应或克制某个ip或ip段访问,依次满意任何一个规则就克制往下匹配。如:

  1

  2

  3

  4

  5

  6

  7

  8

  9

  10

  location/nginx-status{

  stub_statuson;

  access_logoff;

  #auth_basic"NginxStatus";

  #auth_basic_user_file/usr/local/nginx-1.6/htpasswd;

  allow192.168.10.100;

  allow172.29.73.0/24;

  denyall;

  }

  我们也常用httpd-devel工具的htpasswd来为访问的路径设置登录暗码:

  1

  2

  3

  4

  5

  6

  7

  #htpasswd-chtpasswdadmin

  Newpasswd:

  Re-typenewpassword:

  Addingpasswordforuseradmin

  #htpasswdhtpasswdadmin//修改admin暗码

  #htpasswdhtpasswdsean//多添加一个认证用户

  如许就天生了默认利用CRYPT加密的暗码文件。打开上面nginx-status的两行解释,重启nginx见效。

  2.3.2列出目次autoindex

  Nginx默认是不答应列出整个目次的。如需此功能,打开nginx.conf文件,在location,server或http段中参加autoindexon;,别的两个参数最好也加上去:

autoindex_exact_sizeoff;默以为on,表现出文件简直切巨细,单位是bytes。改为off后,表现出文件的大概巨细,单位是kB大概MB大概GB

autoindex_localtimeon;

  默以为off,表现的文件时间为GMT时间。改为on后,表现的文件时间为文件的服务器时间

  1

  2

  3

  4

  5

  6

  location/images{

  root/var/www/nginx-default/images;

  autoindexon;

  autoindex_exact_sizeoff;

  autoindex_localtimeon;

  }

  在学习Linux的过程中有任何不懂的可以免费找我咨询QQ:1815759616

你可能想看:

客户评论

我要评论