访问页面使用的是:http://localhost:9001 实际开发中,会有不同的环境:
如果不同环境使用不同的ip去访问,可能会出现一些问题。为了保证所有环境的一致,我们会在各种环境下都使用域名来访问。
那么,当我们在浏览器输入一个域名时,浏览器是如何找到对应服务的ip和端口的呢?
一个域名一定会被解析为一个或多个ip。这一般会包含两步:
我们不可能去购买一个域名,因此我们可以伪造本地的hosts文件,实现对域名的解析。修改本地的host为:
127.0.0.1 api.enjoyment.com
127.0.0.1 manage.enjoyment.com
这样就实现了域名的关系映射了。
ping一下域名试试是否畅通:
nginx可以作为web服务器,但更多的时候,我们把它作为网关,因为它具备网关必备的功能:
Web服务器分2类:
区分:web服务器不能解析jsp等页面,只能处理js、css、html等静态资源。 并发:web服务器的并发能力远高于web应用服务器。
Nginx + tomcat
什么是反向代理?
nginx可以当做反向代理服务器来使用:
使用,nginx(windows解压版本)可以通过命令行来启动,操作命令:
start nginx.exe
nginx.exe -s stop
nginx.exe -s reload
完整配置
#user nobody;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
gzip on;
#nginx中的每个server就是一个反向代理配置,可以有多个server
server {
listen 80; #监听端口
server_name manage.enjoyment.com;
# 头信息
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# location请求映射规则,/ 代表一切请求路径
location / {
proxy_pass http://127.0.0.1:9001; # 代理转发,所有manage.enjoyment.com和80访问的请求,都会被转发到http://127.0.0.1:9001处理
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
server {
listen 80;
server_name api.enjoyment.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 上传路径的映射
location /api/upload {
proxy_pass http://127.0.0.1:8082;
proxy_connect_timeout 600;
proxy_read_timeout 600;
rewrite "^/api/(.*)$" /$1 break;
}
location / {
proxy_pass http://127.0.0.1:10010;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
}
proxy_pass
:反向代理,这次我们代理到8082端口,也就是upload-service服务
启动ng inx,然后用域名访问后台管理系统:
本文由来源 jackaroo2020,由 javajgs_com 整理编辑,其版权均为 jackaroo2020 所有,文章内容系作者个人观点,不代表 Java架构师必看 对观点赞同或支持。如需转载,请注明文章来源。