首页 > 系统相关 >在centos7.9下编译安装nginx1.16.1带fancyindex

在centos7.9下编译安装nginx1.16.1带fancyindex

时间:2024-06-10 15:03:54浏览次数:30  
标签:nginx1.16 http nginx -- sudo module centos7.9 Nginx fancyindex

在centos7.9下编译安装nginx1.16.1带fancyindex

文章目录


前言

想做个内网源,默认的目录索引太难看,两年前花了好长时间到处找资料终于搭好,今天再拿出来用竟然出错。仔细检查后发现yum安装的nginx1.16.1版本连配置文件都对不上以前的笔记。所以就有了这篇文章,希望也对大家有用。


一、安装环境

centos7.9 / nginx1.16.1 / ngx-fancyindex-0.4.4

二、需要达到的效果

1.默认效果

这是默认索引目录样式

2.安装主题效果

这是安装主题目后样式

三、nginx编译安装

1.安装依赖工具

sudo yum -y install gcc gcc-c++ wget ntpdate vim-enhanced autoconf automake openssl-devel pcre-devel unzip redhat-rpm-config libxslt-devel php-gd perl-devel perl-ExtUtils-Embed gperftools gd-devel

2.创建目录并下载 Nginx 及其模块

sudo mkdir -p /usr/share/nginx/html/data
cd /usr/share/nginx/html/data
sudo wget -c http://nginx.org/download/nginx-1.16.1.tar.gz
sudo tar -xvf nginx-1.16.1.tar.gz
sudo wget -c https://github.com/aperezdc/ngx-fancyindex/releases/download/v0.4.4/ngx-fancyindex-0.4.4.tar.xz
sudo tar -xvf /usr/share/nginx/html/data/ngx-fancyindex-0.4.4.tar.xz -C /usr/share/nginx

3.运行编译与安装

编译的参数是yum安装nginx1.16.1后获得的默认参数,只增加ngx-fancyindex-0.4.4部分

cd /usr/share/nginx/html/data/nginx-1.16.1
sudo ./configure --prefix=/etc/nginx \
    --sbin-path=/usr/sbin/nginx \
    --modules-path=/usr/lib64/nginx/modules \
    --conf-path=/etc/nginx/nginx.conf \
    --error-log-path=/var/log/nginx/error.log \
    --http-log-path=/var/log/nginx/access.log \
    --pid-path=/var/run/nginx.pid \
    --lock-path=/var/run/nginx.lock \
    --http-client-body-temp-path=/var/cache/nginx/client_temp \
    --http-proxy-temp-path=/var/cache/nginx/proxy_temp \
    --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp \
    --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp \
    --http-scgi-temp-path=/var/cache/nginx/scgi_temp \
    --user=nginx \
    --group=nginx \
    --with-compat \
    --with-file-aio \
    --with-threads \
    --with-http_addition_module \
    --with-http_auth_request_module \
    --with-http_dav_module \
    --with-http_flv_module \
    --with-http_gunzip_module \
    --with-http_gzip_static_module \
    --with-http_mp4_module \
    --with-http_random_index_module \
    --with-http_realip_module \
    --with-http_secure_link_module \
    --with-http_slice_module \
    --with-http_ssl_module \
    --with-http_stub_status_module \
    --with-http_sub_module \
    --with-http_v2_module \
    --with-mail \
    --with-mail_ssl_module \
    --with-stream \
    --with-stream_realip_module \
    --with-stream_ssl_module \
    --with-stream_ssl_preread_module \
    --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' \
    --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' \
    --with-http_addition_module \
    --add-module=/usr/share/nginx/ngx-fancyindex-0.4.4

sudo make && sudo make install

4.配置环境变量,适用于所有用户的全局配置文件(可选)

sudo sh -c 'echo "export PATH=\$PATH:/usr/sbin" >> /etc/profile'
source /etc/profile

5.拷贝编译后Nginx 文件到安装目录(这步要不要做以后验证)

sudo cp /usr/share/nginx/html/data/nginx-1.16.1/objs/nginx /usr/sbin/

