欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

Linux环境下nginx搭建简易图片服务器

程序员文章站 2023-11-25 22:44:28
主要使用nginx和vsftpd. 安装方面可以直接从nginx官网上下载,或者... 复制代码 代码如下: yum install nginx ...

主要使用nginx和vsftpd.
安装方面可以直接从nginx官网上下载,或者...

复制代码 代码如下:

yum install nginx 

 
如果没有yum源则需要自行添加再进行install.

复制代码 代码如下:

yum install wget
wget  
sh ./atomic 
yum check update 

如果是从官网上下载的则进行如下操作:

复制代码 代码如下:

[root@admin local]# cd /usr/local
[root@admin local]# tar -zxv -f nginx-1.6.2.tar.gz
[root@admin local]# rm -rf nginx-1.6.2.tar.gz
[root@admin local]# mv nginx-1.6.2 nginx
[root@admin local]# cd /usr/local/nginx
[root@admin nginx]# ./configure --prefix=/usr/local/nginx
[root@admin nginx]# make
[root@admin nginx]# make install     

安装vsftpd:

复制代码 代码如下:

yum install vsftpd 

对nginx没有做太复杂的配置,仅仅是创建了一个虚拟目录并打开了目录浏览功能.
我想访问时实际访问的路径是/home/appmanager/
首先我需要在nginx/html下创建一个apps文件夹,尽管实际访问的不是这个路径。

复制代码 代码如下:

mkdir /usr/local/nginx/html/apps

然后修改nginx/conf/nginx.conf在默认的server里再添加一个location并指定实际路径:

复制代码 代码如下:

    location /apps/ {
        root /home/appmanager/;
        #alias ;
        autoindex on;
        #autoindex_exact_size off;
        #autoindex_localtime on;
    } 

autoindex on便是打开浏览功能。 
root则是将apps映射到/home/appmanager/apps/
当然,alias也可以实现我想要的效果,只是用法上和root稍有差异。

接着需要创建用户,就是上面配置文件中的appmanager。

复制代码 代码如下:

useradd -d /home/appmanager -m appmanager

接着指定目录并加入权限

复制代码 代码如下:

chown appmanager /home/appmanager
chmod 777 -r /home/appmanager

不知是什么原因,我第一次创建的用户的目录总是不生效,虽然多次进行usermod -d也毫无效果....

无论如何现在可以通过jsch api访问了。

复制代码 代码如下:

public static void main(string[] args) throws jschexception {
    session session = null;
    channelsftp channelsftp = null;
    try {
        jsch.setlogger(new jschlogger());
        jsch jsch = new jsch();
        session = jsch.getsession("appmanager", "101.x.x.x", "22");
        session.setpassword("password");

        properties config = new properties();
        config.put("stricthostkeychecking", "no");
        session.setconfig(config);
        session.connect();

        channelsftp = (channelsftp) session.openchannel("sftp");
        channelsftp.connect();

    } catch (jschexception | sftpexception | ioexception e) {
        logger.error(e.getmessage(), e);
    } finally {
        if (channelsftp != null) {
            channelsftp.disconnect();
        }
        if (session != null)
            session.disconnect();
    }
}