Nginx一键配置方法, 再也不用担心我的Nginx配置了

Posted 行稳致远-tick

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Nginx一键配置方法, 再也不用担心我的Nginx配置了相关的知识,希望对你有一定的参考价值。

nginx做为开发者的神器, 据2021年8月web服务器排行榜, nginx占据了30%的流量稳居第一, 相信大部分程序员都不会陌生.
相信大部分的开发人员都经历过配置Nginx的过程, 每次配置都是要各种查查查的过程, 而且经常要配置个半天才能配置完成, 然后再进行测试. 推荐一个网站nginx在线配置,nginx快速配置 - 问蒙在线工具 (tool.fit)来进行快速配置.

Nginx配置说明

Nginx配置以key空格value然后分号为结束符, 以#为注释符, 大括号{}里面的称为文件块如"http {}", 主要分为以下几块内容:

基础配置说明

这里负责Nginx的全局参数, 负责Nginx正常工作的基本参数

  • worker_processes auto; #表示nginx启动的进程数和cpu的线程线一致
  • error_log log/error.log debug; #表示记录错误日志, 错误日志的文件是log/error.log,级别是debug.

HTTP配置说明

这里主要负责http/https的参数配置, 关于http的所有配置信息全部写在http配置块底下, 除了一些配置, 反向代理及负载均衡也都将配置在这下面. 例:

  • sendfile on; #开启高效的文件传输模式
  • gzip on; #开启gzip文件压缩
  • keepalive_timeout 65; #设置超时时间为65, 即连接的总时长为65秒, 如果有大文件的传输, 请更改选项

Server(反向代理)配置说明

这里主要配置当前的代理的参数, 大部分HTTP的配置参数能在这里使用, 若使用会覆盖掉HTP的参数如 keepalive_timeout 600; 那么此时, 超时时长在当前代理会变成600s, 即10分钟, 位置信息将配置到该代理下面, 常用的参数

  • listen 80; #监听80的端口
  • listen 443 ssl; #监听443的端口, 以https方式监听, 可以在一个代理下同时监听两个端口, 选择ssl需要配置相应的ssl_certificate和ssl_certificate_key
  • server_name tool.fit; #监听的域名, 可以由同一个端口, 多个域名, nginx会自动匹配到相应的反向代理上

Location(位置匹配)配置说明

位置信息匹配, 也是路由的匹配规则都将在这里体现. 主要语法location [=|~|~*|^~] /uri/ { … }

  • ^~ 开头表示uri以某个常规字符串开头,理解为匹配 url路径即可。nginx不对url做编码,因此请求为/static/20%/aa,可以被规则^~ /static/ /aa匹配到(注意是空格)。
        location ^~ /static/ {
            root /www/root/static;  #根目录
        }
  • ~ 开头表示区分大小写的正则匹配
        location /proxy {
            proxy_pass https://http_balance; 
        }
  • ~* 开头表示不区分大小写的正则匹配
  • !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 的正则
  • / 通用匹配,任何请求都会匹配到。
        location / {
            proxy_pass http://127.0.0.1:8000; 
        }
  • tcp/udp的server, 没有location选项, 只有端口, proxy_pass的时候不填前缀http://和https://, 另外udp的转发需要注意运行的nginx是否支持该项. 例:
    server {
        listen 888; 
        proxy_pass stream_balance; 
    }

Upstream(负载均衡)配置说明

负载均衡的目的, 是为了服务更多的前端请求, 同时更好的保证服务器集群的稳定性, 从而使系统更加健壮. 负载均衡的策略如下会话保持(sticky),ip绑定(ip_hash),最少连接(least_conn),最短时间(least_time),公平(fair),url绑定(url_hash), 请查询您用的版本是否带有该项策略, 如果没有请参考如何使用, 每条负载内部有相应的六个个参数, 即IP地址, 监听端口, 权重(weight), 最大失败次数(max_fails), 失败等待时间(fail_timeout), 状态(down, backup), 若留空表示正常状态.

    upstream stream_balance {
        server 127.0.0.1:7878 weight=100 fail_timeout=60 max_fails=3; 
        server 192.168.10.121:3333 backup; #热备
    }

下面让我们来个nginx配置python的Django的转发

监听81端口, 监听域名为www.tool.fit
基本的转发需要一个静态文件的读取, 即static, 假设为/www/static
会配置/api路由的接口专门转发到 192.168.1.100:8000和192.168.1.100:8888, 用ip_hash的策略去做转发
其它的通配路径/直接转发到http://192.168.1.100:8000
前端网络环境需要我们转发真实IP到后端环境

首先我们打开nginx在线配置,nginx快速配置 - 问蒙在线工具 (tool.fit), 上面已经配置了常见的属性, 现在我们实验下配置过程, 打开该网站, 先进行负载均衡配置

点击负载均衡, 在server的位置点击相应的编辑按钮

根据各个参数填入相应的值, 点击确定, 现在我们已经准备好了一个名叫http_balance名字的负载均衡分别指向192.168.1.100:8000和192.168.1.100:8888


点击相应的location进行参数的更改,

在代理目标里面输http_balance名, 和勾选携带HOST参数, 点击确定, 即可完成配置

最后您应该下载您所需要的Nginx.conf配置文件了, 直接点击下载即可以下载配置.

此时把nginx配置文件放到您的目录下, 即可以使用了, 当然下次编辑您可以直接用加载文件把该文件加载, 就可以在现在的基础上直接编辑了…, 祝您好运

以上是关于Nginx一键配置方法, 再也不用担心我的Nginx配置了的主要内容,如果未能解决你的问题,请参考以下文章

JS维护nginx反向代理,产品经理再也不用担心我跨域了!

再也不用担心了

再也不用担心连不上数据库了

android 傻瓜式 MultiDex 插件,从此再也不用担心方法数问题!

同步vscode配置和插件导入导出再也不用担心换电脑重新安装插件了!

shell定义带变量的模板,直接修改变量,用这种方法再也不用担心正则匹配不准的问题了