ubuntu 使用nginx搭建http server,另外一台linux 设备使用curl命令向http server上传文件
时间: 2024-10-19 12:13:00 浏览: 30
在Ubuntu上使用Nginx搭建HTTP服务器并允许另一台Linux设备通过`curl`命令上传文件,你可以按照以下步骤操作:
**1. 安装Nginx:**
```sh
sudo apt-get update
sudo apt-get install nginx
```
启动服务并启用自动启动:
```sh
sudo systemctl start nginx
sudo systemctl enable nginx
```
**2. 配置Nginx:**
编辑Nginx的配置文件`/etc/nginx/sites-available/default`,添加以下内容,假设你的服务器监听8080端口,并指定了一个名为`upload_files`的目录接收上传:
```bash
server {
listen 8080;
root /var/www/html; # 你的网站根目录
location ~* \.(txt|jpg|jpeg|gif|png|doc|docx|pdf)$ {
# 这里仅示例了常见的文件类型,可根据实际需求添加
client_max_body_size 5M; # 设置最大上传文件大小
add_header Content-Type "text/plain"; # 返回文件类型
internal;
try_files $uri =404;
}
# 接收文件上传部分
location /upload_files/ {
alias /path/to/upload/directory/; # 替换为你想存放上传文件的实际路径
# 更安全的方式可以使用form_data,配合POST请求,例如:
# if ($request_method = 'POST') {
# client_body_in_file_only off;
# client_body_buffer_size 16k;
# proxy_pass_request_body off;
# if ($arg_filename) {
# set $file_path "/upload_files/$arg_filename";
# try_files $file_path =404;
# }
# }
}
}
```
记得将上述代码中的`/path/to/upload/directory/`替换为你希望保存上传文件的实际路径。
**3. 测试文件上传:**
在另一台Linux设备上,使用`curl`命令上传文件:
```sh
# 将`your_server_ip`替换为你的Ubuntu服务器IP地址,`your_username`和`your_password`是Nginx的用户名和密码(如果有)
curl -X POST -F "file=@/path/to/local/file.txt" http://your_server_ip:8080/upload_files/ -u your_username:your_password
```
如果你的Nginx没有设置认证,可以省略 `-u your_username:your_password`部分。
**
阅读全文