firewall-cmd --zone=public --add-port=80/tcp --permanent
打开浏览器,输入IP地址,出现Nginx页面
![在这里插入图片描述](https://img-bl
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
og.csdnimg.cn/20210104105324382.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTMzNDMxMTQ=,size_16,color_FFFFFF,t_70#pic_center)
1)去官网下载Nginx
http://nginx.org/en/download.html
2)解压,双击nginx.exe就可以了
======================================================================
Nginx作为反向代理服务器可以对服务器的域名和端口进行映射,起到的作用有:
-
隐藏真正服务器的地址,提高安全性
-
解决跨域问题,将不同的域名和端口映射为相同的
-
负载均衡,将大量请求分发给不同的服务器处理
-
动静分离,将对不同资源的请求分发给处理各自资源的服务器等
反向代理案例:
在SpringBoot项目中添加控制器,端口是默认的8080
RestController
public class HelloController
{
@GetMapping("/hello")
public String hello(){
return “Hello Nginx”;
}
}
通过URL:http://localhost:8080/hello 可以正常访问
现在需要通过URL:http://www.xray.com/hello 也能访问到该接口
这就需要:
1、 将域名localhost映射到www.xray.com上
2.、将端口8080映射到80端口上(浏览器默认)
实现步骤:
1)在C:\Windows\System32\drivers\etc\host文件中添加:
127.0.0.1 www.xray.com
让windows系统支持www.xray.com域名
2)修改nginx.conf,添加配置
server {
listen 80;
server_name www.xray.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_connect_timeout 600;
proxy_read_timeout 600;
}
}
proxy_pass 是原来的域名和端口,127.0.0.1就是localhost
server_name 后面是映射后的域名
listen 后面是映射后的端口
3)重启nginx
nginx -s reload
==================================================================================
Nginx作为http服务器部署静态资源的性能非常高,Linux中的Vsftp组件可以实现文件的传输,Nginx+Vsftp可以组合搭建高性能的文件服务器,实现项目文件上传的功能。
1) 安装vsftp组件
yum -y install vsftpd
2) 添加ftp用户
useradd ftpuser
登录后默认的路径为 /home/ftpuser.
3) 给ftp用户添加密码
passwd ftpuser
4) 修改配置
配置文件在/etc/vsftpd/vsftpd.conf
vi /etc/vsftpd/vsftpd.conf
修改配置
关闭匿名访问
添加端口范围
5) 重启vsftp
service vsftpd restart
6) 设置开机启动
chkconfig vsftpd on
7) 修改用户权限
chown ftpuser /home/ftpuser
chmod 777 -R /home/ftpuser
1) 新建目录用于保存图片
cd /home/ftpuser/
mkdir www
cd www
mkdir images
cd images
pwd
/home/ftpuser/www/images
2) 配置Nginx
nginx的配置文件是 nginx/conf/nginx.conf
在server中添加location
location /images {
root /home/ftpuser/www/;
autoindex on;
}
3) 重启nginx
./nginx -s reload
在浏览器输入 http://服务器地址/images , 可以看到上传目录下的文件列表
=========================================================================
每台服务器处理请求数都有上限,超过这个上限就可能挂掉,那么多部署几台服务器就可以解决这个问题吗?
也不一定,假设所有请求都打到一台服务器上,还是会挂掉。
负载均衡(Load balancing),是一种计算机技术,能将用户请求按一定的负载均衡算法,分配给集群中的每一台服务器上,从而避免单台服务器过载,也提高了服务器集群处理请求的响应速度,达到服务器资源的优化配置。
负载均衡可以通过客户端、服务器端和硬件实现,Nginx属于服务器端负载均衡技术。
1) 服务器设置
为了测试方便起见,可以在一台电脑上启动几个SpringBoot项目,以端口区别,模拟多台服务器
RestController
public class HelloController
{
@GetMapping("/hello")
public String hello(){
return “Hello 8081”;
}
}
2) 修改Nginx配置
在http中添加upstream,配置服务器列表,myservers是列表名称,内部每个server后面是服务器的IP和端口
upstream myservers {
server 192.168.0.113:8081;
server 192.168.0.113:8082;
server 192.168.0.113:8083;
}
添加server,配置代理将请求发送给myservers处理
server {
listen 8088;
server_name localhost;
charset utf-8;
location / {
proxy_pass http://myservers;
}
}
3) 重启Nginx
./nginx -s reload
4) 测试
在浏览器测试8088端口访问hello接口时,发现接口的调用是轮询式的。
每个服务器的处理能力不同,可以配置权重weight,让能力强的服务器处理更多请求
upstream myservers {
server 192.168.0.113:8081 weight=1;
server 192.168.0.113:8082 weight=2;
server 192.168.0.113:8083 weight=1;
}