搭建 http 服务器

安装

安装 nginx

yum -y install nginx

这一步可能会遇到 "No package nginx available." 问题,解决方法如下:

问题描述: 见下图

img

问题原因:

nginx 位于第三方的 yum 源里面,而不在 centos 官方 yum 源里面

解决方法(一):

安装 epel(Extra Packages for Enterprise Linux)

epel 网站下载对应版本

我的系统是 centos7.6,cpu 是 x86_64

# 下载epel wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm or wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm # 安装epel rpm -ivh epel-release-7-11.noarch.rpm or rpm -ivh epel-release-7-12.noarch.rpm

再次执行 yum install nginx,则会提示安装成功了

解决方法(二):

出现这个的原因是因为本地 yum 源中没有我们想要的 nginx,那么我们就需要创建一个 /etc/yum.repos.d/nginx.repo 的文件,新增一个 yum 源

vim /etc/yum.repos.d/nginx.repo #在文件中写入以下内容: [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ gpgcheck=0 enabled=1

退出保存后,再次执行 yum install nginx,则会提示安装成功了

配置

  • 删除 /usr/share/nginx/html/ 目录下的所有文件
rm -rf /usr/share/nginx/html/*
  • 防火墙中加入允许 80 端口访问
## 加入80端口(--permanent永久生效,没有此参数重启后失效) firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=1000-2000/tcp --permanent # 重新载入 firewall-cmd --reload # 查看 firewall-cmd --zone=public --query-port=80/tcp # 删除 firewall-cmd --zone=public --remove-port=80/tcp --permanent ## 附加: # 显示防火墙应用列表 firewall-cmd --list-all
  • 重启防火墙
systemctl restart firewalld
  • 编辑 /etc/nginx/nginx.conf 配置文件,加入如下信息(追加到末尾),使能够访问目录
autoindex on;# 显示目录 autoindex_exact_size on;# 显示文件大小 autoindex_localtime on;# 显示文件时间

nginx 配置.png

  • 启动 nginx
systemctl start nginx systemctl enable nginx

启用

将镜像上传到 /usr/share/nginx/html 目录,在浏览器访问可以看见如下图所示的文件信息,点击可下载

img

附加

Nginx 显示中文乱码解决

需要修改 nginx 的 server 的配置内容,增加一行:charset utf-8;

情如下:

upstream you.domainName.com { server 127.0.0.1:8081; } server { listen 80; server_name you.domainName.com; charset utf-8; location /examples { return 403; } .... }

重启 Nginx 服务(nginx -s reload)。最后,刷新,一切正常!

执行 nginx -s reload 的问题

解决 unknown directive "stream" in /etc/nginx/nginx.conf 问题

nginx.conf 的第一行插入:

load_module /usr/lib/nginx/modules/ngx_stream_module.so; # find / -name 'ngx_stream_module.so' -print

如果 ngx_stream_module.so 地址不对

[root@localhost ~]# find / -name 'ngx_stream_module.so' -print /usr/lib64/nginx/modules/ngx_stream_module.so

然后 换成真实地址 即可!问题解决。

问题

重置(nginx -s reload)nginx 出现这个错误

nginx: [error] open() "/usr/local/var/run/nginx.pid" failed (2: No such file or directory)

解决方法:找到你的nginx.conf的文件夹目录,然后运行这个:

# 例如:找到的nginx.conf的文件夹目录为:“/etc/nginx/nginx.conf” # 执行以下命令 nginx -c /etc/nginx/nginx.conf

再运行 nginx -s reload,就可以了

  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    315 引用 • 547 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...