ファイアウォールで開いているポートが1つだけで、複数のサービスが実行されています。 URIに基づくリクエストを別のアプリケーションにリダイレクトしたい。たとえば、ポート8440で実行されている1つのアプリケーションにリダイレクトされるhttp:example.com:8443/test1にアクセスしていて、ポート80で実行されているマスターnginxプロセスにリダイレクトされるhttp:example.com:8443/test1にアクセスしている場合
私の構成ファイルは次のようになります:
server {
listen 127.0.0.1:8443;
location /test1{
proxy_pass http://127.0.0.1:8230;
}
}
server {
listen 127.0.0.1:8443;
client_max_body_size 100m;
location /test2{
proxy_pass http://127.0.0.1:80; #Nginx master webserver port
}
}
しかし、localhost:8443/test2にアクセスすると、403 Forbidden
ただし、test1のリダイレクトポートが80の場合、次のようになります。
server {
listen 127.0.0.1:8443;
location /test1{
proxy_pass http://127.0.0.1:80;
}
}
それは働いています。
どちらも127.0.0.1:8443
でリッスンしているため、サーバーは1つだけにする必要があります。次に、そのサーバー内に2つのロケーションブロックがあります。次に例を示します。
server {
listen 127.0.0.1:8443;
client_max_body_size 100m;
location /test1 {
proxy_pass http://127.0.0.1:8230;
}
location /test2 {
proxy_pass http://127.0.0.1:80; #Nginx master webserver port
}
}
また、トラフィックをリダイレクトするのではなく、プロキシしていることに注意してください。 /test2
もポート80でサーバーに直接渡される可能性が高いため、アプリケーションの設定方法によっては、さらに多くの設定が必要になる可能性があります。
pdate: for PHPサポートするには、php-fpmがインストールされていることを確認する必要があり、マスターnginxサーバーにロケーションブロックが必要です。 :
location ~ \.php$ {
proxy_pass http://your_ip_address:8080;
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;
}