centos系列:【 全网最详细的安装配置Nginx,亲测可用,解决各种报错】

news2025/2/28 18:36:16

全网最详细的安装配置Nginx,亲测可用,解决各种报错

  • 全网最详细的安装配置Nginx
    • 1、 安装环境依赖
    • 2、 下载Nginx包
    • 3、编译Nginx
    • 4、安装Nginx
    • 5、启动Nginx
    • 6、配置Nginx
    • 7、了解Nginx服务的主配置文件 nginx.conf
    • 8、基于授权的访问控制
    • 9、基于IP和端口的访问控制
    • 10、补充,在配置Nginx过程中遇到的错误以及解决办法
      • #1、启动Nginx报错:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
      • #2、使用./nginx -s reload重新读取配置文件报错:nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
      • #3、在浏览器中输入ip登录失败




全网最详细的安装配置Nginx

在这里插入图片描述

1、 安装环境依赖

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

2、 下载Nginx包

mkdir /export/server  #创建存放安装包的文件
cd /export/server    #进入文件中
wget http://nginx.org/download/nginx-1.16.1.tar.gz #通过wget命令下载Nginx包 

3、编译Nginx

tar -zxvf nginx-1.16.1.tar.gz  #解压安装包 
#编译Nginx
./configure  --with-http_ssl_module  
./configure --with-stream 
./configure  --with-http_ssl_module --with-stream 
./configure   

4、安装Nginx

make && make install

5、启动Nginx

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

6、配置Nginx

cd /usr/local/nginx/sbin  
./nginx -v   #查看Nginx版本
./nginx -t  #检查配置文件是否正确
./nginx -V  #查看安装时配置

#输出实例

在这里插入图片描述

#补充Nginx常用命令

cd /usr/local/nginx/sbin  
./nginx -s reload   #重新载入配置文件
./nginx -s reopen  #重启Nginx
./nginx -s stop  #停止Nginx

#查看Nginx进程

ps -ef | grep nginx #查看Nginx进程
kill pad    #杀死相关进程

在这里插入图片描述

7、了解Nginx服务的主配置文件 nginx.conf

#全局配置

#user nobody; 					#运行用户,若编译时未指定则默认为 nobody
worker_processes 1; 			#工作进程数量,可配置成服务器内核数 * 2
#error_log logs/error.log; 		#错误日志文件的位置
#pid logs/nginx.pid; 			#PID 文件的位置

#I/O事件配置

events {
    use epoll; 					#使用 epoll 模型,2.6及以上版本的系统内核,建议使用epoll模型以提高性能
    worker_connections 1024; 	#每个进程处理 1024个连接 (可以修改)
}
#如提高每个进程的连接数还需执行“ulimit -n 65535”命令临时修改本地每个进程可以同时打开的最大文件数。
#在Linux平台上,在进行高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制(这是因为系统为每个TCP连接都要创建一个socket句柄,每个socket句柄同时也是一个文件句柄)。
#可使用ulimit -a命令查看系统允许当前用户进程打开的文件数限制.

在这里插入图片描述
#HTTP配置

http {
	##文件扩展名与文件类型映射表
    include       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  logs/access.log  main;

	##支持文件发送(下载)
    sendfile        on;
 	##此选项允许或禁止使用socke的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用
    #tcp_nopush     on;

	##连接保持超时时间,单位是秒
    #keepalive_timeout  0;
    keepalive_timeout  65;

	##gzip模块设置,设置是否开启gzip压缩输出
    #gzip  on;

##Web 服务的监听配置
server {
	##监听地址及端口
	listen 80; 
	##站点域名,可以有多个,用空格隔开
	server_name www.ygy.com;

	##网页的默认字符集
	charset utf-8;

	##根目录配置
	location / {
	
		##网站根目录的位置/usr/local/nginx/html
		root html;
	
		##默认首页文件名
		index index.html index.htm;
	}

	##内部错误的反馈页面
	error_page 500 502 503 504 /50x.html;
	##错误页面配置
	location = /50x.html {
		root html;
	}
}
}

#日志配置

$remote_addr与$http_x_forwarded_for用以记录客户端的ip地址;
$remote_user:用来记录客户端用户名称;
$time_local: 用来记录访问时间与时区;
$request: 用来记录请求的url与http协议;
$status: 用来记录请求状态;成功是200,
$body_bytes_sent :记录发送给客户端文件主体内容大小;
$http_referer:用来记录从那个页面链接访问过来的;
$http_user_agent:记录客户浏览器的相关信息;

通常web服务器放在反向代理的后面,这样就不能获取到客户的IP地址了,通过$remote_add拿到的IP地址是反向代理服务器的iP地址。反向代理服务器在转发请求的http头信息中,可以增加x_forwarded_for信息,用以记录原有客户端的IP地址和原来客户端的请求的服务器地址。

location常见配置指令,root、alias、proxy_pass

root(根路径配置):请求www.lic.com/test,会返回文件/usr/local/nginx/html/test/index.html

alias(别名配置):请求www.lic.com/test,会返回文件/usr/local/nginx/html/index.html

