Похоже на использование общедоступного имени интернет-домена или интернет-IP-адреса, связанного с сервером Linux, чтобы сделать перенаправление портов. Путь по существу похож на это:
окна-> internet1-> internet2-> Linux-> internet2
То, что Вы хотите сделать, использовать внутренний IP-адрес или внутреннее имя, которое связано с системой Linux. Если Вы сделаете ipconfig в терминале окон, то Вы будете видеть, что Ваш IP-адрес запускается с чего-то как 192.168.x.x или 10.x.x.x. Когда Вы будете ssh'd в свой сервер Linux, сделайте ifconfig, чтобы получить его IP-адрес, внутренний к Вашей сети и использовать ее вместо этого. Это дало бы Вам соединение, которое больше походит на это:
окна-> Linux-> internet2
Между прочим, если Вы используете ssh-X из Вашего virtualbox Linux и затем запускаете Firefox из командной строки, Вы по существу видите то, что Вы видели бы, использовали ли Вы Firefox физически в сервере Linux. Это не производит точное сравнение в Ваших целях. Это отчасти похоже на vnc или удаленный рабочий стол.
Для создания более точного сравнения в virtualbox используйте ssh-D localhost:4000 username@linuxServer и затем используйте настройки прокси Firefox точно так же, как Вы сделали в окнах.
Это то, что MTecknology
и kolbyjack
посоветовали мне сделать на #nginx
.
server {
listen 80;
server_name ~^(?<instance>.+?)\.foo.example.com$;
root /var/www/$instance.foo.example.com;
set $htaccess_user_file /var/htaccess/$instance.foo.example.com/.htaccess;
if (!-f $htaccess_user_file) {
return 599;
}
location / {
auth_basic "Restricted";
auth_basic_user_file $htaccess_user_file;
try_files $uri /index.html =404;
}
error_page 599 = @foo;
location @foo {
root /var/www/$instance.foo.example.com;
try_files $uri /index.html =404;
}
}
Работали безупречно!
] Расширение этого ответа , если у вас есть несколько записей / location
, которые вам нужно переместите блок if
в соответствующее место.
worker_processes 1;
events {
worker_connections 1024;
accept_mutex off;
use epoll;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
upstream app_server {
server localhost:8000 fail_timeout=0;
}
server {
listen 80;
set $htaccess_user_file /etc/secrets/nginx-proxy/htaccess;
error_log stderr info;
keepalive_timeout 5;
location /static {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public";
autoindex off;
alias /mnt/static/;
gzip on;
gzip_buffers 16 8k;
gzip_comp_level 9;
gzip_http_version 1.0;
gzip_min_length 0;
gzip_types text/plain
text/css
image/x-icon
image/svg+xml
image/png
image/jpg
image/jpeg
text/js
application/javascript
application/x-javascript;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
}
location /media {
autoindex off;
alias /mnt/media/;
}
error_page 599 = @noauth;
location / {
if (!-f $htaccess_user_file) {
return 599;
}
auth_basic "Restricted";
auth_basic_user_file $htaccess_user_file;
try_files $uri @proxy_to_app;
}
location @noauth {
try_files $uri @proxy_to_app;
}
location @proxy_to_app {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_buffering off;
proxy_pass http://app_server;
}
}
}