一:
1.配置文件的结构
nginx由配置文件中指定的指令控制的模块组成。 指令分为简单指令和块指令。
一个简单的指令由空格分隔的名称和参数组成,并以分号(;
)结尾。
块指令具有与简单指令相同的结构,但不是以分号结尾,而是以大括号({
和}
)包围的一组附加指令结束
events
,http
,server
和location。
events
和http
指令驻留在主上下文中,server
在http
中的,而location
在http
块中
二:静态网站服务
1.目录
[root@localhost ~]# mkdir -p /data/www[root@localhost ~]# mkdir -p /data/images 并在上面的两个目中分别添加一个静态网页和.png格式的图片。
2.配置nginx.conf
server { location / { root /data/www; } location /images/ { root /data; }}
3.解释
响应以/images/
开头的URI的请求,服务器将从/data/images
目录发送文件。例如,响应http://localhost/images/logo.png
请求,nginx将发送服务上的/data/images/logo.png
文件。
不以/images/
开头的URI的请求将映射到/data/www
目录。 例如,响应http://localhost/about/example.html
请求时,nginx将发送/data/www/about/example.html
文件。
三:代理服务器
1.目录
将是一个监听端口8080
的简单服务器,并将所有请求映射到本地文件系统上的/data/up1
目录。
创建此目录并将index.html
文件放入其中。
2.conf(这是一个简单代理)
server { listen 8080; root /data/up1; location / { }}
3.解释
root
指令位于server
块上下文中。 当选择用于服务请求的location
块不包含自己的root
指令时,将使用此root
指令。
这个比较重要。
说明了/data/up1这个目录下面的文件是会被访问到的。
指令指定将用于搜索文件的根目录。
为虚拟服务器定义了root
指令。 它适用于不包括root
指令的所有location
块以显式重新定义根。
4.conf(代理配置,数据转发
)
server { location / { proxy_pass http://localhost:8080/; } location ~ \.(gif|jpg|png)$ { root /data/images; }}
5.解释
6.整个conf
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 1024;}http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; ## 新服务(服务处理) server { listen 8080; root /data/up1; location / { } } ## 代理配置,数据转发 server { location / { proxy_pass http://localhost:8080/; } location ~ \.(gif|jpg|png)$ { root /data/images; } }}
四:几个顶级指令
几个顶级指令(称为上下文)将适用于不同流量类型的指令组合在一起:
-
- – 一般连接处理
- – HTTP协议流量
- – Mail协议流量
- – TCP协议流量
指定在这些上下文之外的指令是在主上下文中。
五:指令
1.
server { root /www/data; location /images/ { try_files $uri /images/default.gif; } }
在这种情况下,如果与原始URI相对应的文件不存在,则NGINX将内部重定向到最后一个参数中指定的URI,也就是返回/www/data/images/default.gif
。
2.
location / { try_files $uri $uri/ $uri.html =404; }
如果try_files
指令的任何参数都不会解析为现有文件或目录,则会返回404错误