6.设置 Nginx 为系统服务

6-1.创建一个 systemd 服务文件 /lib/systemd/system/nginx.service

sudo vim /lib/systemd/system/nginx.service
#添加以下内容:
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target

[Service]
Type=forking
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/usr/sbin/nginx -s quit
PIDFile=/var/run/nginx.pid
PrivateTmp=true

[Install]
WantedBy=multi-user.target

6-2.重新加载systemd的配置与设置Nginx在系统启动时自动运行

sudo systemctl daemon-reload
sudo systemctl enable nginx

7.创建 nginx 用户和组

sudo groupadd nginx
sudo useradd -g nginx -s /sbin/nologin -M nginx

说明:

  • groupadd nginx:创建一个名为 nginx 的组。
  • useradd -g nginx -s /sbin/nologin -M nginx:创建一个名为 nginx 的用户,将其主组设置为 nginx,禁止登录 shell,并且不创建主目录。

8.创建临时目录并设置权限

8-1.创建所需的目录

sudo mkdir -p /var/cache/nginx/client_temp
sudo mkdir -p /var/cache/nginx/proxy_temp
sudo mkdir -p /var/cache/nginx/fastcgi_temp
sudo mkdir -p /var/cache/nginx/uwsgi_temp
sudo mkdir -p /var/cache/nginx/scgi_temp

8-2.设置目录的所有者和权限:将这些目录的所有者和组设置为 nginx 用户和组

sudo chown -R nginx:nginx /var/cache/nginx

8-3.创建日志文件并设置权限

sudo mkdir -p /var/log/nginx
sudo touch /var/log/nginx/error.log
sudo chown -R nginx:nginx /var/log/nginx

8-4.查看错误日志(可选)

sudo cat /var/log/nginx/error.log

9.运行Nginx主要命令

9-1.启动 Nginx 服务(必需)

sudo systemctl start nginx

9-2.开机自启

sudo systemctl enable nginx

9-3.重启 Nginx 服务

sudo systemctl restart nginx

9-4.查看 Nginx 服务状态

sudo systemctl status nginx

9-5.停止 Nginx 服务

sudo systemctl stop nginx

9-6.重新加载 Nginx 配置

sudo nginx -s reload

9-7.检查 Nginx 配置的语法错误

sudo nginx -t

9-8.查看 Nginx 配置文件的位置

whereis nginx.conf

9-9.查看nginx版本

nginx -v

四、配置防火墙放行

sudo firewall-cmd --permanent --zone=public --add-service=http 
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

五、启用fancyindex

1.备份nginx.conf

sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak

2.编辑/etc/nginx/nginx.conf文件,把第43行修改为以下内容

#原内容
41        #access_log  logs/host.access.log  main;
42
43        location / {
44            root   html;
45            index  index.html index.htm;
46        }
47
48        #error_page  404              /404.html;

#修改后内容
41        #access_log  logs/host.access.log  main;
42
43        location /data {
44            alias   /usr/share/nginx/html/data;
45            index  index.html index.htm;
46            fancyindex on;
47            fancyindex_exact_size off;
48            fancyindex_localtime off;
49            charset utf-8,gbk;
50            fancyindex_name_length 255; 
51        }
52
53        #error_page  404              /404.html;

3.保存后重新加载 Nginx 配置

sudo nginx -s reload

六、网页访问

http://192.168.2.111/data/

说明:

  • /data在系统中的目录为/usr/share/nginx/html/data,用于存放同步源文件。


总结

编译安装主要是为了解决系统、版本不同造成的安装失败。安全方面未能做出详细配置,请不要用在生产上。本次配置主要是能用到二级目录的索引访问,保留根目录方便自建源做更多修改。

标签:nginx1.16,http,nginx,--,sudo,module,centos7.9,Nginx,fancyindex
From: https://blog.csdn.net/lhmx557/article/details/139575140

