FTP + Nginx 이미지 서버

1. vsftpd 구성 요소 설치
설치 후 / etc / vsftpd / vsftpd. conf 파일 이 있 습 니 다. vsftp 설정 파일 입 니 다. [root@bogon ~]# yum -y install vsftpd
2. 가상 사용자 로그 인 만 들 기
2.1 텍스트 형식의 사용자 이름, 비밀번호 목록 만 들 기
우선 텍스트 형식의 사용자 이름 / 암호 목록 파일, 홀수 행동 사용자 이름, 짝수 행동 이전 줄 의 사용자 이름 에 해당 하 는 암 호 를 만들어 야 합 니 다.예 를 들 어 두 사용자 제 인, john 을 추가 하고 비밀 번 호 는 각각 abc 123, abc 456 으로 다음 과 같은 동작 을 수행 합 니 다.
[root@ling ~]# vi /etc/vsftpd/juser.txt
jene
abc123
john
abc456

2.2 데이터베이스 생 성:
db_load:   db4,db4-devel,db4-utils

# cd //etc/vsftpd   //   /etc/vsftpd    
# yum -y install db4*
# db_load -T -t hash -f juser.txt juser.db  //     juser.list     juser.list.db

file juser.db   //          

2.3 데이터 파일 접근 권한 수정:
chmod 600 /etc/vsftpd/juser.db
2.4 pam 설정 수정:
vi /etc/pam.d/juser.pam //       PAM    ,    juser.pam(    )
auth    required        pam_userdb.so   db=/etc/vsftpd/juser
account required        pam_userdb.so   db=/etc/vsftpd/juser
  :db=/etc/vsftpd/vsftpd_login    .db    

2.5 가상 계 정 에 대응 하 는 시스템 사용자 만 들 기:
# useradd -d /home/ftpuser -s /sbin/nologin ftpuser      //    ftpuser,         ,               ,             Shell
# chmod 755 /home/ftpuser/        //           

2.6 vsftpd 설정 파일 수정
vsftpd 포트 는 1335 이 고 방문 디 렉 터 리 는 / opt / upload (즉 그림 경로) 이 며 수 동적 모드 입 니 다.
vi /etc/vsftpd/vsftpd.conf
anonymous_enable=no
local_enable=YES
write_enable=YES
local_umask=022
connect_from_port_20=YES
#ftp_data_port=1334
chroot_local_user=YES
listen=YES
listen_port=1335
#pam_service_name=vsftpd
pam_service_name=juser.pam
tcp_wrappers=YES

local_root=/opt/upload
pasv_enable=yes
pasv_min_port=31000
pasv_max_port=31999
guest_enable=YES
guest_username=ftpuser
user_config_dir=/opt/ftpuser_dir
userlist_enable=YES

2.7 jene 가상 사용자 설정 파일 을 정의 합 니 다. jene 사용자 가 업로드 할 수 있 도록 합 니 다.
#vi /opt/ftpuser_dir/jene 
anon_upload_enable=YES
anon_other_write_enable=YES
anon_umask=062   (  062      715,   604)

2.8 john 가상 사용자 프로필 을 정의 하고 john 사용자 가 디 렉 터 리 를 업로드 하고 만 들 수 있 도록 합 니 다.
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_umask=062

# service vsftpd restart
3. nginx. conf 를 설정 하여 이미지 서버 로 만 듭 니 다.
# vi /opt/nginx/conf/nginx.conf

user  nginx nginx;
worker_processes  1;

pid        /opt/nginx/run/nginx/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"'
                       '$upstream_addr $upstream_response_time $request_time ';
    log_format log404 '$status [$time_local] $remote_addr $host$request_uri $sent_http_location';

    access_log  logs/nginx/access.log main;
    access_log  logs/nginx/host.access.404.log  log404;

    sendfile        on;

    keepalive_timeout  65;

    server {
        listen       8010;
        server_name  localhost;
        large_client_header_buffers 4 128k;
        client_max_body_size 300m;
        client_body_buffer_size 128k;
        proxy_connect_timeout 600;
        proxy_read_timeout 600;
        proxy_send_timeout 600;
        proxy_buffer_size 64k;
        proxy_buffers   4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;

        location /nginxstatus{
                stub_status on;
                access_log on;
                auth_basic "nginxstatus";
                auth_basic_user_file htpasswd;
        }

        location ~ .*\.(gif|jpg|jpeg|png)$ {
            expires 24h;
            root /opt/upload;
            access_log /opt/nginx/logs/images.log;
            proxy_store on;
            proxy_store_access user:rw group:rw all:rw;
            proxy_temp_path         /opt/upload;
            proxy_redirect          off;
            proxy_set_header        Host 192.168.8.15;
            client_max_body_size    10m;
            client_body_buffer_size 1280k;
            proxy_connect_timeout   900;
            proxy_send_timeout      900;
            proxy_read_timeout      900;
            proxy_buffer_size       40k;
            proxy_buffers           40 320k;
            proxy_busy_buffers_size 640k;
            proxy_temp_file_write_size 640k;
       }

        location / {
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

    }

5. 그림 경로 권한
# ll /opt/
total 4
drwxr-xr-x. 3 root root 4096 Jan 31 13:08 upload

   upload       nginx  
# chmod nginx /opt/upload
# ll /opt/
total 4
drwxr-xr-x. 3 nginx root 4096 Jan 31 13:08 upload

upload   pthoimanges                        (ftpuser)
#chmod -R ftpuser.ftpuser /opt/upload/pthoimanges
# ll /opt/upload/
total 4
drwxr-xr-x. 6 ftpuser ftpuser 4096 Jan 31 13:09 pthoimanges

좋은 웹페이지 즐겨찾기