网站首页 > 技术教程 正文
Nginx是一个开源软件,传统上用于网络服务、服务器端反向代理、负载平衡、服务器端加密、多媒体服务等。在这个演示中,我将重点介绍网络服务和反向代理,以及负载平衡。
课题
- 设置和安装
- Nginx网络服务
- Nginx反向代理
- 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"
2. Nginx网络服务
Nginx的主配置文件位于/etc/nginx/nginx.conf。你可以编辑这个文件,按照自己的喜好配置Nginx。
要建立一个基本的网站,你需要在Nginx配置中创建一个服务器块。一个服务器块是一个虚拟主机,指定服务器对一个特定域的设置。
下面是一个基本服务器块的例子。
第1步:在你的机器上添加/var/www/index.html文件。
<html>
<head>
<title>demo web site</title>
</head>
<body>
<h1>Success! Hello World.</h1>
</body>
</html>
第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指令可以关闭错误和访问日志。
Nginx负载平衡
第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的比例将传入的请求分配给后端服务器,这是由后端服务器的权重决定的。
猜你喜欢
- 2024-10-16 LNMP环境搭建-nginx(lnmp搭建后怎么做网站)
- 2024-10-16 进阶必备 | Linux系统管理工具 supervisor 详解,代码齐全可复制
- 2024-10-16 K8S 之 Ingress-nginx 源码解析(k8s nginx配置)
- 2024-10-16 编排系统K8S Ingress-nginx源码解析
- 2024-10-16 让博客Docker化,轻松上手Docker(博客登录界面)
- 2024-10-16 「这些都不知道你就是个弟弟」Docker常用命令
- 2024-10-16 容器技术:Podman 与 RESTful 接口
- 2024-10-16 Docker:网络模式详解(docker五种网络模式)
- 2024-10-16 k8s日志收集 多pod挂载不同目录方案
- 2024-10-16 Docker部署前端Web项目(docker部署webdav)
你 发表评论:
欢迎- 最近发表
-
- linux日志文件的管理、备份及日志服务器的搭建
- Linux下挂载windows的共享目录操作方法
- Linux系统中的备份文件命令(linux系统中的备份文件命令有哪些)
- 麒麟KYLINOS|通过不同方法设置用户访问文件及目录权限
- 「Linux笔记」系统目录结构(linux目录的结构及含义)
- linux中修改归属权chown命令和chgrp命令
- 工作日报 2021.10.27 Android-SEAndroid权限问题指南
- Windows和Linux环境下,修改Ollama的模型默认保存路径
- 如何强制用户在 Linux 上下次登录时更改密码?
- 如何删除Linux文件夹中除某些扩展名之外的所有文件?
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)