相关文章

  • centos7.9服务器部署nginx1.27.0
    在CentOS7.9服务器上安装带有stream模块的Nginx服务,你需要执行以下步骤:安装依赖:在开始安装Nginx之前,你需要先安装一些必要的依赖库。这包括gcc编译环境、pcre库(用于重写功能)、zlib库(用于http包内容的gzip压缩)、以及openssl库(用于通信加密)。可以使用yum命令进行安装:sudoyumin......
  • CentOS7.9部署安装OpenGauss 5.0.2企业版
    1、更新系统:yumupdate-y2、更改主机名:hostnamectlset-hostnameopendb013、关闭透明页:echonever>/sys/kernel/mm/transparent_hugepage/enabledechonever>/sys/kernel/mm/transparent_hugepage/defrag#加入开机自启动echo'echonever>/sys/kernel/......
  • centos7.9 升级openssh(9.7p1)
    参考自:https://blog.csdn.net/morecccc/article/details/134758892原文亲测有效,本文用于备份和记录心得注意事项:①先安装telnet,防止ssh升级失败,连不上服务器的情况(但是需要拥有root密码,才能使用su root,不然这一步可以省略)②下载想要的版本的包cd/usr/local/src/wgethttps:......
  • centos7.9服务器配置环境
    查看centos版本cat/etc/centos-release1.安装dockercurl-fsSLhttps://get.docker.com|bash-sdocker--mirrorAliyun启动dockersudosystemctlstartdocker设置开机启动sudosystemctlenabledocker2.创建运维用户创建cy用户useradd-m-d/home/cycy设置密码pas......
  • centos7.9安装openrestry
    简介:openrestry是一个与lua脚本结合的高性能服务器一:根据官网下载安装包https://openresty.org/cn/linux-packages.html二..配置环境exportPATH=/usr/local/openresty/nginx/sbin:$PATH默认安装后的80端口会被开放,查看并杀死netstat-lnpt|grep80kill-9pid 三.简......
  • centos7.9简单的jar包的部署脚本
    #!/bin/bash#应用程序的名字APP_NAME="wecom"BASE_PATH="/home/cy/soft/wecom/"#JAR文件的新版本路径JAR_PATH="${BASE_PATH}${APP_NAME}.jar"#PID文件的路径PID_PATH="${BASE_PATH}${APP_NAME}.pid"#上传jar文件的位置JAR_BAK_PATH="......
  • centos7.9 宝塔环境安装dotnet8
    官方下载二进制文件,https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0选择对应linux然后上传到到目录,这边是随意的home/dotnet8然后执行下面的命令,提示没有文件或者文件夹,就对应创建下文件夹目录就可以。可以使用linux命令:mkdir-p/home/dotnet8mkdir-p/usr......
  • 【转】centos7.9源码安装mysql5.7.44
    原文:https://blog.csdn.net/SeeYouGoodBye/article/details/1352314511、环境介绍centos7.9mysql5.7.44boost1.59.0注意:这里的编译版本mysql5.7.44和boost1.59.0是有依赖的,建议使用相同版本2、安装编译要用的依赖软件yuminstall-ygccgcc-c++cmakelibaio-develncu......
  • Centos7.9安装卸载Docker
    目录1、官网安装1.1、卸载旧版本Docker1.2、通过rpm仓库安装1.2.1、设置仓库1.2.2、安装DockerEngine1.2.3、启动Docker1.2.4、验证安装1.3、通过rpm软件包安装1.4、通过便捷脚本安装2、yum安装2.1、安装docker-ce以及客户端2.2、启动docker2.3、配置镜像加速3、卸载Docker3.1、......
  • CentOS7.9安装mysql-8.0.36踩坑小记
    前言:最近想在一台测试服务器上,安装下最新的MySQL8.0版本数据库,想着挺简单的一件事,之前也手搓过8.0安装,这不手到擒来,没想到马失前蹄,遇到了一个小坑,耗费了不少时间,简单写篇文档记录下吧。1.排错记录执行./mysqld--initialize初始化命令后,提示报错,如下图所示看报错应该是......