Um proxy reverso
1.1 O que é um proxy reverso
Atacante Proxy
Proxy reverso:
modo de proxy reverso (proxy reverso) refere-se ao servidor proxy para aceitar solicitações de conexão na internet, em seguida 将请求转发给内部网络上的服务器
, e retorna para o cliente solicitante sobre a ligação à Internet nos resultados obtidos a partir do servidor, e as aparece servidor proxy externos como um servidor proxy reverso.
Reversa determina servidor proxy que servidor para fornecer serviços.
Dependendo da solicitação de nome de domínio, Nginx
encaminha o pedido para o servidor correspondente, escondendo assim o endereço real do servidor.
Inversa servidor proxy não prestação de serviços, também
请求的转发
.
1.2 Vantagens proxy reverso
benefícios proxy reverso: 隐藏真实内部 ip 地址
um pedido para acessar nginx
um servidor proxy (fora da rede de acesso lata), em seguida, usar o nginx
servidor de retransmissão para o servidor real.
1,3 Nginx
para atingir proxy reverso
Dois nomes de domínio apontar para o mesmo nginx
servidor, diferentes usuários acessam o nome de domínio para exibir conteúdos da Web diferentes.
- Dois nomes de domínio são
www.e3mall.com
ewww.taotao.com
nginx
O servidor usa uma máquina virtual:192.168.153.11
Passo 1: Instalar dois
tomcat
estavam a funcionar8080
e8081
porta.
Baixar Tomcat
:
wget https://archive.apache.org/dist/tomcat/tomcat-8/v8.0.23/bin/apache-tomcat-8.0.23.tar.gz
descompressão:
tar -zxvf apache-tomcat-8.0.23.tar.gz
Copie os dois Tomcat
:
cp apache-tomcat-8.0.23 tomcat-1 -r
cp apache-tomcat-8.0.23 tomcat-2 -r
[root@weaver-1 ~]# ll
total 8872
-rw-------. 1 root root 1801 Jan 6 15:48 anaconda-ks.cfg
drwxr-xr-x. 9 root root 160 Mar 18 03:43 apache-tomcat-8.0.23
-rw-r--r--. 1 root root 9076980 May 19 2015 apache-tomcat-8.0.23.tar.gz
drwxr-xr-x. 9 root root 160 Mar 18 03:44 tomcat-1
drwxr-xr-x. 9 root root 160 Mar 18 03:44 tomcat-2
[root@weaver-1 ~]#
Modificar tomcat-1
o número da porta é 8001
:
vi tomcat-1/conf/server.xml
Modificar as três portas:
# 8005 改为 8006
<Server port="8006" shutdown="SHUTDOWN">
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
......
# 8080 改为 8001
<Connector port="8001" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
......
# 8009 改为 8010
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
Modificar tomcat-2
o número da porta é 8002
:
vi tomcat-2/conf/server.xml
Modificar as três portas:
# 8005 改为 8007
<Server port="8007" shutdown="SHUTDOWN">
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
......
# 8080 改为 8002
<Connector port="8002" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
......
# 8009 改为 8011
<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
Segundo Passo: Comece dois
tomcat
:
tomcat-1/bin/startup.sh
tomcat-2/bin/startup.sh
[root@weaver-1 ~]# tomcat-1/bin/startup.sh
Using CATALINA_BASE: /root/tomcat-1
Using CATALINA_HOME: /root/tomcat-1
Using CATALINA_TMPDIR: /root/tomcat-1/temp
Using JRE_HOME: /usr/java/jdk1.8.0_131
Using CLASSPATH: /root/tomcat-1/bin/bootstrap.jar:/root/tomcat-1/bin/tomcat-juli.jar
Tomcat started.
[root@weaver-1 ~]# tomcat-2/bin/startup.sh
Using CATALINA_BASE: /root/tomcat-2
Using CATALINA_HOME: /root/tomcat-2
Using CATALINA_TMPDIR: /root/tomcat-2/temp
Using JRE_HOME: /usr/java/jdk1.8.0_131
Using CLASSPATH: /root/tomcat-2/bin/bootstrap.jar:/root/tomcat-2/bin/tomcat-juli.jar
Tomcat started.
[root@weaver-1 ~]#
Ver startup de sucesso:
tail -f tomcat-1/logs/catalina.out
tail -f tomcat-2/logs/catalina.out
teste:
Modificar a página de boas-vindas:
vi tomcat-1/webapps/ROOT/index.jsp
vi tomcat-2/webapps/ROOT/index.jsp
```bash
<h1>${pageContext.servletContext.serverInfo} - 8001</h1>
<h1>${pageContext.servletContext.serverInfo} - 8002</h1>
Atualizar página:
Terceiro Passo: configurar um servidor proxy reverso
Modificar o nginx
arquivo de configuração:
vi /usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;
sendfile on;
keepalive_timeout 65;
#gzip on;
server {
listen 80; # server监听的端口号
server_name localhost; # 配置域名
location / {
root html; # 拦截后,跳转根路径
index index.html index.htm; # 默认页面
}
}
############ 添加配置一
server {
listen 80;
server_name www.test1.com;
location / {
proxy_pass http://127.0.0.1:8001;
index index.html index.htm;
}
}
############ 添加配置二
server {
listen 80;
server_name www.test2.com;
location / {
proxy_pass http://127.0.0.1:8002;
index index.html index.htm;
}
}
}
Ou configurado como se segue:
#user nobody;
worker_processes 1;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#access_log logs/access.log main;
sendfile on;
keepalive_timeout 65;
#gzip on;
server {
listen 80; # server监听的端口号
server_name localhost; # 配置域名
location / {
root html; # 拦截后,跳转根路径
index index.html index.htm; # 默认页面
}
}
############ 添加配置一
upstream test1 {
server 127.0.0.1:8001;
}
server {
listen 80;
server_name www.test1.com;
location / {
proxy_pass http://test1;
index index.html index.htm;
}
}
############ 添加配置二
upstream test2 {
server 127.0.0.1:8002;
}
server {
listen 80;
server_name www.test2.com;
location / {
proxy_pass http://test2;
index index.html index.htm;
}
}
}
Passo quatro:
nginx
recarregar o arquivo de configuração.
/usr/local/nginx/sbin/nginx -s reload
Quinto passo: Configurar o nome de domínio
Adicionar um mapeamento entre o nome de domínio e IP no arquivo hosts na máquina
192.168.153.11 www.test.com
192.168.153.11 www.test1.com
192.168.153.11 www.test2.com
teste: