关于 nginx 配置 的一些解释

Nginx配置文件是一个非常强大且灵活的工具,可以用来配置服务器端口,设置HTTP头,缓存控制,进行反向代理,负载均衡等等。以下是一些基本的配置及其含义。

配置文件通常位于/etc/nginx/nginx.conf ,或者其他类似的地方,这取决于你的系统和安装方法。

一个基本的Nginx配置文档可能如下所示:

events{
worker_connections 1024;  # 这个决定了Nginx最大连接数,通常设置为1024。
}

http{
    include mime.types;  # MIME类型文件,定义了文件类型与扩展名的对应关系。

    server{
        listen 80;  # Nginx监听的端口。通常设定为80,也就是HTTP的默认端口。

        server_name  localhost;  #服务器名称,可以是域名,也可以是 IP 地址。

        location  /{ #  匹配的路径。/ 表示根路径,即所有请求。
           root   /usr/share/nginx/html; # 定义服务器的默认网站根目录位置。
           index  index.html index.htm;  # 定义默认站点的首页文件名。
        }
    }
}

关于location 指令的使用:

location = / {
   #  字符串精确匹配,只有完全匹配上面的路径时,才用此 location
}

location / {
    # 匹配任何请求,因为所有请求的URL 都以/开始
    # 但是最低优先级
}

location ^~ /images/ {
   # 匹配以 /images/ 开头的请求, 并停止往下搜索,节省了匹配查询时间
}

location ~ \.(gif|jpg|jpeg|png)$ {
    # 匹配所有以.gif,.jpg, .jpeg, .png 结尾的请求
    # 然而所有的请求 对正则的查询效率相对比较低,所以尽量使用前面的方式定义
}

关于反向代理配置:

location / {
   proxy_pass http://localhost:8000; # 表示所有进入/的HTTP请求都转发到本机8000端口。
   proxy_set_header Host $host:$server_port;
   proxy_set_header X-Real-IP $remote_addr;
}

关于负载均衡配置:

http {
    upstream backend {
        server backend1.example.com weight=3;
        server backend2.example.com;
        server backend3.example.com;
    }

    server {
        location / {
            proxy_pass http://backend;
        }
    }
}

这个配置将HTTP流量分发到名为 "backend" 的服务器组,组内每台服务器平均接受的流量由 weight 参数控制,weight 参数省略表示 默认值为1,这里 backend1.example.com 的权重为3,所以它将接收到更多的流量。

这只是Nginx配置的一部分,其功能非常丰富,建议参考Nginx的官方文档来学习更多的配置信息。

在你的配置中,proxy_pass指令的行为会有所不同。当你在location指令中使用了具有尾斜杠的URI(例如/message_center/),并且在proxy_pass指令中没有指定具体的路径(例如https://beta-kmg.goms.com.cn/),那么Nginx会将匹配到的location路径部分替换掉,而不是附加到proxy_pass的URL后。

所以,如果客户端请求的是/message_center/login,Nginx会将这个请求转发到https://beta-kmg.goms.com.cn/login,而不是https://beta-kmg.goms.com.cn/message_center/login

posted @ 2023-10-26 22:55  踏浪小鲨鱼  阅读(39)  评论(0编辑  收藏  举报