安装Nginx

1、添加Nginx到YUM源
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

2、安装Nginx
sudo yum install -y nginx

3、启动Nginx
sudo systemctl start nginx.service

4、修改配置文件
vim /etc/nginx/nginx.conf

server {
        listen  21; # Nginx代理的端口
        server_name 192.168.254.119; # 服务器IP
        location / {
            root    /data/ftpsite; # 代理的ftp服务器文件夹觉得路径
            # 设置欢迎页,否则访问9999端口首页回报403拒绝访问错误
            index  /data/ftpsite; # 欢迎页,写上代理ftp服务器的文件夹
            autoindex on; # 打开文件目录列表
            autoindex_exact_size on; # 显示文件大小 单位字节
            autoindex_localtime on; # 显示时间
            charset utf-8,gbk; # 设置编码防止中午乱码
        }
        #将192.168.254.119:21映射到/data/web/index.html        
        location / {
            root /data/web/;
            index index.html;
        }
        #将192.168.254.119:21/api映射到http://192.168.88.22:8989/
        location /api {
            proxy_pass http://192.168.88.22:8989/;
        }
}

5、Nginx启动失败

查看/etc/nginx/nginx.conf 中的.log路径,查看错误日志,有可能是Nginx默认的80端口被占用(将nginx.conf中server中的listen端口换一个即可)

6、location配置(参考

nginx配置-location
以 =开头表示精确匹配
如 A 中只匹配根目录结尾的请求,后面不能带任何字符串。
^~ 开头表示uri以某个常规字符串开头,不是正则匹配
~ 开头表示区分大小写的正则匹配;
~* 开头表示不区分大小写的正则匹配
/ 通用匹配, 如果没有其它匹配,任何请求都会匹配到
顺序优先级:

(location =) > (location 完整路径) > (location ^~ 路径) > (location ~,~* 正则顺序) > (location 部分起始路径) > (/)

 测试:

1.

复制代码
        location = /api {
          #精确匹配
          return 402;
        }
    
        location /api {
            # 匹配任何以 /api 开头的地址,匹配符合以后,还要继续往下搜索
            # 只有后面的正则表达式没有匹配到时,这一条才会采用这一条
            return 403;
        }

请求http://localhost:8090/api, 返回:402 Payment Required

请求http://localhost:8090/api/a,返回:403 Forbidden

(location =) > (location 完整路径)

2.


      location ^~ /api/ {
            # 匹配任何以 /api/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。
            return 401;
        }
        
        location /api {
            return 403;
        }

注意这里 location ^~ /api/ 和 location /api  不能相同,若 location /api 改成 location /api/,启动会报错,nginx: [emerg] duplicate location "/api/"

请求http://localhost:8090/api, 返回:403 Forbidden

请求http://localhost:8090/api/a,返回:401 Authorization Required

 (location 完整路径) > (location ^~ 路径)

3.

 


        location ^~ /api/ {
            # 匹配任何以 /api/ 开头的地址,匹配符合以后,停止往下搜索正则,采用这一条。
            return 401;
        }
        
        location ~ \.(gif|jpg|jpeg)$ {

            return 405 ;
        }

请求http://localhost:8090/api/a.jpg, 返回:401 Authorization Required

请求http://localhost:8090/aa/a.jpg,返回:405 Not Allowed

 (location ^~ 路径) > (location ~,~* 正则顺序) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨咖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值