主配置文件:
目录
/etc/nginx/nginx.conf
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
include /etc/nginx/conf.d/*.conf;
server {
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
location /challenge {
# 保留代理之前的host 包含客户端真实的域名和端口号
proxy_set_header Host $host;
# 保留代理之前的真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
# 这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 表示客户端真实的协议(http还是https)
proxy_set_header X-Forwarded-Proto $scheme;
# 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
# 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
# proxy_redirect [ default|off|redirect replacement ];
proxy_redirect off;
proxy_pass http://localhost:86;
}
}
}
自定义配置文件:
目录
/etc/nginx/conf.d/default.conf
server {
listen 443 ssl;
server_name xxx.top www.xxx.top;
ssl_certificate /etc/nginx/tls/fullchain2.pem;
ssl_certificate_key /etc/nginx/tls/key2.pem;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
set $flag 0;
if ($http_referer ~* "https://www.xxx.top") {
set $flag "${flag}1";
}
if ($request_uri !~* "k8s") {
set $flag "${flag}2";
}
location / {
set $backend "http://localhost:83";
if ($flag = "012") {
set $backend "https://localhost:30001";
}
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_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_pass $backend;
}
location /lark {
# 保留代理之前的host 包含客户端真实的域名和端口号
proxy_set_header Host $host;
# 保留代理之前的真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
# 这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 表示客户端真实的协议(http还是https)
proxy_set_header X-Forwarded-Proto $scheme;
# 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
# 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
# proxy_redirect [ default|off|redirect replacement ];
proxy_redirect off;
proxy_pass http://localhost:84;
}
location /test {
# 保留代理之前的host 包含客户端真实的域名和端口号
proxy_set_header Host $host;
# 保留代理之前的真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
# 这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 表示客户端真实的协议(http还是https)
proxy_set_header X-Forwarded-Proto $scheme;
# 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
# 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
# proxy_redirect [ default|off|redirect replacement ];
proxy_redirect off;
proxy_pass http://localhost:85/;
}
location /challenge {
# 保留代理之前的host 包含客户端真实的域名和端口号
proxy_set_header Host $host;
# 保留代理之前的真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
# 这个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 表示客户端真实的协议(http还是https)
proxy_set_header X-Forwarded-Proto $scheme;
# 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
# 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
# proxy_redirect [ default|off|redirect replacement ];
proxy_redirect off;
proxy_pass http://localhost:86;
}
location /k8s {
# 保留代理之前的host 包含客户端真实的域名和端口号
proxy_set_header Host $host;
# 保留代理之前的真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
# ���个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 表示客户端真实的协议(http还是https)
proxy_set_header X-Forwarded-Proto $scheme;
# 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
# 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
# proxy_redirect [ default|off|redirect replacement ];
proxy_redirect off;
proxy_pass https://localhost:30001/;
}
}
k8s dashboard的访问地址:
针对dashboard访问地址转发的核心配置:
set $flag 0;
if ($http_referer ~* "https://www.xxx.top") {
set $flag "${flag}1";
}
if ($request_uri !~* "k8s") {
set $flag "${flag}2";
}
location / {
set $backend "http://localhost:83";
if ($flag = "012") {
set $backend "https://localhost:30001";
}
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_set_header X-Forwarded-Proto $scheme;
proxy_redirect off;
proxy_pass $backend;
}
location /k8s {
# 保留代理之前的host 包含客户端真实的域名和端口号
proxy_set_header Host $host;
# 保留代理之前的真实客户端ip
proxy_set_header X-Real-IP $remote_addr;
# ���个Header和X-Real-IP类似,但它在多级代理时会包含真实客户端及中间每个代理服务器的IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 表示客户端真实的协议(http还是https)
proxy_set_header X-Forwarded-Proto $scheme;
# 指定修改被代理服务器返回的响应头中的location头域跟refresh头域数值
# 如果使用"default"参数,将根据location和proxy_pass参数的设置来决定。
# proxy_redirect [ default|off|redirect replacement ];
proxy_redirect off;
proxy_pass https://localhost:30001/;
}
网友评论