Nginx使用说明以及注意事项

19 篇文章 0 订阅

1 写在前面的话

如果只是使用平台提供的配置文件,请直接跳过第三章或者移步(http://blog.csdn.net/ZHBR_F1/article/details/72667451)
平台使用nginx主要是使用其核心的http模块,nginx做的工作很简单,就是接收到http请求,然后去搜索配置文件里的Location Block(以location指令包装的指令块)进行匹配,根据匹配到的location去完成相应的操作,这些操作一般就是把http请求进行重定向转发(例如将访问192.168.1.34的请求转发到192.168.2.55去访问),或者是映射到具体的硬盘目录下(例如访问192.168.1.34的资源请求转到本地“C:/workspace/”下去请求资源)。具体流程如下图所示:


这里写图片描述

2 nginx安装和使用

2.1 nginx安装

直接把nginx的环境包放到硬盘里就可以了(说的是windows,其他操作系统百度一下就好了)

2.2 nginx运行

  • 命令行到nginx.exe的平行目录下,运行‘start nginx’命令;
  • 注意一点,当修改配置文件后想重启nginx,切记要使用下面提到的reload命令,不能使用‘start nginx’重新开启一遍,同时当不确定nginx是否关闭的情况下不要执行‘start nginx’命令。因为在windows环境下多次运行‘start nginx’命令会开启多个nginx进程,从而导致配置的混乱。尽量在执行‘start nginx’的时候先执行‘nginx -s stop’关闭一下。
nginx命令执行命令的作用
start nginx开启nginx
nginx -s reloadnginx重载
nginx -s stopnginx强制关闭
nginx -s quitnginx平稳关闭

3 nginx结合平台介绍和使用

nginx主要作用:作为一个代理服务器,用来代替之前的tomcat服务器。当请求为静态资源的时候通过nginx代理到本地,而将服务代理到远程服务器。

当请求静态资源的时候还考虑到了扩展模块以及”开发环境“和”生产环境“,根据nginx的配置去匹配不同的目录:先去查找扩展目录中是否有对应的文件存在,如果没有,那么根据配置区分”开发环境“或者”生产环境“,然后去请求不同的目录

4 nginx主要配置项介绍

4.1 注释

以 ‘#’ 开头的一行为注释,只有单行注释

4.2 server

server是一切的开始,代表一个代理的出现,里边两大配置项——listen(监听的端口)和server_name(监听的地址),里边还包括了location和其他配置项。

当存在多个server的时候,nginx获取到的请求都将会去匹配这些server(去匹配其中的listen和server_name),具体匹配规则请参考http://mushme.iteye.com/blog/1774097

  • server_name 用来配置监听的地址

    server_name接受普通字符串,可以是IP地址,也可以是域名,也可以是“localhost”例如:

server_name www.example.com;
server_name 127.0.0.1;
server_name localhost;
也可使用通配符或者正则来配置
server_name *.example.com
server_name www.example.*
# server_name在后面加上 ‘~’ 可以使用正则去匹配
server_name~ ^www\.example\.com$ ;
server_name配置在server块里边,每个server块可以配置最多一个server_name
  • listen 用来配置监听的端口号

    listen有以下三种形式,用来定义监听的端口,一般使用第二种

## listen address[:port];
listen 127.0.0.1:8088## listen port;
listen 8088;
## listen unix:path;

4.3 location

location是nginx的精华,nginx就是通过拦截到的请求去对配置好的location块(location block)进行请求代理的。

location是用来具体配置代理路径的,具体格式如下:

location [=|~|~*|^~|@] /uri/ { … } 

被代理的url去对location后边的字符串(或正则)进行匹配,根据一定的规则选择走哪个location,以下是匹配规则,这里还是放了一个大神的博客链接,请参考他的博客去了解nginx中location的书写规则:http://blog.csdn.net/tjcyjd/article/details/50897959

看完大神的博客你可能又跳回来从这里接着看了,接下来讲到的四个指令则是nginx代理转发请求的基本命令

  • alias & root 别名

alias和root是将请求代理到本地的指令,也就是如果可以把请求发送到你的硬盘里去获取资源,这个指令可以代理前端的静态资源。

alias和root是有区别的,请参看下面的例子(假设监听的地址端口为192.168.22.23:8009,那么所有请求192.168.22.23:8009的都会被nginx代理到,配置一个location为“/request_path/image/”,那么所有请求“192.168.22.23:8009/request_path/image/”的都会匹配这个lcoation块)

# 如下
# 当客户端请求"192.168.22.23:8009/request_path/image/img1.png"的时候
# nginx会代理到"D:/workspace/local_path/request_path/image/img1.png"
location /request_path/image/ {
root D:/workspace/local_path/;
} 

# 如下
# 当客户端请求"192.168.22.23:8009/request_path/image/img1.png"的时候
# nginx会代理到"D:/workspace/local_path/img1.png"
location /request_path/image/ {
    alias D:/workspace/local_path/;
} 

这下alias和root的区别明显了。

  • proxy_pass

proxy_pass是用来对请求进行转发的,这个一般用来代理后台服务,就是把请求进行重定向,看下面例子(沿用上边模拟的情境)

# 重定向
# 现在所有的访问“192.168.22.23:8009”
# 都会跳到“192.168.22.88:8088”上去。
location ~ /* {
    proxy_pass http://192.168.22.88:8088
}
  • rewrite

这也是重定向的指令,是用来重写请求路径的,这里还是附上大神的博客http://www.nginx.cn/216.html

4.4 set

用来设置变量的,格式为:set 变量名 变量值,nginx中的变量都是以$开头的。

# $name变量就是“ZhangSan”这个字符串了
set $name "ZhangSan"

4.5 其他

if指令是用来做判断的,nginx中还有好多内置的变量(比如说$request_filename、$request_uri

平台提供的示例配置文件的修改和使用请参考:Nginx的配置和使用

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值