8、基于授权的访问控制

#生成用户密码认证文件

yum install -y httpd-tools
htpasswd -c /usr/local/nginx/passwd.db zhojl
chown nginx /usr/local/nginx/passwd.db
chmod 400 /usr/local/nginx/passwd.db

#修改主配置文件相对应目录,添加认证配置项

vim /usr/local/nginx/conf/nginx.conf
......
	server {
		location / {
			......
			##添加认证配置##
			auth_basic "secret";
			auth_basic_user_file /usr/local/nginx/passwd.db;
		}
	}

9、基于IP和端口的访问控制

#创建网页内容存放的地方

mkdir -p /var/www/html/ygy
mkdir -p /var/www/html/zyd

#配置网页

echo "<h1>www.ygy.com</h1>" > /var/www/html/ygy/index.html
echo "<h1>www.zyd.com</h1>" > /var/www/html/zyd/index.html

#配置nginx.conf

vim /usr/local/nginx/conf/nginx.conf  #进入nginx.conf文件
listen    192.168.88.130:8080;    #设置监听8080端口和对应的ip
server_name  www.ygy.com;         #配置对应的域名

listen 192.168.88.130:8888;    #设置监听8888端口和对应的ip
server_name www.zyd.com;       #配置对应的域名

#亲测配置示例
在这里插入图片描述
在这里插入图片描述

#修改hosts文件

vim  /etc/hosts

在这里插入图片描述

#配置完后,输入htttp://192.168.88.130:8080
#输入在第8节、基于授权的访问控制创建的用户名和密码

在这里插入图片描述
#输入http://192.168.88.130:8888

在这里插入图片描述

10、补充,在配置Nginx过程中遇到的错误以及解决办法

#1、启动Nginx报错:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)

#启动Nginx报错
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
#解决办法1
ps -ef|grep nginx
kill pad
#解决办法2
cd /usr/local/nginx/sbin
./nginx -s stop #停止Nginx
./nginx   #启动Nginx

#2、使用./nginx -s reload重新读取配置文件报错:nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)

#输入./nginx -s stop或者./nginx -s reload报错
nginx: [error] open()/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)
#解决办法
[root@localhost nginx]# /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

#3、在浏览器中输入ip登录失败

#解决办法
#1、进入C:\Windows\System32\drivers\etc路径下
#2、修改配置hosts文件
192.168.88.130 www.ygy.com 
192.168.88.131 node2
192.168.88.132 node3 

在这里插入图片描述







Yang三少喜欢撸铁

【 全网最详细的安装配置Nginx,亲测可用,解决各种报错】

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

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

相关文章

【Redis基础】Redis基本的全局命令

✅作者简介&#xff1a;大家好&#xff0c;我是小杨 &#x1f4c3;个人主页&#xff1a;「小杨」的csdn博客 &#x1f433;希望大家多多支持&#x1f970;一起进步呀&#xff01; Redis基本的全局命令 1&#xff0c;KEYS命令 语法&#xff1a;KEYS pattern KEYS命令用来查询服…

vivado综合分析与收敛技巧2

1、分解深层存储器配置 &#xff0c; 实现功耗与性能平衡 在深层存储器配置中 &#xff0c; 可使用综合属性 RAM_DECOMP 实现更好的存储器分解并降低功耗。此属性可在 RTL 中设置。将RAM_DECOMP 属性应用于存储器时 &#xff0c; 存储器是在较宽的原语配置中设置的 &#x…

Kubernetes(K8s)-Kubernetes介绍-01

Kubernetes介绍 应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代&#xff1a; 传统部署&#xff1a; 互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xff1a;不能为应用程…

现代C++之万能引用、完美转发、引用折叠

现代C之万能引用、完美转发、引用折叠 0.导语1.问题引入2.引入万能引用3.万能引用出现场合4.理解左值与右值4.1 精简版4.2 完整版4.3 生命周期延长4.4 生命周期延长应用5.区分万能引用6.表达式的左右值性与类型无关7.引用折叠和完美转发7.1 引用折叠之本质细节7.2 示例与使用7.…

IO多路复用就这么简单?

通过本文你可学到&#xff1a; 阻塞IO、非阻塞IO的区别、优缺点&#xff1b; IO多路复用的原理&#xff0c;为什么高性能&#xff1b; select原理、优缺点&#xff1b; poll原理、优缺点&#xff1b; epoll原理、优缺点 select、poll、epoll 到底是同步IO还是异步IO? ep…

CSS核心功能手册:从熟悉到精通

CSS核心功能代码 文章目录 CSS核心功能代码[toc]参考HTML代码尺寸操作设置元素尺寸内边距外边距设置默认布局边距用途和使用场景&#xff1a; 背景设置**背景颜色 (background-color)**:**背景图像 (background-image)**:**背景重复 (background-repeat)**:**背景位置 (backgro…

绘制彩色正多边形-第11届蓝桥杯选拔赛Python真题精选

