Нужно чтобы при обращении к http://внеш_ip:8081/чегототам/123 был произведено обращение к http://внутр_ip:8081/чегототам/123 и произведена перезапись соответствующих заголовков.Сейчас при обращении http://внеш_ip:8081/чегототам/123 происходит вывод в браузере
http://внутр_ip:8081/чегототам/123Конфигу nginx почти не трогал:
cat /etc/nginx/nginx.conf
user nginx nginx;
worker_processes 1;error_log /var/log/nginx/error_log info;
events {
worker_connections 1024;
use epoll;
}http {
include /etc/nginx/mime.types;
default_type application/octet-stream;log_format main
'$remote_addr - $remote_user [$time_local] '
'"$request" $status $bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$gzip_ratio"';client_header_timeout 10m;
client_body_timeout 10m;
send_timeout 10m;connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 4 2k;
request_pool_size 4k;gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;output_buffers 1 32k;
postpone_output 1460;sendfile on;
tcp_nopush on;
tcp_nodelay on;keepalive_timeout 75 20;
ignore_invalid_headers on;
index index.html;
server {
listen внеш_ip:8081;
server_name внеш_ip;
location = / {
rewrite ^ http://внутр_ip:8081/;
proxy_pass http://внутр_ip:8081/;
proxy_redirect off;
}
access_log /var/log/nginx/localhost.access_log main;
error_log /var/log/nginx/localhost.error_log info;# root /var/www/localhost/htdocs;
}
}
> location = /Читайте документацию по location.
>
> rewrite ^ http://внутр_ip:8081/;Эта директива - полный бред.
Читайте документацию по rewrite.
Вижу в вашем конфиге полнейшее непонимание что вы делаете. Ну ничего.
Зачем вам директива proxy_pass непонятно. И зачем такое перенаправление вообще??? Ваш внутренний адрес из "мира" вы не увидите.
Вобщем, если вам нужно просто перенаправлять запросы на другой адрес, то лучше 2 серверных блока. Типа этогоserver {
listen EXTERNAL_IP:80;
server_name www.blabla.com;
return 301 $scheme://INERNAL_IP$request_uri;
}server {
listen INTERNAL_IP:80;.....
}
>[оверквотинг удален]
> лучше 2 серверных блока. Типа этого
> server {
> listen EXTERNAL_IP:80;
> server_name www.blabla.com;
> return 301 $scheme://INERNAL_IP$request_uri;
> }
> server {
> listen INTERNAL_IP:80;
> .....
> }не-не не. Это не правильный скелет конфига.
Топикстартеру нужно просто правильно настроить проксирование (proxy_pass).
Для этого нужно постепенно разобраться с директивой location {}, убрать весь crap, и усложнять конфиг постепенно по мере роста потребностей, а не лепить непонятные равно и rewrite.