责任编辑如是说如前所述 Linux 控制系统的 nginx 加装和单纯采用
1、加装
1.1、加装 nginx 倚赖的自然环境
采用 nginx 须要倚赖许多其他的库,因此须要先准备好此基础自然环境
1.2、浏览 nginx 加装包
通常浏览到/usr/local/产品目录方可,能间接去非官方浏览
,再上传至相关联产品目录。
也能间接在相关联目中继续执行如下表所示指示浏览:1.3、加装 nginx
Cogl就很单纯了:
接着步入Cogl后的产品目录(/usr/local/nginx-1.18.0),实用性 nginx:
假如须要全力支持 https,则须要继续执行如下表所示的实用性指示:
实用性顺利完成后,已经开始校对 nginx 源代码:
校对顺利完成后,已经开始加装 nginx:
等待加装顺利完成……
加装顺利完成后,会生成一个和nginx-1.18.0产品目录同级的nginx产品目录,就是加装程序的产品目录。
1.4、启动 nginx
步入/usr/local/nginx/sbin产品目录
启动 nginx:启动后在浏览器输入服务器地址,能看到如下表所示页面就好了:
关闭 nginx,采用如下表所示一个指示方可:2、单纯采用
这里主要是对/usr/local/nginx/conf/中nginx.conf文件进行相关的实用性
2.1、静态代理
先在/opt/software下创建test产品目录,里边放一个index.html,内容是:
接下来对nginx.conf做如下表所示修改:
重启 nginx:
在浏览器测试:
上边我们修改了server部分的实用性,这样当访问 http://192.168.2.100:8081/index.html时,nginx 会去/opt/software/test下找index.html。
由于index默认实用性成了index.html,因此访问 http://192.168.2.100:8081会默认去找index.html,和上边的效果一样。
server模块相对于实用性了一个站点,能有多个;listen实用性的是端口号,能根据需求修改;server_name设置的是本机的地址,通常不须要修改;location模块则是指定站点要代理的静态资源、或者要转发的请求。
2.2、请求转发
添加一个新的server模块,采用proxy_pass实用性要转发到的目标服务地址:
注意目标地址末尾有个斜杠,不加斜杠就无法正常的转发请求了。
重启 nginx。
目标地址上有一个hello接口:
这样当请求 http://192.168.2.100:8082/hello 时请求会转发到 http://192.168.3.2:1114/hello 上:
2.3、负载均衡
上边我们只部署了一个目标服务,假如目标服务是以集群部署的,则能采用 nginx 实现负载均衡,将请求转发到不同的服务节点上。这里我们模拟一个服务集群,将服务启动两次:
最终有两个服务节点:192.168.3.2:1114、192.168.3.2:1115。
niginx 默认的负载均衡策略是轮询,将请求轮流分发到不同服务器;还有权重+轮询,就是增加了不同服务器被轮询到的概率;最后是iphash,对客户端请求的ip进行hash操作,根据hash结果将客户端请求分发给同一台服务器处理,也能一定程度上解决session不共享的问题,但不常用。
接着实用性 nginx, 核心就是upstream指令:
重启 nginx。
当多次请求 http://192.168.2.100:8083/hello 时,请求会轮询转发到不同的目标服务上:
2.4、登录验证
有时候为了安全起见,保护数据,在访问 nginx 代理的资源之前,须要先进行登录验证。
首先须要加装htpasswd工具,指示如下表所示:
接下来采用 htpasswd 工具来设置登录的用户名、密码,在/usr/local/nginx/conf/产品目录下继续执行如下表所示指示:
最终的用户名、密码会保存到名为passwd的文件中,admin是登录的用户名,继续执行指示后会提示输入密码:
查看 passwd 文件的内容,admin:后的内容就是加密后的密码:
关于 htpasswd 更详尽的内容这里就不如是说了。
生成好了用户名、密码,接下来就是修改 nginx 实用性文件,在server模块添加如下表所示实用性:
这样访问当前站点代理的资源时,就都须要输入用户名、密码了:
也能只给server中指定的location实用性auth_basic、auth_basic_user_file,这样只有访问相关联location实用性的资源代理时才须要登录验证。
2.5、前后端分离项目部署
在采用前后端分离模式开发项目时,前后项目打包后能采用 nginx 来代理:
也是比较单纯的,在root实用性的产品目录中存放前端打包好的源代码,upstream部分实用性的是后端服务地址。
作者:SheHuan
链接:https://www.jianshu.com/p/bb11f1435f88关于如何学习Java,一方面须要不断的去学习,把此基础知识学扎实,另一方面也要认识到java的学习不能仅仅靠理论,更多的是靠实操,因此要多练习多做项目,在实践中学习才是最好的学习方法。很多人刚已经开始不知道怎么去学习,这里我和大部分都来自好朋友整理的一份《JavaCodeHub面试突击》,里面包含的内容实在是太全面了,真的很能考察出一名应聘者的成色。
我是终端研发部的小于哥
面试过很多很多应聘者,说实话, 现在面试要求可真高,虽然工作拧螺丝,但面试还是造火箭的。很多东西我们不光要会用,也要懂其原理。在战术上一定要重视,方能百战不殆!假如有帮助,欢迎点赞!