博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx作为web服务器
阅读量:4605 次
发布时间:2019-06-09

本文共 3500 字,大约阅读时间需要 11 分钟。

为什么选择Nginx,nginx有诸多优点:

  nginx是轻量级web服务器,支持AIO、mmap、event-driven,解决了c10k问题、虚拟主机、基于名字和IP访问、nginx平滑升级 、热部署、自定义日志格式、3XX 5XX错误代码重定向、重写url、支持http referer 使用防盗链(判断请求过来的url)、支持flv和mp4流、速度限制。

框架:

  一个主进程master,多个子进程worker

  支持sendfile/sendfile64

配置文件结构:

server{}:虚拟主机

location{}:

location /URI/ {

root “/web/htdocs”

}

location URI:对当前路径和自路径下的所有对象都生效,匹配范围大

location = URI:对当前路径生效,精确匹配指定路径,不包括子路径

location ~ URI {}:

location ~* URI {}:

模式匹配URI,此处的URI可以使用正则表达式,~区分字符大小写,~*不区分

location ^~ URI {}:不使用正则表达式

匹配优先级”=” > “/”  “^~” > “~”

例子:

location = / {    [ configuration A ]}location / {    [ configuration B ]}location /documents/ {    [ configuration C ]}location ^~ /images/ {    [ configuration D ]}location ~* \.(gif|jpg|jpeg)$ {    [ configuration E ]}

 

The “/” request will match configuration A, the “/index.html” request will match configuration B, the “/documents/document.html” request will match configuration C, the “/images/1.gif” request will match configuration D, and the “/documents/1.jpg” request will match configuration E.

  • 一般配置

location / {            root   /web/web1;            index  index.html index.htm;}

 

location /web2/ {            root /web;            index index.html index.htm;}

 

 

 介绍几个http相关模块:

  • 访问控制法则:基于IP,Module ngx_http_access_module

deny

allow

 

location /web2/ {            root /web;            index index.html index.htm;            deny 192.168.31.85;        }

 

  • 基于用户:Module ngx_http_auth_basic_module
location / {    satisfy any;    allow 192.168.1.0/32;    deny  all;     auth_basic           "closed site";    auth_basic_user_file conf/htpasswd;}location /web2/ {            root /web;            index index.html index.htm;            auth_basic "closed site";            auth_basic_user_file /etc/nginx/.users;}

 

创建用户:

-c 第一次创建文件时使用:

# htpasswd -c -m /etc/nginx/.users tom

# htpasswd -m /etc/nginx/.users tom2

  • 允许列出其文件:Module ngx_http_autoindex_module

找不到主页面时,默认拒绝访问:

location / {            root   /web/web1;            index home.html;        }

 

location / {            root   /web/web1;            index home.html;            autoindex on;}

 

  • 统计访问信息:Module ngx_http_stub_status_module
location /basic_status {    stub_status;}

In versions prior to 1.7.5, the directive syntax required an arbitrary argument, for example, “stub_status on”.

访问:http://192.168.2.168/basic_status

 

当前处理活动的链接个数

已经接受的连接数  已经处理的连接数  已经处理的请求数

Reading

The current number of connections where nginx is reading the request header.

Writing

The current number of connections where nginx is writing the response back to the client.

Waiting

The current number of idle client connections waiting for a request.(长连接模式保持的个数)

  • https访问:Module ngx_http_ssl_module
server {        listen       443 ssl;        server_name  localhost;         ssl                  on;        ssl_certificate      /etc/nginx/ssl/nginx.crt;        ssl_certificate_key  /etc/nginx/ssl/nginx.key;         ssl_session_cache    shared:SSL:1m;        ssl_session_timeout  5m;         ssl_ciphers  HIGH:!aNULL:!MD5;        ssl_prefer_server_ciphers  on;         location / {            root   /web/ssl;            index  index.html index.htm;        }    }

 

  • Module ngx_http_fastcgi_module
location ~ ^(.+.php)(.*)$ {fastcgi_split_path_info ^(.+.php)(.*)$;include fastcgi.conf;fastcgi_pass 127.0.0.1:9000;fastcgi_index index.php;fastcgi_param PATH_INFO $fastcgi_path_info;}

参见前面,就是一个很好LEMP应用的实践。

 

总结:

Nginx以其优秀的性能和提供的各种模块,作为web服务器越来越被多数企业选择,这里没有详细介绍Nginx作为web服务器相关的各个模块,大家可以参考官方文档或其他途径学习更多Nginx特性,官方文档

 

转载于:https://www.cnblogs.com/jjzd/p/6685547.html

你可能感兴趣的文章
用Html5与Asp.net MVC上传多个文件
查看>>
Xcode中匹配的配置包的存放目录
查看>>
JavaScript将具有父子关系的原始数据格式化成树形结构数据(id,pid)
查看>>
MySQL服务使用
查看>>
C语言练手自己编写学生成绩管理系统
查看>>
20175204 张湲祯 2018-2019-2《Java程序设计》第二周学习总结
查看>>
How to lisp Lisp output a paragraph"500 Tph Dry Process Cement Plant Machinery Manufacturers"
查看>>
OpenMobile's Application Compatibility Layer (ACL)
查看>>
竞价广告系统-广告检索
查看>>
强哥PHP面向对象学习笔记
查看>>
[转]基于.NET平台常用的框架整理
查看>>
Symbian (Read Inbox)读取收件箱的内容
查看>>
良好的编程规范
查看>>
struts2 入门
查看>>
.net 编译原理
查看>>
mean 快速开发和现有技术的对比分析
查看>>
Metro Style app :浏览器扩展
查看>>
linux的kernel是怎样工作的(TI_DM36X_ARM系统)(1)
查看>>
[luogu4310] 绝世好题 (递推)
查看>>
[luogu3203 HNOI2010] 弹飞绵羊 (分块)
查看>>