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 ~,~* 正则顺序)