Nginx(反向代理按照权重负载均衡实现方法)

Nginx是一个开源软件,传统上用于网络服务、服务器端反向代理、负载平衡、服务器端加密、多媒体服务等。在这个演示中,我将重点介绍网络服务和反向代理,以及负载平衡。设置和安装Nginx网络服务Nginx

Nginx是一个开源软件,传统上用于网络服务、服务器端反向代理、负载平衡、服务器端加密、多媒体服务等。在这个演示中,我将重点介绍网络服务和反向代理,以及负载平衡。

  1. 设置和安装
  2. Nginx网络服务
  3. Nginx反向代理
  4. Nginx的负载平衡

请注意。我选择了ubuntu操作系统,并在其中部署了Nginx服务器,因为大多数服务器都使用ubuntu(Linux发行版)作为云计算的服务器。

第1步:更新我们的本地软件包索引并在我们的机器上安装nginx

$ sudo apt update$ sudo apt install nginx

第2步:调整防火墙 ,需要调整防火墙软件以允许访问该服务

$ sudo ufw app list

Nginx HTTP:如果你想使用任何这些主要的 \"nginx HTTP\",它将使用默认的端口 \"80\",因为你将使用nginx的本地主机和正常使用,建议使用 \"Nginx HTTP\"

Nginx HTTPS:如果你正在处理实时托管的网络应用和TLS/SSL加密的流量,建议使用Nginx HTTPS,它将打开 \"443 \"端口。

Nginx Full:Nginx Full将同时开放80和443端口,可以利用HTTP、HTTPS流量。

你可以通过键入来启用其中任何一项。

$ sudo ufw allow \'Nginx HTTP\'

第4步:启动Nginx服务

启用一个服务不仅可以启动该服务,还可以让systemctl在机器重启时重新启动。

$ sudo systemctl enable nginx

如果在安装和设置过程中出现任何问题,请键入以下命令,并验证该服务是否运行正常

$ systemctl status nginx

应该看到:

● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: e>                  Active: active (running) since Mon 2023–02–06 21:16:48 IST; 47s ago  Docs: man:nginx(8) Main PID: 70620 (nginx) Tasks: 3 (limit: 8378) Memory: 4.8M  CPU: 64ms   CGroup: /system.slice/nginx.service ├─70620 \"nginx: master process /usr/sbin/nginx -g daemon on; master_> ├─70623 \"nginx: worker process\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" >    └─70624 \"nginx: worker process\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\" \"\"

第5步:在浏览器中打开一个窗口,输入你的IP地址或 \"http://localhost:80\"

Nginx的主配置文件位于/etc/nginx/nginx.conf。你可以编辑这个文件,按照自己的喜好配置Nginx。

要建立一个基本的网站,你需要在Nginx配置中创建一个服务器块。一个服务器块是一个虚拟主机,指定服务器对一个特定域的设置。

下面是一个基本服务器块的例子。

第1步:在你的机器上添加/var/www/index.html文件。

      demo web site        

Success! Hello World.

第2步:在nginx.conf文件的http块内添加以下代码块

server {  listen 7070;  server_name -;  root/var/www; #your path to the HTML file  index index.html; #inside your project index.html must present  location / {    try_files $uri $uri/ =404;  }}

在添加了服务器块后,nginx.conf文件的结构看起来像这样

http {    Server {          …    }    …      …}

第3步:打开你的浏览器,输入localhost:7070

注:- 现在你已经使用nginx网络服务在你的机器上部署了你的网站。

反向代理充当了客户向服务器请求资源的中介。客户端连接到反向代理,然后代表客户端向服务器发出请求。反向代理将资源返回给客户,看起来就像客户直接连接到服务器一样。

我们将使用vuejs构建网络应用,在你的Linux机器上使用nginx反向代理提供服务。

按照以下步骤配置nginx反向代理。

第1步:打开Nginx配置文件。

sudo nano /etc/nginx/sites-available/default

第2步:在文件中添加以下反向代理配置。

server {  Server_name example.com;# add Your Domain Here  root /home/shivam/DemoVueProject/dist;# Your path to web app build  index index.html;  location / {    try_files $uri $uri /index.html;    proxy_buffering off;  }  error_log off;  access_log off;  listen 443 ssl; # managed by Certbot  ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;  ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;  include /etc/letsencrypt/options-ssl-nginx.conf;  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;}

在这个配置中,Nginx被用来为一个位于/home/shivam/DemoVueProject/dist、域名为example.com的单页应用程序提供内容。

server_name指令设置了Nginx将响应的域名。root指令设置服务器的根目录,也就是应用程序的位置。index指令设置默认的索引文件为index.html。

location / 块设置了对根 URL / 的传入请求的行为。try_files 指令尝试提供所请求的文件,如果它存在的话。如果该文件不存在,它就提供index.html文件。proxy_buffering指令关闭了代理的缓冲功能。

listen指令设置了Nginx对传入连接的监听端口。在本例中,它是通过SSL加密监听443端口。ssl_certificate、ssl_certificate_key、include和ssl_dhparam指令设置了服务器的SSL/TLS加密功能。这些文件由Certbot管理,它是一个自动获取和更新SSL证书的工具。

最后,error_log和access_log指令可以关闭错误和访问日志。

第1步:打开Nginx配置文件。

sudo nano /etc/nginx/sites-available/default

第2步:在文件中添加以下负载平衡配置。

upstream blog_backend {  server 127.0.0.1:8081 weight=5;  server 127.0.0.2:8092 weight=3;  server 127.0.0.3:8093;}server {  listen 80;  root /home/shivam/DemoVueProject/dist;# Your path to web app build  index index.html;  location / {    proxy_pass http://blog_backend;    proxy_buffering off;    proxy_set_header X-Real-IP $remote_addr;  }  error_log off;  access_log off;  listen 443 ssl; # managed by Certbot  ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;  ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;  include /etc/letsencrypt/options-ssl-nginx.conf;  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;}

在这个配置中,Nginx被设置为一个有多个后端服务器的博客的负载平衡器。上游块定义了后端服务器,每个服务器都有一个主机名,即(ip和端口)和一个权重。权重决定了每个服务器应该收到的请求的相对比例。

服务器块设置了Nginx在80端口监听对example.com域名的请求。location块设置了对根URL/的传入请求的行为。 proxy_pass指令告诉Nginx将传入的请求转发给blog_backend上游块中定义的后端服务器。proxy_set_header指令为发送到后端服务器的请求设置Host和X-Real-IP头信息的值。

在这种配置下,Nginx将按照5:3:1的比例将传入的请求分配给后端服务器,这是由后端服务器的权重决定的。

本文来自于头条号作者:吉祥庄钢铁侠,本站旨在传播优质文章,无商业用途。

本站部分文章来自网络或用户投稿,如无特殊说明或标注,均为本站原创发布。涉及资源下载的,本站旨在共享仅供大家学习与参考,如您想商用请获取官网版权,如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
投稿

OpenSSL通过最新更新修复了多个新的安全漏洞

2023-2-19 17:44:05

投稿

cad焊接符号解读大全(cad符号大全及说明)

2023-2-19 22:51:07

搜索