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
。