linux安装并配置nginx

news2024/11/25 5:00:31

菜鸟教程

一 . Nginx安装和部署

1.输入指令,下载相关的依赖包

yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

==YUM(Yellow dog Updater, Modified)==为多个Linux发行版的前端软件包管理器
-y 是参数,默认不要确认,

rpm -ivh 包名(支持*):安装rpm包 
rpm -e 包名(不支持*):卸载rpm包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fkp29MQW-1676009138995)(photo/Pasted%20image%2020230111102953.png)]

2、下载并解压安装包

//创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
//下载tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz

3、安装nginx

//进入nginx目录
cd /usr/local/nginx
//进入目录
cd nginx-1.13.7
//执行命令 考虑到后续安装ssl证书 添加两个模块 
//(要是执行不成功请检查最开始安装的四个依赖有没有安装成功)
./configure --with-http_stub_status_module --with-http_ssl_module
// 用来编译( 从Makefile中读取指令,然后编译)
make
// 用来安装( 从Makefile中读取指令,安装到指定的位置)
make install

4、编辑启动端口(图片的端口是经过修改的,默认是80端口)

cd /usr/local/nginx/conf
vim nginx.conf

编辑好之后,按esc退出编辑模式,然后 :wq 进行保存退出

将端口号改成8089(随便挑个端口),因为可能apeache占用80端口,apeache端口尽量不要修改,我们选择修改nginx端口。
在这里插入图片描述

5、启动nginx

cd /usr/local/nginx/sbin
./nginx

6.重启nginx

/usr/local/nginx/sbin/nginx -s reload
systemctl restart nginx

查看是否启动成功命令:ps -ef | grep nginx
在这里插入图片描述

7.若想使用外部主机访问nginx,需要关闭服务器防火墙或开放nginx服务端口,端口为第4步nginx.conf的配置端口:

1.关闭防火墙

centOS6及以前版本使用命令: systemctl stop iptables.service
centOS7关闭防火墙命令: systemctl stop firewalld.service

若是不清楚lunix 系统版本用
1、lsb_release -a,即可列出所有版本信息:
在这里插入图片描述

systemctl start firewalld.service  //示例,启动防火墙,.service可以省略
systemctl stop firewalld           //示例,停止防火墙
systemctl restart firewalld        //示例,重启防火墙
systemctl status firewalld         //示例,查看防火墙状态
systemctl enable firewalld         //示例,设置开机启动防火墙
systemctl disable firewalld        //示例,取消开机启动防火墙
这个命令适用于所有的Linux发行版,包括RedHat、SUSE、Debian…等发行版。

2、cat /etc/redhat-release,这种方法只适合Redhat系的Linux:
[root@S-CentOS home]# cat /etc/redhat-release
CentOS release 6.5 (Final)
3、cat /etc/issue,此命令也适用于所有的Linux发行版。

2. 关闭防火墙会导致服务器有一定风险,所以建议是单独开放服务端口

开放8806端口:

firewall-cmd --zone=public --add-port=8806/tcp --permanent

查询端口号80 是否开启:

firewall-cmd --query-port=8806/tcp

重启防火墙:

firewall-cmd --reload

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-scnFCjif-1676009138996)(photo/Pasted%20image%2020230111132006.png)]

8、访问服务器ip查看

在这里插入图片描述

9、简单的项目部署(最简单的)

将dist.zip文件直接上传到目录:/usr/local/nginx/html

这是nginx默认的页面路径,直接替换里面的文件就行
在这里插入图片描述
通过执行 自动化脚本

#!/bin/bash  
unzip -o ../../../usr/local/nginx/html/dist.zip -d /usr/local/nginx/html  
echo 'unzip dist.zip success'  
rm -rf ../../../usr/local/nginx/html/dist.zip  
echo 'delete dist.zip success'

10.网页部署成功

在这里插入图片描述

二.报错解决

1.make 时出现如下错误:

在这里插入图片描述

直接vim src/os/unix/ngx_user.c把它报错的这一句注释掉:

在这里插入图片描述

如果还有类似的错误直接再次注释即可。

2.如下:vim /objs/Makefile

去掉-Werror
在这里插入图片描述
在这里插入图片描述

3.如下:

在这里插入图片描述
再重新make && make install 即可

4. 开启防火墙时出现firewalld is not running怎么解决

防火墙导致服务不正常的问题:

在服务器安装某些服务之后,服务无法连接、无法正常启动等情况。
查看下系统防火墙有没开放相关的服务端口。
(linux系统防火墙开放相关端口后还要重启防火墙,重启防火墙后防火墙规则才会生效)。

1、启动FirewallD服务命令:

systemctl start firewalld.service #开启服务
systemctl enable firewalld.service #设置开机启动

2、查看FirewallD防火墙状态:

systemctl status firewalld

3、现在防火墙 FirewallD 就已经正常运行了。

5. 文件权限不够

在这里插入图片描述

chmod用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

