概述
Nginx是免费的、开源的、高效能的Http和反向代理服务器。在Web服务器领域取得显著成就,广泛应用于网站部署、API代理、静态资源服务以及微服务架构中。
安装
Centos安装 nginx
1.Nginx默认不在Centos标准仓库中,需要先安装EPEL仓库
1
| sudo yum install epel-release
|
2.安装nginx
3.启动并启用nginx
1 2
| sudo systemctl start nginx sudo systemctl enable nginx
|
4.检查运行状态
1
| sudo systemctl status nginx
|
5.相关信息
1 2 3 4
| 1.可执行文件路径:/usr/sbin/nginx 2.配置文件位置:/etc/nginx/nginx.conf 3.默认网站路径:/usr/share/nginx/html 4.日志目录:/var/log/nginx/
|
源代码安装(适用内网部署)
1.安装编译依赖
1
| sudo yum groupinstall "Development Tools" -y sudo yum install pcre-devel zlib-devel openssl-devel -y
|
2.下载nginx源码
1
| sudo wget http://nginx.org/download/nginx-1.22.1.tar.gz
|
3.解压压缩包
1 2
| tar -zxvf nginx-1.24.0.tar.gz cd nginx-1.24.0
|
4.编译安装
1 2 3
| ./configure make make install
|
5.检查nginx安装
1
| /usr/local/nginx/sbin/nginx -v
|
6.启动nginx
1
| sudo /usr/local/nginx/sbin/nginx
|
Windows安装
1.访问nginx官网进入下载页面,下载nginx的压缩包
2.解压缩到本地,运行 nginx.exe
文件即可
使用
0.参考链接:https://blog.csdn.net/weixin_63657273/article/details/141337393
1.nginx的主配置文件为:nginx.conf
2.配置文件格式
- 配置文件由指令和指令块构成,每条指令以 ; 结尾,指令与值之间以空格分隔。
- 多条指令可以放在同一行,以 ; 分隔。
- 指令块以 {} 大括号将多条指令组织在一起,可以进行嵌套使用
- 可以使用 # 添加注释,提高可读性
3.主配置文件结构和部分配置说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| user nginx;
worker_processes auto;
pid /var/run/nginx.pid;
event { worker_connections 1024; }
http { include mime.types; default_type application/octet-stream;
sendfile on;
tcp_nopush on; tcp_nodelay on;
keepalive_timeout 65;
server { } }
|
3.Server块配置说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| server { listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.html index.htm;
location = /404.html { } }
|
4.Location配置说明
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| 1.匹配规则 (1)前缀匹配:直接匹配URL的路径前缀
(2)精确匹配:使用 = 来精确匹配URL路径
(3)正则匹配:使用 ~ 或 ~* 来进行大小写敏感或不敏感的匹配
2.常用操作指令 (1)root和alis root:指定亲求url对应的文件系统目录。location /images/ { root /data;} 这个配置会在这个 /data/images/ 目录下查找。 alis:与root类似,不过它是替代整个url部分。location /images/ { alias /data/images/;} 这个配置会在 /data/images/ 这个目录下查找。
(2)try_files:尝试按照指定顺序查找,找到第一个文件后返回,如果如果找不到可以选择返回404或其他错误。 location / { try_files $uri $uri/ =404; # 尝试找文件,找不到返回 404 错误 }
(3)反向代理(proxy_pass) proxy_pass:将请求转发到后端服务器,常用于反向代理。 location /api/ { # 将 /api/ 请求转发到 http://backend_server proxy_pass http://backend_server; }
(4)重定向(rewrite) rewrite:根据正则表达式怼url进行重写(修改亲求的url),可以支持两种类型的重定向,permanent:表示永久重定向,返回 HTTP 状态码 301。redirect:表示临时重定向,返回 HTTP 状态码 302。 location /old/ { # 将 /old/ 路径重定向到 /new/ rewrite ^/old/(.*)$ /new/$1 permanent; }
(5)访问控制(allow, deny) allow和deny:控制那些IP地址可以访问该路径,可以基于IP地址/子网等进行限制。 location /admin/ { # 允许 192.168.1.0/24 网段的访问 allow 192.168.1.0/24; # 拒绝所有其他访问 deny all; }
|