Конфигурация прокси Nginx nginx.conf — обратный прокси

1. Простая конфигурация

Настройте сервер, на котором страница обратного прокси настроена через восходящий поток.

ser  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream web {
	server xxx.xxx.xxx.xxxx:8081;
    }	

    server {
      	listen       80;
	    server_name  localhost;

	    location /tomcat {
        	proxy_pass http://web/;
    	}
		    

    }

}

На этом этапе, если это просто прокси-интерфейс, его можно использовать как обычно. Однако, если это прокси-страница, возникнут такие проблемы, как css, js и т. д. 404, что приведет к ненормальной работе страницы.

2. Статические файлы прокси

Добавьте следующее местоположение на сервер

location ~ .*\.(js|css)?$ {
     expires 12h;
	 proxy_pass http://web;
}
	
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|svg)?$ {
     expires 12h;
     proxy_pass http://web;
}

После добавления прокси статического ресурса функция работает нормально. Вложение: Если вам необходимо проксировать статические ресурсы по определенному пути, см.:

Содержимое раздела 3 в статических ресурсах по указанному пути .

3. Выступать в качестве агента по нескольким проектам

При проксировании нескольких проектов его можно назначить нескольким портам. Его эталонная конфигурация выглядит следующим образом:

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;

    upstream minio {
	server xxx.xxx.xxx:9090;
    }	

    upstream web {
        server xxx.xxx.xxx:8081;
    }


    server {
      	listen       80;
	    server_name  localhost;

	    location / {
        	proxy_pass http://minio;
    	}
		
  	    location ~ .*\.(js|css)?$ {
        	expires off;
	        proxy_pass http://minio;
    	}
	
	    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|svg)?$ {
        	expires off;
        	proxy_pass http://minio;
	    }	    

    }

    server {
        listen       8081;
        server_name  localhost;

        location / {
            proxy_pass http://web;
        }

        location ~ .*\.(js|css)?$ {
            expires off;
            proxy_pass http://web;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|svg)?$ {
            expires off;
            proxy_pass http://web;
        }
    }

}

4. На что следует обратить внимание

Если вы по-прежнему не можете получить доступ в соответствии с приведенной выше конфигурацией, выполните следующие действия для устранения неполадок:

  • Открыт ли порт брандмауэра и открыт ли соответствующий порт, вы можете использовать telnet, чтобы проверить
  • Если Nginx запускается с помощью Docker, необходимо сопоставить несколько портов, иначе соответствующие порты будут недоступны. Вы можете использовать lsof -i:port вне контейнера для проверки

Пример сопоставления (порты 80 и 8081), когда Docker создает контейнер, выглядит следующим образом:

docker run \
-p 80:80 \
-p 8081:8081 \
--name nginx \
-v /home/map/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/map/nginx/conf:/etc/nginx/conf.d \
-v /home/map/nginx/log:/var/log/nginx \
-v /home/map/nginx/html:/usr/share/nginx/html \
-d f9c14fe76d50

おすすめ

転載: blog.csdn.net/pp_lan/article/details/131555856