[导读]&#xff1a;超平老师的Scratch蓝桥杯真题解读系列在推出之后&#xff0c;受到了广大老师和家长的好评&#xff0c;非常感谢各位的认可和厚爱。作为回馈&#xff0c;超平老师计划推出《Python蓝桥杯真题解析100讲》&#xff0c;这是解读系列的第10讲。 绘制彩色正多边形…

ffmpeg 免安装,配置环境变量

1、下载ffmpeg https://download.csdn.net/download/qq284489030/88579595 2、解压 解压ffmpeg-4.4-essentials_build.zip到目标文件夹&#xff0c;比如 d:\apps下&#xff1b; 3、配置环境变量 &#xff08;1&#xff09;电脑桌面鼠标右键点击“此电脑”&#xff0c;弹出…

Abaqus飞机起落架扭力臂拓扑优化

Abaqus飞机起落架扭力臂拓扑优化 Abaqus除了可以对结构进行强度分析&#xff0c;同样也自带强大的优化功能&#xff0c;下面通过一个简 单的实例演示在Abaqus中进行拓扑优化&#xff0c;另外&#xff0c;如果需要更加强大的拓扑优化仿真&#xff0c;可以 在TOSCA中进行。 定义接…

揭秘发布订阅模式:让消息传递更高效

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

Unity中Shader优化通用规则

文章目录 前言一、精度优化1、三种精度 fixed / half / float2、位置坐标、物理坐标类使用float3、HDR颜色、方向向量类使用half4、普通纹理、颜色类使用 fixed5、实际上&#xff0c;使用的精度取决于 平台 和 GPU6、现在桌面级GPU都是直接采用 float , Shader中的 fixed / hal…

【STM32】OLED显示屏

1 调试方式 1. 串口调试&#xff1a;通过串口通信&#xff0c;将调试信息发送到电脑端&#xff0c;电脑使用串口助手显示调试信息 2. 显示屏调试&#xff1a;直接将显示屏连接到单片机&#xff0c;将调试信息打印在显示屏上 3. Keil调试模式&#xff1a;借助Keil软件的调试模…

直接套用的软件详细设计说明书

软件开发全套资料过去进主页&#xff01;

Libavutil详解:理论与实战

文章目录 前言一、Libavutil 简介二、AVLog 测试1、示例源码2、运行结果 三、AVDictionary 测试1、示例源码2、运行结果 四、ParseUtil 测试1、示例源码2、运行结果 前言 libavutil 是一个实用库&#xff0c;用于辅助多媒体编程&#xff0c;本文记录 libavutil 库学习及 demo 例…

windows电脑、苹果系统和安卓手机日程提醒双向同步如何操作?

在这个信息飞速传递的时代&#xff0c;我们时常需要在不同设备之间同步日程提醒&#xff0c;而对于同时使用Windows电脑、苹果系统和安卓手机的用户来说&#xff0c;这显得尤为重要。今天&#xff0c;我将分享一个简单的操作&#xff0c;让你在它们之间实现日程提醒的双向同步。…

实现电商平台与营销系统无缝集成:雅座的无代码开发与API连接

无代码开发&#xff1a;营销的新引擎 在数字化转型的浪潮中&#xff0c;无代码开发已成为企业提升效率、减少成本的新引擎。这种开发方式允许非技术人员通过图形界面构建应用程序&#xff0c;无需编写代码即可实现复杂功能。这对于营销、广告推广以及用户运营等业务尤为重要&a…

性能测试:深入理解并发量,线程数,吞吐量,TPS

并发数&#xff0c;线程数&#xff0c;吞吐量&#xff0c;每秒事务数&#xff08;TPS&#xff09;都是性能测试领域非常关键的数据和指标。 那么他们之间究竟是怎样的一个对应关系和内在联系&#xff1f; 测试时&#xff0c;我们经常容易将线程数等同于表述为并发数&#xff…

出于隐私和安全的考虑,有时需要从谷歌删除你的个人数据,有两种方法

如果你是公众人物、企业或拥有个人品牌的人&#xff0c;那么拥有在线形象很重要。然而&#xff0c;你可能会发现&#xff0c;通过谷歌搜索&#xff0c;陌生人可以获得你的个人信息&#xff0c;如联系方式、地址和财务信息&#xff0c;这会让你感到不安。 幸运的是&#xff0c;…

记 Doris 回归测试S3导入load_parallelism > 1

增加load_parallelism > 1的S3导入用例&#xff0c;测试导入时切分输入文件的逻辑。 这里有几个隐性的问题点&#xff08;坑&#xff09;&#xff1a; 1、导入的文件一定要大&#xff0c;一般大于128M&#xff0c;否则&#xff0c;即使设置了 load_parallelism > 1 也不…

Linux基础项目开发1:量产工具——输入系统(三)

前言&#xff1a; 前面我们已经实现了显示系统&#xff0c;现在我们来实现输入系统&#xff0c;与显示系统类似&#xff0c;下面让我们一起来对输入系统进行学习搭建吧 目录 一、数据结构抽象 1. 数据本身 2. 设备本身&#xff1a; 3. input_manager.h 二、触摸屏编程 to…