这里是修真院后端小课堂,每篇分享文从
八个方面深度解析后端知识/技能,本篇分享的是:
【nginx的简单使用】
【修真院java小课堂】nginx的简单使用
大家好,我是IT修真院上海分院第10期的学员许东杰,一枚正直纯洁善良的java程序员,今天给大家分享一下,修真院官网java(职业)任务2,深度思考中的知识点——nginx代理服务器
(1)背景介绍:
负载均衡:
web项目开发完成后需要部署在服务器上(tomcat、jetty等),当高并发访问时,服务器会很卡,负载均衡就是添加了好几台服务器来分担这些访问从而减少服务器压力的。
Nginx就是这样一种用于负载均衡的代理服务器。
(2)知识剖析:
应用Nginx的两种主要功能
nginx:反向代理服务器,专门做均衡负载和静态代理的一款开源的c语言写的web服务器,轻量级,能很好的对大量数据进行存储。
负载均衡:nginx本质也是一种服务器,可以看成是其他服务器的一个总代理,请求过来时会根据配置来动态分配请求访问的服务器。
静态代理:tomcat处理大量的图片数据会非常慢,于是用nginx来进行代理,进行动静分离,这样tomcat直接调用nginx上的数据图片就可以了
(3)常见问题:
部署两个本地服务器的时候,只能启动一个
(4)解决方案:
把本地tomcat服务器的环境变量删掉,然后把第二个服务器的3个端口改一下。
(5)编码实战:
负载均衡和静态代理配置:
#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 vhost/*.conf;#导入其他配置文件
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
#负载均衡配置
upstream localhost{
server localhost:8888 weight=1;#优先级
server localhost:8889 weight=1;
}
server {
listen 80;
server_name www.xudongjie.com;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
#root html;
# index index.html index.htm;
proxy_set_header Host $host; # required for docker client's sake
proxy_set_header X-Real-IP $remote_addr; # 获取用户的真实IP地址
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name image.xudongjie.com;
root E:/nginx/statictext/;
charset utf-8;
#access_log logs/host.access.log main;
location / {
root E:/nginx/statictext/;
index index.html; #可以指定文件名称 index index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
(6)拓展思考:
(7)参考文献:
百度、谷歌
(8)更多讨论:
Q1:静态代理在实际中的运用?
A1:实际中把静态的图片页面等放到nginx服务器目录下,当tomcat要调用这些资源的时候直接访问nginx服务器取读取。
Q2:提问人:静态代理还有别的方式吗
A2:可以不用虚拟主机,在一个主机中根据访问路径的后缀来进行访问页面的分离,向.html就分配到本地静态库,.jsp就分配到服务器tomcat上。
(9)结束语:
今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~