nginx 一、安装与conf浅析

文章目录

  • 一、安装nginx
    • docker方式安装
    • linux方式安装
      • Ubuntu 或 Debian 系统:
      • CentOS 或 RHEL 系统:
    • macOS 系统(使用 Homebrew):
    • Windows 系统:
  • 二、nginx.conf浅析

Nginx(发音为“engine-x”)是一款开源的高性能Web服务器和反向代理服务器。它由俄罗斯的工程师Igor Sysoev创建,并于2004年首次发布。

Nginx的设计目标是提供高性能、可靠性和扩展性。相比传统的Web服务器,如Apache,Nginx在处理静态文件和高并发请求方面表现更出色。它采用事件驱动的异步架构,有效地管理系统资源,使得在大量并发连接时仍能保持低内存消耗和高吞吐量。

Nginx还支持作为反向代理服务器的功能,可以将客户端请求转发到后端的多个服务器上,实现负载均衡和高可用性。此外,Nginx具有强大的扩展性,支持丰富的第三方模块,可以根据需要添加额外的功能,如缓存、SSL/TLS加密、HTTP/2协议支持等。

Nginx在互联网企业和网站中被广泛应用,包括大型门户网站、电子商务平台、内容分发网络(CDN)等。由于其出色的性能和可靠性,Nginx已成为构建高性能和可扩展的Web应用程序的首选服务器之一。

总之,Nginx以其高性能、低资源消耗和强大的扩展性而受到广泛欢迎,是现代Web服务器和反向代理服务器的重要选择。

一、安装nginx

docker方式安装

docker search nginx
docker pull nginx
# 创建一个nginx目录,用于挂载nginx容器中的配置文件
cd /home/test
mkdir nginx
cd nginx
mkdir conf
mkdir log
mkdir html
docker run -d -p 80:80 --name nginx --restart=always  nginx
docker ps
docker cp nginx:/etc/nginx/nginx.conf /home/test/nginx/conf/nginx.conf
docker cp nginx:/etc/nginx/conf.d /home/test/nginx/conf/conf.d
docker cp nginx:/usr/share/nginx/html /home/test/nginx/

在这里插入图片描述

docker rm -f nginx
# 重新启动容器
docker run -d -p 80:80 --name=nginx --privileged=true -v /home/test/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/test/nginx/conf/conf.d:/etc/nginx/conf.d -v /home/test/nginx/log:/var/log/nginx -v /home/test/nginx/html:/usr/share/nginx/html nginx
# 测试nginx启动是否成功
curl 127.0.0.1:80

在这里插入图片描述

linux方式安装

Ubuntu 或 Debian 系统:

使用 apt 包管理器进行安装:

sudo apt update
sudo apt install nginx

安装完成后,可以使用以下命令启动 Nginx:

sudo systemctl start nginx

CentOS 或 RHEL 系统:

使用 yum 包管理器进行安装:

sudo yum install epel-release
sudo yum install nginx

安装完成后,可以使用以下命令启动 Nginx:

sudo systemctl start nginx

macOS 系统(使用 Homebrew):

安装 Homebrew(如果尚未安装):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

使用 brew 包管理器安装 Nginx:

brew install nginx

安装完成后,可以使用以下命令启动 Nginx:

brew services start nginx

Windows 系统:

下载 Nginx 的 Windows 版本,并解压缩到目标文件夹。
在解压后的文件夹中,运行 nginx.exe 来启动 Nginx。

二、nginx.conf浅析

# 设置Nginx工作进程所运行的用户。
user nginx; 
# 根据CPU核心数量自动设置工作进程的数量。默认1
worker_processes auto;
# 指定错误日志文件的路径和日志级别。
error_log  /var/log/nginx/error.log notice;  
# 指定主Nginx进程的PID文件路径。
pid        /var/run/nginx.pid; 

# 每个进程创建的连接数,默认1024
events{
	worker_connections 1024;
}