-rw------- (600) -- 只有属主有读写权限。 
-rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。 
-rwx------ (700) -- 只有属主有读、写、执行权限。 
-rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。 
-rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。 
-rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。 
-rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。 

https://www.runoob.com/linux/linux-comm-chmod.html 菜鸟教程

6.执行systemctl restart nginx 命令不生效

Unit nginx service not found

错误的原因就是没有添加nginx服务,所以启动失败。
解决方法:

1. 在/root/etc/init.d/目录下新建文件,文件名为nginx

或者用命令在根目录下执行:# vim /etc/init.d/nginx (注意vim旁边有一个空格)

2. 插入以下代码

#!/bin/sh
# nginx - this script starts and stops the nginx daemin
#
# chkconfig:   - 85 15

# description:  Nginx is an HTTP(S) server, HTTP(S) reverse \
#               proxy and IMAP/POP3 proxy server

# processname: nginx
# config:      /usr/local/nginx/conf/nginx.conf
# pidfile:     /usr/local/nginx/logs/nginx.pid

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ "$NETWORKING" = "no" ] && exit 0

nginx="/usr/local/nginx/sbin/nginx"

prog=$(basename $nginx)

NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"

lockfile=/var/lock/subsys/nginx

start() {

    [ -x $nginx ] || exit 5

    [ -f $NGINX_CONF_FILE ] || exit 6

    echo -n $"Starting $prog: "

    daemon $nginx -c $NGINX_CONF_FILE

    retval=$?

    echo

    [ $retval -eq 0 ] && touch $lockfile

    return $retval

}


stop() {

    echo -n $"Stopping $prog: "

    killproc $prog -QUIT

    retval=$?

    echo

    [ $retval -eq 0 ] && rm -f $lockfile

    return $retval

}



restart() {

    configtest || return $?

    stop

    start

}


reload() {

    configtest || return $?

    echo -n $"Reloading $prog: "

    killproc $nginx -HUP

    RETVAL=$?

    echo

}

force_reload() {

    restart

}


configtest() {

  $nginx -t -c $NGINX_CONF_FILE

}



rh_status() {

    status $prog

}


rh_status_q() {

    rh_status >/dev/null 2>&1

}

case "$1" in

    start)

        rh_status_q && exit 0
        $1
        ;;

    stop)


        rh_status_q || exit 0
        $1
        ;;

    restart|configtest)
        $1
        ;;

    reload)
        rh_status_q || exit 7
        $1
        ;;


    force-reload)
        force_reload
        ;;
    status)
        rh_status
        ;;


    condrestart|try-restart)

        rh_status_q || exit 0
            ;;

    *)

        echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
        exit 2

esac

按下esc 键 输入 :wq

3.用命令进入此目录

 cd /etc/init.d

4. 依此执行以下命令

chmod 755 /etc/init.d/nginx

hkconfig --add nginx   (注意add前面是两个短横线-)

5. 开启nginx

service nginx start

7.项目启动后报错 Failed to load response data: No data found for resource with given identifier

  1. 跨域
  2. 端口未开启访问权限
  3. nginx默认的缓冲区不足以支撑,导致nginx把返回的信息截断了,需要设置缓冲区的大小来解决这个问题,在location中添加
   location / {
        root   /appdata/hfmp/dist;
        index  index.html index.htm;
    
        fastcgi_buffers 256 128k;
        chunked_transfer_encoding off;
   }
./nginx -s reload # 启动
chmod -777 -R proxy # 没权限开权限

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

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

相关文章

对话 ChatGPT:现象级 AI 应用,将如何阐释「研发效能管理」?

ChatGPT 已然是 2023 开年至今,互联网上最热的话题没有之一。从去年的 AI 图片生成,到 ChatGPT,再到现在各种基于大模型的应用如雨后春笋般出现……在人们探讨技术无限可能的同时,另一个更深刻的命题也不可回避地浮现出来&#xf…

汽摩仪表快检盒

不怕失业 ​ ​最近大火的ChatGPT说要取代程序员,老婆子惊慌失措,跟着糟老头憋屈,咸鱼想靠软件翻身,这下白瞎了。 ​温州寄来了汽车燃油预热控制板,绍兴又寄来了发动机仪表,昆山的尾门在路上,都…

如何成为java架构师?2023版Java架构师学习路线总结完成,真实系统有效,一切尽在其中

导读 从初级Java工程师成长为Java架构师,你需要走很长的路,很多有计划的人在学习之初就在做准备。你知道Java架构师学习路线该怎么走吗?成为一个优秀的Java架构师究竟需要学什么?接下来就跟小编一起揭晓答案。 架构师是一个充满挑战的职业&#xff0…

Python自定义模块

到目前为止,读者已经掌握了导入 Python 标准库并使用其成员(主要是函数)的方法,接下来要解决的问题是,怎样自定义一个模块呢?Python 模块就是 Python 程序,换句话说,只要是 Python 程…

Swagger自动生成api文档

