Nginx配置
1、实现反向代理
实现案例(1):打开浏览器,在浏览器的地址栏中输入地址www.123.com,跳转到Linux系统Tomcat主页面
第一部在windows系统中配置host文件
host文件位置:C:\Windows\System32\drivers\etc 下的host
修改host文件:最后追加: 自己的Linux系统ip www.123.com
配置完之后,在浏览器中输入 www.123.com:8080 就会看见tomcat的主页了
第二步:在Nginx中进行请求转发(即:实现反向代理)
在Nginx的配置文件中:配置文件目录 cd /usr/local/nginx/conf/
在文件nginx.conf中配置
listen 80; server_name 47.96.152.80; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; proxy_pass http://127.0.0.1:8080; index index.html index.htm; }
第三步,启动Nginx测试
启动命令:在nginx的 sbin目录下启动:./nginx
在浏览器中输入:www.123.com就能看见Tomcat了
实现案例(2):通过访问不同的网址跳转到 不同的tomcat
访问http:127.0.0.1:9001/edu/ 直接跳转到127.0.0.1:8081
访问http:127.0.0.1:9001/vod/ 直接跳转到127.0.0.1:8082
(1)创建两个tomcat:一个tomcat8081、一个tomcat8082,将其中的端口修改为8081、8082
(2)修改nginx的配置文件nginx.conf,在其中再插入一个server
server { listen 9001; server_name 47.96.152.80; # ~ 用于含正则表达式,区分大小写 # ~* 用于含 正则表达式。不区分大小写 # ~~ 用于不含正则表达式 # = 用于不含正则表达式前,完全匹配 location ~ /edu/{ proxy_pass http://47.96.152.80:8081; } location ~ /vod/{ proxy_pass http://47.96.152.80:8082; } }
(3)重启nginx
2、实现负载均衡
(1)实现效果
浏览器输入栏输入地址http://47.96.152.80/edu/a.html ,负载均衡的效果,平均到8081和8082端口
(1.1)准备两台服务器:tomcat8081、tomcat8082
(1.2)在每个tomcat下的webapps目录中,创建文件夹edu,并在edu文件夹中放入a.hmtl
(1.3)修改nginx配置文件nginx.conf
#实现负载均衡 upstream myserver{ server 47.96.152.80:8081; server 47.96.152.80:8082; } server { listen 80; server_name 47.96.152.80; #charset koi8-r; #access_log logs/host.access.log main; location / { proxy_pass http://myserver; root html; #proxy_pass http://127.0.0.1:8080; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }
注意:服务器分配策略
1、轮询(默认):每个请求时间顺序逐一分配到不同的后端服务器,如果服务器后端down掉,能自动剔除
2、weight(按权重分配):代表权重默认为1,权重越高被分配的客户端越多
upstream myserver{ server 47.96.152.80:8081 weight = 1; server 47.96.152.80:8082 weight = 10; }
3、ip_hash: 每个请求按照访问ip的hash结果访问,这样每个访问固定访问一个服务器,可以解决session的问题,
upstream myserver{
ip_hash; server 47.96.152.80:8081; server 47.96.152.80:8082; }
4、fair:按后端服务器响应时间来分配请求,响应时间短的优先分配
upstream myserver{ server 47.96.152.80:8081; server 47.96.152.80:8082;
fair; }
3、实现动静分离
定义:简单说就是将动态和静态分开,不能单单的把它理解为将静态页面动态页面物理分开。严格意义上说动态请求与静态请求分开,可以理解为Nginx处理静态页面,Tomcat处理动态页面。
处理方式1(主要使用方式):纯粹的把静态文件独立成单独的域名,放在独立的服务器上
处理方式2:动态静态文件混合,通过nginx分离
案例:
(1)准备静态资源在Linux根目录下创建文件夹test,在test文件夹中返给www、image文件夹,image文件夹中放01.jpg,在www文件夹中放入a.html
(2)具体配置nginx.conf
location /www/{ root /test/; index index.html index.htm; } location /image/ { root /test/; autoindex on; }
(3) 测试:http://47.96.152.80/image/ http://47.96.152.80/www/a.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具