http{
	# mime.types是一个文件,包含着请求头的各种文件类型html、txt、mp4、jpg等等,可以在文件中配置增加请求头类型
	# include 将一个配置文件引入到当前配置文件中
	include /etc/nginx/mime.types;
	# 如果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"';  
                      
	# 开启通过sendfile系统调用来发送文件。
	sendfile on;
	# 保持长连接
	keepalive_timeout 65;

    # 指定访问日志文件的路径和使用的日志格式。
    access_log  /var/log/nginx/access.log  main;  
    # 包含"/etc/nginx/conf.d/"目录下的所有配置文件。               
    include /etc/nginx/conf.d/*.conf;  

}

可在http中增加server,配置代理内容,server内容格式示例如下:

	# 主机,可以多个主机(server)
	server{
		# 监听端口号,每个server的端口号不一样
		listen 80;
		# 域名、主机名
		server_name localhost;
		
		# 域名后的目录、路径uri
		location /{
			# 匹配的相对路径
			root html;
			index index.html index.htm;
		}

		# 报错页面转向到/50x.html地址
		error_page 500 502 503 504 /50x.html;
		location = /50x.html {
			root html;
		}
	}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

服务器CentOs8 安装RocketMQ 4.9.4

前置条件 安装好java环境 下载、上传、解压 下载二进制包 传送门 上传到服务器,这里上传到了/usr/local目录下 解压: unzip rocketmq-all-4.9.4-bin-release.zip移动到新的文件夹 mv /rocketmq-all-4.9.4-bin-release /rocketmq修改配置 修改conf下…

第 378 场 LeetCode 周赛题解

A 检查按位或是否存在尾随零 枚举&#xff1a;枚举两个元素的组合即可 class Solution { public:bool hasTrailingZeros(vector<int> &nums) {int n nums.size();for (int i 0; i < n; i)for (int j 0; j < i; j)if ((nums[i] | nums[j]) % 2 0)return tru…

Python从入门到精通总结规划

Python从入门到精通专栏&#xff1a;http://t.csdnimg.cn/4Lals 时光飞逝&#xff0c;转眼间我们的Python从入门到精通专栏已经接近尾声。 在这里&#xff0c;向大家表示最诚挚的感谢。感谢你们一直以来对Python学习的热情&#xff0c;以及对本专栏的持续关注和支持。 回顾过去…

还在苦苦寻找PPT模板?这5个好用的PPT模板网站来拯救你!

行走职场&#xff0c;一大傍身的能力就是制作PPT&#xff0c;不过每回留给我们制作PPT的时间非常少&#xff0c;时间紧任务重&#xff0c;想在短时间内制作出高颜值的PPT&#xff0c;少不了平时有意识地收藏好看的PPT模板或PPT模板网站。 为方便各位找到可在工作中使用的PPT模…

数据结构学习 jz34 二叉树中和为某一值的路径

关键词&#xff1a;回溯 二叉树 前序遍历 路径记录 因为我没有仔细接触过二叉树的遍历过程&#xff0c;所以我是懵懵懂懂按照dfs的方法写的。没想到写对了&#xff0c;看了解答发现这叫做二叉树的前序遍历。用时29min。 这让我明白了前序遍历和dfs原来是有相同之处的。&#…

从零学算法17

17.给定一个仅包含数字 2-9 的字符串&#xff0c;返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下&#xff08;与电话按键相同&#xff09;。注意 1 不对应任何字母。 示例 1&#xff1a; 输入&#xff1a;digits “23” 输出&#xff1a;[…

GLTF编辑器实现逼真的石门模型

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 在凹凸贴图中&#xff0c;每个像素点都包含了一个法线向量&#xff0…

【开源项目】超经典数字孪生智慧物流园

数字孪生物流园管理系统&#xff0c;具有仓储管理智能化、运输管理自动化、物流管理系统化、共享服务平台化等特点。飞渡科技基于数字孪生、物联网IOT、人工智能等新一代信息技术&#xff0c;以智能设备为基底&#xff0c;通过人、物、资源、系统等多方数据的传递和交互&#x…

记一次canal除坑记录

记一次canal除坑记录 错误信息 Caused by :com.alibaba.otter.canal.parse.exception.CanalParseException: column size is not match for table 问题处理 今天对Canal相关程序进行升级&#xff0c;原监听的表及业务都正常&#xff1b;遇到新增加的表时总是不走&#xff1b;…

【第七在线】智能商品系统是否可以帮助预测新品的销售表现?

智能商品系统在鞋服企业商品运营中的应用已经成为一种趋势。随着技术的发展和数据的积累&#xff0c;智能化已经成为企业提高运营效率和市场竞争力的重要手段。其中&#xff0c;智能商品系统通过对大量销售数据的分析&#xff0c;可以帮助预测新品的销售表现&#xff0c;为企业…

Linux驱动(三)platform总线驱动

1、前言 Platform总线是Linux内核中用于管理嵌入式系统中的设备的一种总线类型。它允许设备驱动程序通过一组标准的接口与嵌入式系统中的硬件设备进行通信。 Platform总线维护了一个驱动链表和一个设备链表&#xff0c;当有新的设备添加后会通过自身的match函数遍历驱动链表查…

【mac-m1 docker 安装upload-labs靶场】

1.搜索upload-labs docker search upload-labs 2.下载upload-labs docker pull c0ny1/upload-labs 3.启动 docker run -it -d --name uploadlabs -p 80:80 c0ny1/upload-labs --platform linux/amd64 4.访问127.0.0.1:80 注意点&#xff1a;后续使用的时候会报错 需要手动创…

LeetCode-无重复字符的最长子串(3)

题目描述&#xff1a; 给定一个字符串 s &#xff0c;请你找出其中不含有重复字符的 最长子串 的长度。 代码&#xff1a; class Solution {public int lengthOfLongestSubstring(String s) {Set<Character> occnew HashSet<Character>();int lens.length();int…

Local server not started, start with 报错python -m weditor

一、python -m weditor 如图报错 Local server not started, start with 报错 二、解决方案 右上角选择新的无痕窗口下&#xff0c;然后打开 http://localhost:17310/ 即可

VMware Tools 启动脚本未能在虚拟机中成功运行。如果您在此虚拟机中配置了自定义启动脚本,请确保该脚本没有错误。您也可以提交支持请求,报告此问题。

问题描述&#xff1a;今天打开centos7虚拟机就是直接打不开了报了下面的错误&#xff0c;也没有动任何东西&#xff0c;点确定后&#xff0c;也是依然没有反应 问题原因&#xff1a;可能是虚拟机中的内存满了&#xff0c;需要清理内存 解决方法如下 首先cmd打开终端敲入如下命…

linux磁盘管理实验1

1.在安装好的linux系统中新加一块硬盘&#xff0c;将硬盘分成2个主分区&#xff0c;和2个逻辑分区&#xff0c;将其中一个逻辑分区设置成vfat&#xff08;FAT32&#xff09;分区&#xff0c;并实现开机自动挂载所有分区。 答&#xff1a;添加一个硬盘为sdb 分成2个主分区&#…

LLM增强LLM;通过预测上下文来提高文生图质量;Spikformer V2;同时执行刚性和非刚性编辑的通用图像编辑框架

文章首发于公众号&#xff1a;机器感知 LLM增强LLM&#xff1b;通过预测上下文来提高文生图质量&#xff1b;Spikformer V2&#xff1b;同时执行刚性和非刚性编辑的通用图像编辑框架 LLM Augmented LLMs: Expanding Capabilities through Composition 本文研究了如何高效地组…

面试算法96:字符串交织

题目 输入3个字符串s1、s2和s3&#xff0c;请判断字符串s3能不能由字符串s1和s2交织而成&#xff0c;即字符串s3的所有字符都是字符串s1或s2中的字符&#xff0c;字符串s1和s2中的字符都将出现在字符串s3中且相对位置不变。例如&#xff0c;字符串"aadbbcbcac"可以由…

透明OLED屏制作:工艺与技术挑战

透明OLED屏作为一种前沿的显示技术&#xff0c;其制作过程涉及一系列复杂的工艺和技术挑战。作为一名专注于OLED技术研发的工程师&#xff0c;我将为大家深入解析透明OLED屏的制作过程&#xff0c;以及所面临的挑战。 首先&#xff0c;透明OLED屏的制作过程大致可分为以下几个步…

使用.Net nanoFramework为ESP32进行蓝牙配网

通过前面的介绍&#xff0c;我们已经学会了如何使用 .NET nanoFramework 为 ESP32 设备连接 Wi-Fi 网络。然而&#xff0c;在实际的物联网环境中&#xff0c;我们往往需要使用更便捷的式来满足配网需求。这篇文章将带你了解一些常见的配网方案&#xff0c;并以 ESP32 为例&…