Nginx服务器

Nginx介绍

Nginx是一款轻量级的web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好,中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。

Nginx下载和安装–linux–方式一

安装依赖包:
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel

下载nginx安装包
如果没有wget命令就安装 yum install wget
wget https://nginx.org/download/nginx-1.16.1.tar.gz

解压:
tar -zxvf nginx-1.16.1.tar.gz

cd nginx-1.16.1
mkdir -p /usr/local/nginx
//安装指定目录
./configure --prefix=/usr/local/nginx
//编译并安装,如果错误可分开执行,先make 再 make install
make && make install

Nginx下载和安装–linux–方式二

1) 安装依赖库

yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel

2) 下载Nginx

cd /usr/local
wget -c https://nginx.org/download/nginx-1.12.0.tar.gz

3) 解压

tar -zxvf nginx-1.12.0.tar.gz

4)进行默认配置

cd nginx-1.12.0
./configure

5)编译安装

make
make install

nginx 启动

编译安装后,会出现nginx目录

cd /usr/local/nginx/sbin/
 启动
./nginx 

查看版本号 
./nginx -v

检查配置文件是否有错
./nginx -t

其他命令:

停止
./nginx -s stop
退出
./nginx -s quit
重启
./nginx -s reload

7) 打开80端口

firewall-cmd --zone=public --add-port=80/tcp --permanent 

打开浏览器,输入IP地址,出现Nginx页面

在这里插入图片描述

环境变量

配置的原因就是在任何目录下都能启动
有其他path配置就追加记得加 “ ; ”
vim /etc/profile
请添加图片描述
使其生效命令

source /etc/profile

Nginx下载和安装–window

1)去官网下载Nginx

http://nginx.org/en/download.html

2)解压,双击nginx.exe就可以了

在这里插入图片描述

部署静态资源

静态资源放在nginx安装目录的html里面,配置在nginx.conf文件里面

注意:http块中可以配置多个Server块,每个Server块中可以
配置多个location块。

请添加图片描述
可通过 IP:端口 访问

反向代理配置

Nginx作为反向代理服务器可以对服务器的域名和端口进行映射,起到的作用有:

  1. 隐藏真正服务器的地址,提高安全性
  2. 解决跨域问题,将不同的域名和端口映射为相同的
  3. 负载均衡,将大量请求分发给不同的服务器处理
  4. 动静分离,将对不同资源的请求分发给处理各自资源的服务器等

反向代理案例:

在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平级,应该还有个大括号)

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

负载均衡概念

每台服务器处理请求数都有上限,超过这个上限就可能挂掉,那么多部署几台服务器就可以解决这个问题吗?

也不一定,假设所有请求都打到一台服务器上,还是会挂掉。

负载均衡(Load balancing),是一种计算机技术,能将用户请求按一定的负载均衡算法,分配给集群中的每一台服务器上,从而避免单台服务器过载,也提高了服务器集群处理请求的响应速度,达到服务器资源的优化配置。

在这里插入图片描述

负载均衡可以通过客户端、服务器端和硬件实现,Nginx属于服务器端负载均衡技术。

负载均衡配置

1) 服务器设置

为了测试方便起见,可以在一台电脑上启动几个SpringBoot项目,以端口区别,模拟多台服务器

@RestController
public class HelloController {

    @Value("${server.port}")
    private Integer port;

    @RequestMapping("/hello")
    public String hello(){
        return "Hello Nginx -->" +port ;
    }

}

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;
}

Nginx部署Vue项目

编译Vue项目

在vue项目中执行命令

npm run build

将生成的dist目录,复制到nginx的html目录下

Nginx配置

server {
        listen       80;
        server_name  www.eshop.com;
        root         html/dist;

        location / {
            try_files $uri $uri/ @router;
            index  index.html index.htm;
        }

        location @router {
            rewrite ^.*$ /index.html last;
        }
}	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值