Nginx安装及相关问题解决—2022.12.10

一、 添加 Nginx yum资源库——CentOS 7

[root@localhost ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

在这里插入图片描述

二、 安装nginx - yum安装

[root@localhost ~]# yum -y install nginx

等待一段时间会展示如下:
在这里插入图片描述

三、 启动nginx

[root@localhost ~]# systemctl start nginx

执行后没反应,在浏览器中可以访问,即为安装成功。
地址为你的IP
在这里插入图片描述

无法访问解决办法

如果无法访问,解决方案如下:

  1. 检查nginx 是否启动成功
  • 检查nginx配置文件
[root@localhost ~]# nginx -t

如下图,则说明配置文件语法没问题。
在这里插入图片描述

  • 重新启动,每次修改配置文件都要重新启动
[root@localhost ~]# nginx -s reload
  • 如果执行出现错误:nginx: [error] invalid PID number “” in “/var/run/nginx.pid”,如下图。
    在这里插入图片描述
    执行以下命令即可:
nginx -c /etc/nginx/nginx.conf
nginx -s reload
  • 查看是否有nginx进程
[root@localhost ~]# ps -ef | grep nginx

如下图,有三个进程,说明启动成功
在这里插入图片描述

  1. 查看防火墙是否关闭
  • centos7 查看状态
systemctl status firewalld 或者 firewall-cmd --state

下图这种状态是正在运行,没有关闭。
在这里插入图片描述
现在关闭防火墙后查看状态:

[root@localhost ~]# systemctl stop firewalld

如下图,显示dead,防火墙已关闭
在这里插入图片描述
这个时候,可以刷新一下浏览器,大概率是可以正常展示的
在这里插入图片描述

关于防火墙的命令:
停止并禁用开机启动

systemctl disable firewalld

关闭防火墙

systemctl stop firewalld

启动防火墙

systemctl start firewalld 

设置开机启动

systemctl enable firewalld

重启防火墙

firewall-cmd --reload

四、 修改nginx页面展示内容

有两种方式:

  1. 通过新建html文件,修改页面展示内容,访问时需加上新建的目录,如:http://39.107.140.17/submodel.html;
  2. 找到上图中展示的文件,修改里边内容,就可以直接通关过IP 访问到你编辑的内容,http://39.107.140.17。

下面我们一一来看:

通过新建文件
  1. /usr/share/nginx/html目录下新建一个文件:submodule.html,写入内容:hello world.
[root@localhost ~]# cd /usr/share/nginx/html/

[root@localhost ~]# vi submodel.html

输入内容:hello world.
保存退出

在这里插入图片描述

  1. 在地址栏输入:http://39.107.140.17/submodel.html
    即使用IP加上刚才编辑的文件名,才会出现刚才输入的内容。
    在这里插入图片描述
通过修改原始文件

原始文件为“index.html”

[root@localhost ~]# cd /usr/share/nginx/html/

[root@localhost html]# vi index.html

修改前原文件:
在这里插入图片描述
修改后:
在这里插入图片描述
只用IP访问,便看到内容
在这里插入图片描述

五、 Nginx 不支持中文怎么办?

如果你在执行编辑内容时,文本中包含了中文,会发现nginx上的内容出现乱码,如下图所示:
在这里插入图片描述
在这里插入图片描述
nginx 本身默认不支持中文,需要转码。

解决办法:

1. 利用convmv对文件名转码

很多人尝试过此方法,我们也试一下:

  • 安装convmv
[root@localhost html]# yum -y install convmv

在这里插入图片描述

  • 转码
[root@localhost html]#  convmv -fGBK -tUTF8 -r --notest target

其中-f是源编码,-t是目标编码,-r是递归处理目录,–notest是不移动,实际上对文件进行改名,target是目标目录。
在这里插入图片描述
查看当前目录命令:pwd

按照这个做完,会发现,仍然展示的是乱码。似乎并不好使。那我们就换一种方式。


2. 通过修改nginx配置文件转码
  • 查看当前系统使用语言
[root@localhost html]# echo $LANG

在这里插入图片描述

查看系统支持所有语言命令:

locale :查看当前系统的语言类型
lcoale -a : 查看 当前系统所支持的所有语言类型

[root@localhost html]# locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=
  • 修改语言类型

这种方式可以永久修改语言类型:

  1. 检查系统语言类型,修改系统默认语言类型为“utf-8”
    一般情况下,路径配置文件都在/ect/sysconfig/i18n。
    在这里插入图片描述
    如果没有找个文件,也很正常,这跟“Linux正常启动的时候加载的环境变量文件”有关。可以到如下路径:
    Centos 系统 : /etc/locale.conf

为什么可以到上便路径找呢?
我们可以 cat /etc/profile.d/lang.sh ,能看到有以下几行代码:
上面有个路径 “/etc/locale.conf” 这个就是相当于 “/etc/sysconfig/i18n”
在这里插入图片描述

  1. 打开/etc/locale.conf,修改LANG
    LANG=“zh_CN.UTF-8”
    我这里已经默认是"zh_CN.UTF-8"
    在这里插入图片描述
  1. 重启系统
    init 6

浏览器上如果还是不显示中文,需要修改nginx配置文件

  1. 修改nginx配置文件,默认为“utf-8”

(1)找到nginx配置文件

[root@localhost ~]# find / -name nginx.conf

在这里插入图片描述
(2)修改配置文件

[root@localhost ~]# vi /etc/nginx/nginx.conf

在这里插入图片描述
进入下面这个配置文件,修改内容

[root@localhost ~]# vi /etc/nginx/conf.d/default.conf

在这里插入图片描述
在这里插入图片描述
(3)重载服务

nginx -s reload

清空浏览器缓存后即可显示中文。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是小bā吖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值