Nginx简介与Docker Compose部署指南

Nginx是一款高性能的开源Web服务器和反向代理服务器,以其卓越的性能、可伸缩性和灵活性而闻名。它在全球范围内广泛用于托管Web应用程序、负载均衡、反向代理和更多场景中。在本文中,我们将首先介绍Nginx的基本概念,然后演示如何使用Docker Compose轻松部署Nginx服务器。

nginx.jpg

什么是Nginx?

Nginx是一个高性能的HTTP和反向代理服务器,它可以用于以下用途:

  • 作为Web服务器托管静态内容。
  • 作为反向代理服务器,将请求转发到应用程序服务器。
  • 负载均衡多个应用程序服务器以提高性能和可用性。
  • 提供SSL/TLS终端加密和安全性。
  • 处理HTTP请求和响应,支持高并发。

为什么选择Nginx?

Nginx的流行原因如下:

  • 性能卓越: Nginx以其低内存消耗和高并发处理能力而著称,可在大流量负载下保持出色的性能。

  • 可扩展性: Nginx易于配置和扩展,可以根据需求轻松添加新功能。

  • 反向代理和负载均衡: 它是一个强大的反向代理服务器,可以将请求分发到多个后端服务器,提高应用程序的可用性。

  • SSL/TLS支持: Nginx提供了强大的SSL/TLS支持,用于安全地传输数据。

  • 活跃的社区: 有一个庞大的活跃社区,提供支持和插件,使其更加强大和灵活。

使用Docker Compose部署Nginx

  • 创建docker-compose.yml文件

首先,要创建一个名为 docker-compose.yml 的文件,本文中我们将使用之前介绍过的前端项目 “jsonhelp” 来作为演示示例。这个文件应包含以下内容:

version: '3.3'
services:jsonhelp:image: nginx:1.18container_name: jsonhelp-ngrestart: alwayslogging:driver: 'json-file'options:max-size: '5g'environment:- NGINX_PORT=80ports:- 8090:80volumes:- ./nginx.conf:/etc/nginx/nginx.conf- ./html:/usr/share/nginx/html

在这里,我们将 nginx.confhtml 使用数据卷进行挂载。

  • html: 前端打包之后的文件
  • nginx.conf: nginx的配置文件,具体如下:

nginx.conf

