linux安装并配置nginx
创始人
2024-05-24 19:41:10
0

菜鸟教程

一 . 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 0nginx="/usr/local/nginx/sbin/nginx"prog=$(basename $nginx)NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"lockfile=/var/lock/subsys/nginxstart() {[ -x $nginx ] || exit 5[ -f $NGINX_CONF_FILE ] || exit 6echo -n $"Starting $prog: "daemon $nginx -c $NGINX_CONF_FILEretval=$?echo[ $retval -eq 0 ] && touch $lockfilereturn $retval}stop() {echo -n $"Stopping $prog: "killproc $prog -QUITretval=$?echo[ $retval -eq 0 ] && rm -f $lockfilereturn $retval}restart() {configtest || return $?stopstart}reload() {configtest || return $?echo -n $"Reloading $prog: "killproc $nginx -HUPRETVAL=$?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" instart)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 2esac

按下esc 键 输入 :wq

3.用命令进入此目录

 cd /etc/init.d

4. 依此执行以下命令

chmod 755 /etc/init.d/nginxhkconfig --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 # 没权限开权限

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...