nginx一些基本操作 - litong534/web GitHub Wiki

安装

这部分就不用说了吧

配置

1.普通服务

nginx是使用代码块进行服务定义的

server {
    listen    8080;
    server_name localhost;

    location / {
      root  /data/data/com.termux/files/usr/share/nginx/html;
      index index.html index.htm;
    }
}

如果需要配置多个端口的话,需要开多个server代码块,每个端口的路由请求使用location代码块进行配置

location代码块中的root指定了绝对路径的根目录,index指定了默认访问的页面文件,当访问这个地址时默认响应的页面文件就是这个

2.代理

 server {
        listen       8000;
                server_name  localhost;

        location / {
            root   /data/data/com.termux/files/usr/share/nginx/html;
            index  lietome/lietome.html;
             proxy_pass http://localhost:8080/;
            proxy_redirect http://localhost:8080/ http://$host:$server_port/;
        }

        location /images {
            alias /data/data/com.termux/files/usr/share/nginx/html/lietome/img/;
        }
    } 

我们这里定义了8000端口的服务,假如我们的请求希望从8080获取但是不希望暴露给用户,我们可以配置代理,使用proxy_pass指定代理的端口,这样在8000路径下的请求都会被代理到8080上,但是如果我们不配置proxy_redirect的话,响应的url会变成8080,所以我们使用nginx的内部变量,将地址改写为用户请求的地址

3.alias与root的区别

location ~ ^/weblogs/ {
 root /data/weblogs/www.ttlsa.com;
 autoindex on;
 auth_basic"Restricted";
 auth_basic_user_file  passwd/weblogs;
}

如果一个请求的URI是/weblogs/httplogs/www.ttlsa.com-access.log时,web服务器将会返回服务器上的/data/weblogs/www.ttlsa.com/weblogs/httplogs/www.ttlsa.com-access.log的文件。

root会根据完整的URI请求来映射,也就是/path/uri。[/info]

因此,前面的请求映射为path/weblogs/httplogs/www.ttlsa.com-access.log。

location ^~ /binapp/ {  
 limit_conn limit 4;
 limit_rate 200k;
 internal;  
 alias /data/statics/bin/apps/;
}

alias会把location后面配置的路径丢弃掉,把当前匹配到的目录指向到指定的目录。如果一个请求的URI是/binapp/a.ttlsa.com/favicon时,web服务器将会返回服务器上的/data/statics/bin/apps/a.ttlsa.com/favicon.jgp的文件。

1)使用alias时,目录名后面一定要加"/"。

  1. alias可以指定任何名称。

  2. alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。

  3. alias只能位于location块中

4.静态文件夹

        location /images {
            alias /data/data/com.termux/files/usr/share/nginx/html/lietome/img/;
        }

这里我们配置了/images的路径,并且使用alias指定了绝对路径的文件夹地址,这样访问8000端口(去掉代理)/img/33.gif的图片会被服务器指定为该路径文件夹下的33.gif图片。