[5] Nginx Server Setup - Folder Listing on Web
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
Before implementing file upload/download functionality, let's first create a local storage directory and make it accessible via the web.
1. Create Storage and Set Permissions
- Create storage directory ``` mkdir /root/storage cd /root/storage vi test.txt # Add any content, save, and exit ```
- Grant permissions to the directory for the user running NGINX ``` ps aux | grep nginx ```
For example, if the NGINX process runs as "nobody", change the folder's ownership:
``` [root@vbox build] (master) $ ps aux | grep nginx root 52636 0.0 0.0 4544 2412 ? Ss 01:26 0:00 nginx: master process ./nginx root 59772 0.0 0.1 13064 9600 pts/1 T 06:04 0:00 /usr/bin/vim nginx.conf nobody 60676 0.0 0.0 13168 5484 ? S 06:23 0:00 nginx: worker process nobody 60677 0.0 0.0 13168 5612 ? S 06:23 0:00 nginx: worker process ```
- Change permissions and ownership sudo chmod -R 755 /root/storage sudo chown -R nobody:nobody /root/storage
- Modify SELinux security context sudo chcon -R -t httpd_sys_content_t /root/storage
If these steps are not followed, a 403 Forbidden error may occur.
2. Apply NGINX Configuration
- Using `alias`, configure the `/list` endpoint to display the contents of the `/root/storage` directory.
``` user nobody; worker_processes 10;
events { worker_connections 1024; use epoll; }
http { include mime.types; default_type application/octet-stream;
sendfile on; keepalive_timeout 65; large_client_header_buffers 4 16k;
server { listen 10099; server_name localhost;
location /upload.html { root /root/nginx/html; index upload.html; }
location /list { alias /root/storage/; autoindex on; # Enable directory listing autoindex_exact_size off; # Display file size in a simplified format (optional) autoindex_localtime on; # Display file time in local time (optional) }
location /upload { proxy_pass http://localhost:8848; # Proxy target server proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } } ```
After making changes, apply them with "nginx -s reload".
Verifying this setup should display the directory contents correctly.
Related Links
Recommended Link
- 공유 링크 만들기
- X
- 이메일
- 기타 앱
댓글
댓글 쓰기