Nginx在Window与Mac环境的使用及配置详情
作者:mmseoamin日期:2023-12-11

文章目录

  • 前言
  • 一、下载安装
  • 二、使用
    • windows 使用
      • 开启nginx
      • 关闭nginx
      • 查看端口号使用情况
      • 脚本开始Nginx服务
      • Mac使用
        • 开启nginx
        • 关闭nginx
        • 重新加载nginx
        • 查看Nginx配置文件
        • 三、常用配置(持续更新)
          • 1、设置端口号和名称
          • 2、设置指向资源路径
          • 3、使用 try_files 解决无法找到文件情况(404)
          • 4、接口代理转发
          • 5、设置对应错误码访问路径
          • 6、开启压缩模式
          • 7、开启多个服务
          • 8、负载均衡配置
          • 9、上传文件及上传时间配置
          • 总结

            前言

            • 什么是nginx?

              Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

              由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,

              并且cpu、内存等资源消耗却非常低,运行非常稳定。

            • 应用场景

              http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。

              虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。

              反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。


              一、下载安装

              • window直接下载nginx使用
              • Mac 使用brew安装

                二、使用

                windows 使用

                开启nginx

                直接把页面资源放置html文件夹内,然后双击nginx.exe或者使用start nginx命令开启

                Nginx在Window与Mac环境的使用及配置详情,在这里插入图片描述,第1张

                关闭nginx

                执行下面命令

                查看windows任务管理器下Nginx的进程命令:tasklist /fi "imagename eq nginx.exe"

                Nginx在Window与Mac环境的使用及配置详情,在这里插入图片描述,第2张

                然后执行taskkill /f /t /im nginx.exe退出进程

                Nginx在Window与Mac环境的使用及配置详情,在这里插入图片描述,第3张

                或者直接在任务管理器来关闭(右键,选择退出)

                Nginx在Window与Mac环境的使用及配置详情,在这里插入图片描述,第4张

                查看端口号使用情况

                tasklist | findstr "进程id号"
                

                脚本开始Nginx服务

                @echo off
                rem 如果启动前已经启动nginx并记录下pid文件,会kill指定进程
                nginx.exe -s stop
                rem 测试配置文件语法正确性
                nginx.exe -t -c conf/nginx.conf
                rem 显示版本信息
                nginx.exe -v
                rem 按照指定配置去启动nginx
                nginx.exe -c conf/nginx.conf
                

                Mac使用

                • 安装
                  brew install nginx
                  
                  • 查看 nginx 版本
                    nginx -v
                    
                    • 查看nginx安装信息
                      brew info nginx
                      

                      Nginx在Window与Mac环境的使用及配置详情,在这里插入图片描述,第5张

                      打开资源目录文件

                      open /opt/homebrew/var/www
                      

                      2然后更新对应文件资源内容

                      开启nginx

                      nginx
                      

                      访问 localhos:8080

                      Nginx在Window与Mac环境的使用及配置详情,在这里插入图片描述,第6张

                      关闭nginx

                      nginx -s stop
                      or
                      // 此命令在修改配置后执行不生效
                      sudo brew services stop nginx
                      

                      重新加载nginx

                      nginx -s reload
                      

                      查看Nginx配置文件

                      vim /opt/homebrew/etc/nginx/nginx.conf
                      

                      也可open /opt/homebrew/etc/nginx/ 打开文件,使用其他软件打开文件也可以

                      三、常用配置(持续更新)

                      1、设置端口号和名称

                      server {
                      	# 设置端口号,一般设置四位数
                          listen         8000;
                          # 设置服务名称为 localhost 访问地址为 localhost:8000 或者是 本机IP:8000
                          # server_name  localhost;
                          # 设置一些域名、别名等
                          server_name    somename  alias  another.alias;
                          ...
                      }
                      

                      2、设置指向资源路径

                      可根据实际需求配置对应文件路径

                      # 指向 html 目录
                      server {
                        	...
                          location / {
                      	    root   html;
                      	    ...
                      	}
                      }
                      # 指向 index/html 目录
                      server {
                        	...
                          location / {
                      	    root   index/html;
                      	    ...
                      	}
                      }
                      

                      3、使用 try_files 解决无法找到文件情况(404)

                      server {
                        	...
                          location / {
                              root /html
                              # try_files 将尝试你列出的文件并设置内部文件指向
                              # 即 try_files 依次检测 /index.html , /index.htm , /$uri 是否存在,若不存在则重定向到@router
                              try_files $uri $uri/ @router;
                              index index.html index.htm;
                              gzip_static on;
                          }
                          # 对应上面的 @router ,主要原因是路由的路径资源并不是一个真实的路径,所以无法找到具体的文件
                          # 因此需要rewrite到index.html(即根目录html)中,然后交给路由在处理请求资源
                          location @router {
                              rewrite ^.*$ /html/index.html last;
                          }
                      }
                      

                      4、接口代理转发

                      server {
                          ...
                          location /api {
                          	# 如果实际接口没有当前代理前缀,需要重写路径
                          	# add_header backendIP $upstream_addr; # 设置响应头显示转发实际地址
                              # add_header backendCode $upstream_status; # 设置响应头显示转发实际状态码
                              # rewrite  ^/api/?(.*)$ /$1 break;
                              # 可根据实际情况设置代理请求头
                              # proxy_set_header Host $host;
                              # proxy_set_header X-Real-IP $remote_addr;
                              # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                              proxy_pass http://170.0.0.0:1757; # 转发地址
                              # proxy_redirect http://170.0.0.0:1757 ;# 代理重定向
                          }
                      }
                      

                      5、设置对应错误码访问路径

                      server {
                          ...
                          # error_page  404              /404.html;
                          # redirect server error pages to the static page /50x.html
                          #
                          error_page   500 502 503 504  /50x.html;
                          location = /50x.html {
                              root   html;
                          }
                      }
                      

                      6、开启压缩模式

                      server {
                          ...
                          location / {
                              # root   html;
                              gzip_static on;
                          }
                      }
                      

                      7、开启多个服务

                      复制多个server,配置不同端口号等即可

                      server {
                      	listen       8001;
                          server_name  localhost;
                          ...
                          location / {
                          	...    
                          }
                      }
                      server {
                      	listen       8002;
                          server_name  localhost;
                          ...
                          location / {
                          	...    
                          }
                      }
                      

                      8、负载均衡配置

                      如果一个服务由多个服务器提供,需要把负载分配到不同的服务器处理,需要负载均衡。即代理配置多台服务器

                      upstream tomcat {
                      	# 可以根据服务器的实际情况调整服务器权重。权重越高分配的请求越多,权重越低,请求越少。默认是都是1
                          server 172.0.0.0:8001 weight=2;
                          server 172.0.0.0:8002;
                          server 172.0.0.0:8003;
                      }
                      server {
                      	listen       8001;
                          server_name  localhost;
                          ...
                          location / {
                          	proxy_pass http://tomcat; # 转发地址
                          	...    
                          }
                      }
                      

                      9、上传文件及上传时间配置

                      在http位置设置以下即可

                      client_max_body_size     50m; // 限制文件大小
                      client_header_timeout    5m; // 时间 5分钟
                      client_body_timeout      5m; 时间 5分钟
                      proxy_connect_timeout     600s; // 时间 600秒
                      proxy_read_timeout      10m; // 时间 10分钟
                      proxy_send_timeout      10m; // 时间 10分钟
                      keepalive_timeout  65;
                      

                      总结

                      # nginx
                      官方下载地址:[url](http://nginx.org/en/download.html)
                      [参考](https://cloud.tencent.com/developer/article/1333800)
                      nginx代理
                      查看Nginx的版本号:`nginx -V`
                      启动Nginx:`start nginx`
                      快速停止或关闭Nginx:`nginx -s stop`
                      正常停止或关闭Nginx:`nginx -s quit`
                      配置文件修改重装载命令:`nginx -s reload`
                      查看端口号占用情况:`tasklist | findstr "进程id号"`
                      查看windows任务管理器下Nginx的进程命令:`tasklist /fi "imagename eq nginx.exe"`
                      然后执行 `taskkill /f /t /im nginx.exe`退出进程