Это обратный прокси-сервер, и директива, которой вы являетесь ищу proxy_pass
. Экземпляр хоста nginx
будет иметь несколько контейнеров server
, например:
server {
listen 80;
server_name d1.example.com;
location / {
proxy_pass http://10.0.3.100;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Accept-Encoding "";
}
}
См. Документацию по модулю прокси и документацию WebSocket (если применимый).
Проблема:После выполнения exec bash
псевдонимы, представленные в приглашении входа по умолчанию, теряются, что приводит к тому, что некоторые команды не работают должным образом, например, tcpdump в следующем примере
-bash-4.2$ tcpdump -i port1 -w /home/user/$HOSTNAME-port1.pcap -c10000 -G300
tcpdump: WARNING: port1: no IPv4 address assigned
tcpdump: listening on port1, link-type EN10MB (Ethernet), capture size 65535 bytes
0 packets captured
0 packets received by filter
0 packets dropped by kernel
-bash-4.2$ exec bash
bash-4.2$ tcpdump -i port1 -w /home/user/$HOSTNAME-port1.pcap -c10000 -G300
tcpdump: port1: You don't have permission to capture on that device
(socket: Operation not permitted)
Исправление:Вы можете сделать то же, что и я, и выяснить, как меняются псевдонимы между различными подсказками
-bash-4.2$ type tcpdump
tcpdump is aliased to 'sudo /usr/sbin/tcpdump'
-bash-4.2$ exec bash
bash-4.2$ type tcpdump
tcpdump is /usr/sbin/tcpdump
, а затем измените сценарий, чтобы использовать эти sudo tcpdump
вместо простого tcpdump
.
Или, в качестве альтернативы, вы можете восстановить все псевдонимы, присутствующие в исходной подсказке, запустив exec -a -bash bash
(, что явно не рекомендуется, см. @ctrl -alt -комментарий Делора)