Nginx搭建文件下载服务器、配置网页、配置接口转发

Linux版本:CentOS 8.2

Nginx版本:1.18.0

1.在官方下载rpm包:Index of /packages/centos/

2.下载好之后,将包上传到home目录下,然后使用yum安装:

yum install -y /home/nginx-1.18.0-1.el8.ngx.x86_64.rpm

安装好之后,一般如果你的80端口不被占用,那么就可以通过输入你的Linux系统的ip,打开nginx主页了,比如我的ip:http://192.168.208.100:80/,打开如下:

《Nginx搭建文件下载服务器、配置网页、配置接口转发》

如果你打不开,先检查下是否启动了nginx,用systemctl start nginx尝试启动下,另外检查下你的防火墙是否做了配置,如果嫌麻烦,直接关掉防火墙。另外查看下80端口是否被占用,如果80端口占用了,就要改下配置文件了。

3.nginx的配置文件在”/etc/nginx/nginx.conf”中,这个是全局的配置文件,一般除了第一行的用户需要改一下,如果权限不足的话,其他的都不用改,这里我们为了方便,把用户由原来的nginx改为root:

《Nginx搭建文件下载服务器、配置网页、配置接口转发》

另外一个配置文件是server的配置,在”/etc/nginx/conf.d/default.conf”中,如果修改端口的话,就修改这里的端口:

《Nginx搭建文件下载服务器、配置网页、配置接口转发》

红色框起来的部分,是我做了修改的部分,其他的都保持默认即可。全部内容如下:

server {
    #nginx监听的端口,默认是80,如果被占用,就修改为其他的,
    #这里我改为9000
    listen       9000;
    server_name  localhost;

    #防止乱码,需要加上编码
    charset utf-8;
    #access_log  /var/log/nginx/host.access.log  main;

    #路由规则
    #如果想把nginx作为下载服务器,则改为系统目录地址
    #比如下面这样,当访问主页时,打开的是本地的/home/nginx/download目录
    location / {
        root   /home/nginx/download;
        autoindex on;    #开启索引功能
        autoindex_exact_size off;  #关闭计算文件确切大小(单位bytes),
                                   #只显示大概大小(单位kb、mb、gb)
        autoindex_localtime on;   #显示本机时间而非 GMT 时间
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    #location ~ \.php$ {
    #    root           html;
    #    fastcgi_pass   127.0.0.1:9000;
    #    fastcgi_index  index.php;
    #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
    #    include        fastcgi_params;
    #}

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #    deny  all;
    #}
}

4.修改好配置文件后,创建/home/nginx/download目录。

5.重启nginx:systemctl restart nginx。使用http://192.168.208.100:9000/打开下载主页面,一般情况都会报403的错误,这个是因为权限的问题,首先这里我们修改了启动nginx的用户为root,root的最高权限账户,所以不存在用户权限的问题,那么这里的权限问题就是SELINUX导致的,把它禁用了就可以了。方法是修改配置文件”/etc/selinux/config”,如下:

《Nginx搭建文件下载服务器、配置网页、配置接口转发》

禁用之后重启系统,然后首先启动nginx,再访问http://192.168.208.100:9000/,就可以查看可下载的文件了:

《Nginx搭建文件下载服务器、配置网页、配置接口转发》

到这里,下载功能就完成了。

6.当需要配置多个访问路径的时候,则其他的路径要将root改为alias:

    location /test {
        alias   /nginx/html/;#这里应该是alias,不再是root
        index   index.html;
    }

7.配置接口转发,也就是我们所说的反向代理,现在当用户使用下面的地址访问我们的test接口的时候:

http://127.0.0.1/api/test

我们希望nginx转到下面的请求上去,同时进行路径替换,把api去掉:

http://127.0.0.1:8089/test

因为通常我们的接口服务一般较少用80端口,另外如果nginx和接口服务跑在同一台服务器上,那么80端口会被nginx占用,接口服务也无法使用80端口。要进行转发,配置方式如下:

    location /api/ {		
            proxy_pass http://127.0.0.1:8089/;
    }

这个时候,当你使用地址http://127.0.0.1/api/test 调用test接口的时候,nginx会自动给你转成http://127.0.0.1:8089/test 这个请求地址。

这个配置文件修改后,要重启nginx才能生效。

8.前面说的是在服务器上直接安装nginx,这里再提供一个使用docker安装nginx的方法Docker启动常用容器(redis、mysql、MongoDB等等)_dap769815768的博客-CSDN博客

    原文作者:returnTrue999
    原文地址: https://blog.csdn.net/dap769815768/article/details/108282334
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