搭建 http 服务器

安装

安装 nginx

yum  -y install nginx

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

问题描述: 见下图

001.png

问题原因:

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

解决方法(一):

安装epel(Extra Packages for Enterprise Linux)

http://fedoraproject.org/wiki/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;# 显示文件时间

002.png

  • 启动nginx
systemctl start nginx
systemctl enable nginx

启用

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

003.png

附加

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,就可以了