저는 Nginx를 프록시 서버로 실행하여 10.12.96.4로 전달하고 있습니다.
ens3:
NGINX 서버가 tun0을 통해 요청을 수신하고 전달하도록 하고 싶습니다 .
여기 나의 /etc/nginx/sites-available/default
:
server {
listen 149.28.239.231:80;
server_name default_server;
location / {
proxy_pass http://45.77.185.160:80;
# proxy_pass http://10.12.96.4:80;
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;
}
}
server {
listen 443;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/cert.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
location /
{
proxy_pass https://45.77.185.160:443;
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;
}
}
내 인터페이스 구성은 다음과 같습니다.
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
inet 100.68.26.219/10 brd 100.127.255.255 scope global ens3
inet 149.28.239.231/23 brd 149.28.239.255 scope global ens3:1
inet6 2001:19f0:5:65d3:5400:1ff:fea6:9b5/64 scope global
inet6 fe80::5400:1ff:fea6:9b5/64 scope link
inet 10.8.0.3/24 brd 10.8.0.255 scope global tun0
답변1
해당 인터페이스의 네트워크 주소에 바인딩할 수 있습니다.
인터페이스 구성에 따라 청취 구성은 다음과 같습니다.
listen 149.28.238.0:80;
활성/활성 HA 클러스터를 설정하는 중이며 작동하려면 이 클러스터가 필요합니다. 내 테스트 구성은 다음과 같습니다.
[root@b7311458cb35 nginx_plus]# cat /etc/nginx/sites-enabled/docker-test.local.conf
# MANAGED BY PUPPET
server {
listen 172.17.0.0:80;
server_name docker-test.local;
status_zone docker-test;
index index.html index.htm index.php;
access_log /var/log/nginx/docker-test.local.access.log combined;
error_log /var/log/nginx/docker-test.local.error.log;
location / {
proxy_pass http://docker-test;
proxy_read_timeout 90s;
proxy_connect_timeout 90s;
proxy_send_timeout 90s;
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 Proxy "";
}
}
내 네트워크 세부정보
[root@b7311458cb35 nginx_plus]# ip route
default via 172.17.0.1 dev eth0
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.4
구성 테스트:
[root@b7311458cb35 nginx_plus]# curl http://172.17.0.4:80/ | head -5
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 612 100 612 0 0 101k 0 --:--:-- --:--:-- --:--:-- 119k
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
답변2
답변이 완료되었습니다. nginx에는 layer2/3 개념이 없기 때문에 인터페이스에 바인딩할 수 없습니다. 고정 IP 또는 동적 IP를 모니터링하는 래퍼 스크립트를 사용하고 필요에 따라 새로운 .conf를 작성하고 가동 중지 시간 없이 다시 시작하십시오.