我已经设置了一个代理服务器,它将客户端请求转发到上游服务器,到目前为止该服务器运行良好。然而,我试图解决的问题是强制上游服务器记录代理服务器的请求ID。这可能吗?只是为了让您知道$_SERVER
上游服务器的变量包含[HTTP_X_REQUEST_ID] => 84708dd39a6c0c91e0d1a97404b40f75
代理服务器
配置
server {
...
add_header X-Request-ID $request_id;
proxy_set_header X-Request-ID $request_id;
location ~ ^/api/(.*) {
proxy_pass http://192.168.0.1:8080/$1$is_args$args;
}
...
}
Run Code Online (Sandbox Code Playgroud)
日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" "$request_id"';
Run Code Online (Sandbox Code Playgroud)
日志
172.17.0.1 ...... "84708dd39a6c0c91e0d1a97404b40f75"
Run Code Online (Sandbox Code Playgroud)
上游服务器
配置
server {
location ~ ^/index\.php(/|$) {
fastcgi_pass php_server:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
internal;
}
}
Run Code Online (Sandbox Code Playgroud)
日志格式
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent …
Run Code Online (Sandbox Code Playgroud) 当我在 Ubuntu 中按照以下步骤操作时,NTP 已启用并同步。然而,Debian Jessie 中的情况却相反。有人知道 Debian 说“不”的原因吗?由于“当地时间”是正确的,我还应该担心吗?
采取的步骤
$ timedatectl set-timezone Europe/London
$ sudo apt-get install -y ntp
$ cat /etc/ntp.conf
driftfile /var/lib/ntp/ntp.drift
server 0.uk.pool.ntp.org iburst
server 1.uk.pool.ntp.org iburst
server 2.uk.pool.ntp.org iburst
server 3.uk.pool.ntp.org iburst
restrict 127.0.0.1
restrict ::1
$ service ntp stop
$ ntpd -gq
$ service ntp start
$ systemctl enable ntp
$ systemctl restart ntp
Run Code Online (Sandbox Code Playgroud)
Debian 状态
$ timedatectl
Local time: Sun 2018-05-27 08:57:32 BST
Universal time: Sun 2018-05-27 07:57:32 UTC
RTC time: Sun 2018-05-27 07:57:30 …
Run Code Online (Sandbox Code Playgroud)