Swagger自动生成api文档Swagger是什么Swagger底层原理使用方式1修改pom文件2启动类中加入注解EnableSwagger23加入SpringFoxConfig.java4加入WebMvcConfig.java文件5 给Web 服务的接口加注解访问可视化页面Swagger是什么 Swagger 是一个规范和完整的框架,用于生成、…

C经典小游戏之扫雷

编译环境:VS022 目录 1.算法思路 2.代码模块 2.1 game.h 2.2 game.cpp 2.3 test.cpp 3.重点分析 4.金句省身 1.算法思路 主要采用二维数组进行实现,设置两个二维数组,一个打印结果,即为游戏界面显示的效果,一个用…

值类型和引用类型

一、值类型和引用类型示例: 值类型:基本数据类型系列,如:int,float,bool,string,数组和结构体等。 引用类型:如:指针,slice切片,map&a…

windows wireshark抓到未加入组的组播消息

现象 在Windows上开启wireshark,抓到了大量地址为239.255.255.251的组播包。 同时,根据组播相关命令,调用netsh interface ipv4 show joins,显示当前并没加入 239.255.255.251 组播组。 解决 根据IGMP Snooping,I…

《机器学习》学习笔记

第 2 章 模型评估与选择 2.1 经验误差与过拟合 精度:精度1-错误率。如果在 mmm 个样本中有 aaa 个样本分类错误,则错误率 Ea/mEa/mEa/m,精度 1−a/m1-a/m1−a/m。误差:一般我们把学习器的实际预测输出与样本的真实输出之间的差…

MySQL---单表查询、多表查询

一、单表查询 素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 v…

STM32驱动RC522

STM32驱动RC522开发环境:STM32CUBEMXKeil5使用平台:STM32F401CCU6该内容由网上内容改编,若不合适,请联系删除。一、使用STM32CUBEMX配置SPI二、驱动部分三、主函数调用四、移值攻略开发环境:STM32CUBEMXKeil5 使用平台&#xff1…

力扣:珠玑妙算(详解)

前言:内容包括四大模块:题目,代码实现,大致思路,代码解读 题目: 珠玑妙算游戏(the game of master mind)的玩法如下。 计算机有4个槽,每个槽放一个球,颜色可…

电力系统网架规划MATLAB程序分享

网架数据展示:完整程序:close all;clear all;clc;warning off; % 去除警告 tic; % tic用来保存当前时间,而后使用toc来记录程序完成时间%% 基本参数T12; % 典型日 8-19h % 8-19h 负荷各时段负荷总量total_P_LOAD[828,1001,1105,1105,994,1105…

STM32CubeMX+SPI+FATFS读写SD卡

一、软件硬件说明软件:STM32CubeMX V6.6.1 /KEIL5 V5.29硬件:正点原子mini开发板,SD卡,通过SPI方式驱动SD卡,用的是SPI1接口以上内容来源于正点原子mini开发板手册,SD卡的详细介绍也可以去查阅这个手册。二、STM32Cube…

Ethercat系列(3)TWCat3下抓包实例分析

简介研究Ethercat协议,必须知道数据包格式,以及其真实含义。以一个真实的数据包来学习是最有效的。Twcat3下用wireshark抓包,需要设置一下混杂模式,否则不能直接抓到Ethercat数据包。Twcat抓包设置在正确加载驱动器配置文件后&…

可深度二次开发的智能插座 工业化物联网多场景的高定系统服务商

物联网时代,各类物联网需求越来越迫切。物联网设备呈现出爆发式增长。同时近年来国家不断出台相关的法规政策,为物联网行业发展创造机遇,三大运营商积极部署NB-IOT网络建设,建成90万NB-IoT基站。据统计2012-2022年期间&#xff0c…

缺省参数+函数重载+构造函数

目录 一、缺省参数 (一)缺省参数概念 (二)缺省参数分类 1. 全缺省参数 2. 半缺省参数(缺省部分参数) 3. 注意 二、函数重载 (一)基本概念 (二)举例 …

“算丰AI视界”人工智能技术内容征集活动正式开启!

2023年2月8日,首届“算丰AI视界”人工智能技术内容征集活动正式拉开帷幕!本次活动主要征集AI、CV、TPU-MLIR、RISC-V等方向的代表性视频和文章,面向国内外的企业、高校和科研院所的优秀开发者。 活动紧扣人工智能行业相关AI视觉技术&#xff…

申请苹果开发者账号的方法

1、打开苹果id注册地址,输入相关信息注册,如果已经有苹果账号了看第二步, https://appleid.apple.com/account?localangzh_CN 2、注册成功了,或者有苹果账号了,登录苹果开发者中心 https://developer.apple.com/acc…

LearnOpenGL 笔记 - 入门 04 你好,三角形

系列文章目录 LearnOpenGL 笔记 - 入门 01 OpenGLLearnOpenGL 笔记 - 入门 02 创建窗口LearnOpenGL 笔记 - 入门 03 你好,窗口 文章目录系列文章目录前言你好,三角形顶点输入顶点着色器(Vertex Shader)编译着色器片段着色器&…