user  nginx;
worker_processes  1;error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  /var/log/nginx/access.log  main;sendfile        on;keepalive_timeout  65;client_max_body_size 500m;include /etc/nginx/conf.d/*.conf;server {listen       80;
#        外网访问的域名server_name  192.168.10.105;location / {root /usr/share/nginx/html;index index.html;try_files $uri $uri/ /index.html;}}
}
  • 启动容器

在docker-compose.yml 的同级目录下,执行以下命令启动容器

docker-compose up -d 
  • 访问服务

浏览器中打开 地址 http://192.168.10.105:8090即可访问到我们刚刚部署的服务。

_20231001174907.png

到此,我们的nginx服务就部署完成了

总结

Nginx是一款功能强大且高度灵活的Web服务器和反向代理服务器,适用于提供卓越性能的Web服务。通过使用Docker Compose,您可以轻松地部署和管理Nginx服务器,以满足各种应用场景的需求。虽然本文只是简单介绍了如何部署前端项目,但请继续关注我们,因为我们将在后续分享更多关于Nginx高级用法的内容。希望本文对您了解Nginx以及学习如何使用Docker Compose来部署它有所帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146294.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Go结构体深度探索:从基础到应用

在Go语言中,结构体是核心的数据组织工具,提供了灵活的手段来处理复杂数据。本文深入探讨了结构体的定义、类型、字面量表示和使用方法,旨在为读者呈现Go结构体的全面视角。通过结构体,开发者可以实现更加模块化、高效的代码设计。…

doT.js模板学习笔记

doT.js模板学习笔记 欢迎学习doT.js模板学习笔记doT.js模板是什么doT.js 主要优势在doT.js好处引入方式基本语法语法示例结尾 欢迎学习doT.js模板学习笔记 doT.js官方网站 本文章得示例源码 doT.js模板是什么 doT.js 是一个 JavaScript 模板框架,在 web 前端使用 d…

软件测试面试复盘

作者:爱塔居 专栏:测试 1、计算机网络七层协议:物理层、数据链路层、网络层、传输层、表示层、会话层、应用层(面试问过这个) 2.TCP/IP四层模型:应用层、传输层、网络层、网络接口层(笔试问过&…

vscode左键无法跳转到定义的文件

之前用vscode的时候,明明是可以ctrl键鼠标左键跳转到定义文件的,突然之间就不行了,鼠标移到引入上根本都没有下划线,无法跳转 解决方法: 项目的根目录新建 jsconfig.json 文件,代码如下 {"compiler…

使用sqlmap总是提示需要302跳转重新登录的解决方法

如果在命令中不指定cookie,sqlmap在执行时会提示需要重新登录 如果给了cookie但发现还是提示需要重新登录,且按它给的提示发现还是找不到注入点,原因是url没有加引号 url加了双引号后解决问题

Jenkins集成AppScan实现

一、Jenkins上安装插件 在Jenkins里安装以下插件 ibm-security-appscanstandard-scanner 二、打开AppScan 1、配置需要扫描的地址 配置需要扫描的地址 2、记录好要扫描的URL登录序列 记录好要扫描的URL登录序列 3、导出要扫描的URL登录序列设置 导出要扫描的URL登录序列设置 三…

【Java 进阶篇】JDBC Statement:执行 SQL 语句的重要接口

在Java应用程序中,与数据库进行交互是一项常见的任务。为了执行数据库操作,我们需要使用JDBC(Java Database Connectivity)来建立与数据库的连接并执行SQL语句。Statement接口是JDBC中的一个重要接口,它用于执行SQL语句…

【算法速查】一篇文章带你快速入门八大排序(上)

君兮_的个人主页 即使走的再远,也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们,这里是君兮_,首先在这里祝大家中秋国庆双节同乐!!今天用一篇文章为大家把八大排序算法都过一遍,当然由于篇幅的原因不是每…

AI智能问答系统源码/AI绘画商业系统/支持GPT联网提问/支持Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于国外很火的ChatGPT进行开发的AI智能问答系统和AI绘画系统。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图…

opencv for unity package在unity中打开相机不需要dll

下载OpenCV for Unity 导入后,里面有很多案例 直接打开就可以运行 打开相机

CSP-J第二轮试题-2021年-1.2题

文章目录 参考:总结 [CSP-J 2021] 分糖果题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 样例 #3样例输入 #3样例输出 #3 提示答案1答案2-优化 [CSP-J 2021] 插入排序题目描述输入格式输出格式样例 #1样例输入 #1样…

为什么字节大量用GO而不是Java?

见字如面,我是军哥。 我看很多程序员对字节编程语言选型很好奇,为此我还特地问了在字节的两位4-1的技术大佬朋友,然后加上自己的思考,总结了一下就以下 2 个原因: 1、 选型上没有历史包袱 字节的早期的程序员大多来自于…

Linux常见操作命令(1)

​ 前言:作者也是初学Linux,可能总结的还不是很到位 ♈️今日夜电波:达尔文—林俊杰 0:30━━━━━━️💟──────── 4:06 🔄 ◀️ …

Interactive-slam imGui slam3dTool防坑手册

问题一、 glfw error 65544: X11: RandR gamma ramp support seems broken error : failed to compile shader /home/ros_proj/catkin_ws/src/interactive_slam/data/shader/rainbow.vert 0:1(10): error: GLSL 3.30 is not supported. Supported versions are: 1.10, 1.20, 1…

快看看你的手机有没有:谷歌Android全面封杀此类软件!

谷歌坐不住了,因为Android应用商店中,充斥着大量可窃取用户数据的应用,所以必然要出手整治了。 一款名叫“SonicSpy”软件是整个事情的导火索,而该应用是典型的窃取用户数据的应用,其除了可以从手机中提取个人数据外&…

cesium gltf控制

gltf格式详解 glTF格式本质上是一个JSON文件。这一文件描述了整个3D场景的内容。它包含了对场景结构进行描述的场景图。场景中的3D对象通过场景结点引用网格进行定义。材质定义了3D对象的外观,动画定义了3D对象的变换操作(比如选择、平移操作)。蒙皮定义了3D对象如何进行骨骼…

使用华为eNSP组网试验⑵-通过端口地址进行静态路由

有了网络模拟器可以对很多网络应用场景进行模拟,既方便学习又有利于实际的网络实施。 之前因为没有用过,用过了才知道eNSP的好处。但是与思科模拟器不同,连接是自动连接,不能确定端口,比如使用指定的光纤端口或者RJ45的…

【Redis】redis基本数据类型详解(String、List、Hash、Set、ZSet)

目录 RedisString(字符串)List(列表)Hash(字典)Set(集合)ZSet(有序集合) Redis Redis有5种基本的数据结构,分别为:string(字符串)、list(列表)、set(集合)、hash(哈希&a…

Fiddler抓取手机https包的步骤

做接口测试时,有时我们需要使用fiddler进行抓包分析,那么如何抓取https包。主要分为以下七步: 1.设置fiddler选项:Tools->Options,按如下图勾选 2.下载并安装Fiddler证书生成器 下载地址:http://www.telerik.com/…

python使用mitmproxy和mitmdump抓包在电脑上抓包(二)

在我的上篇文章中,主要记录如何安装mitmproxy和抓取https流量。参考链接: python使用mitmproxy和mitmdump抓包在电脑上抓包-CSDN博客 本篇主要使用python配合mitmdump来抓包和处理返回包,更加灵活,这也是mitmproxy(mitmdump)的最…