在前两篇博客中提到了搭建Nginx和Ftp服务器,在本篇博客,主要是介绍Nginx的配置文件的使用,怎样修改配置文件使其成为一个图片服务器。

一、Nginx图片服务器配置

<span style="font-family:KaiTi_GB2312;font-size:18px;">[root@localhost sysconfig]# vi /etc/nginx/nginx.conf </span>

进入到了Nginx的配置文件页面,然后将其修改为(请一定看代码后面的备注说明):

<span style="font-family:KaiTi_GB2312;font-size:18px;">user  nginx;
worker_processes 1; #可修改,最大并发进程 error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid; events {
worker_connections 1024; #可修改,最大并发量
} http {
include /etc/nginx/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"'; access_log /var/log/nginx/access.log main; sendfile on;
#tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; tcp_nodelay on; client_body_buffer_size 512k;
proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k; gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plainapplication/x-javascript text/css application/xml;
gzip_vary on; #注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区
proxy_temp_path /usr/data0/proxy_temp_dir;
#设置Web缓存区名称为cache_one,内存缓存空间大小为200MB,1天没有被访问的内容自动清除,硬盘缓存空间大小为5GB。
proxy_cache_path /usr/data0/proxy_cache_dir levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=5g; log_format cache '***$time_local ' '$upstream_cache_status ' 'Cache-Control: $upstream_http_cache_control ' 'Expires: $upstream_http_expires ' '"$request" ($status) ' '"$http_user_agent" '; #定义日志格式(此日志格式可以显示hit miss等,显示缓存是否被击中,老版本默认可以,但是新版本,发现需要加上这个) access_log /var/log/nginx/cache.log cache; #使用这个日志格式 server #此处为缓存服务器
{
listen 80;
server_name 192.168.147.126; location /
{
proxy_cache cache_one;
#对不同的HTTP状态码设置不同的缓存时间
proxy_cache_valid 200 304 12h;
#以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://192.168.147.126:8080; #此处跳转到真实的图片服务器 expires 1d;
} #用于清除缓存,假设一个URL为http://192.168.8.42/test.txt,通过访问http://192.168.8.42/public_root/test.txt就可以清除该URL的缓存。
location ~ /public_root(/.*)
{
#设置只允许指定的IP或IP段才可以清除URL缓存。
allow 127.0.0.1;
deny all;
#proxy_cache_purge cache_one$host$1$is_args$args;
} #扩展名以.php、.jsp、.cgi结尾的动态应用程序不缓存。
location ~ .*\.(php|jsp|cgi)?$
{
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
} access_log off;
} <span style="color:#ff0000;">#真实的图片服务器
server
{
listen 8080; server_name 192.168.147.126; location /
{
root /var; } access_log /var/log/nginx/access.log ; }</span> }
</span>

备注:

1,192.168.147.126 为主机地址

2,红色代码部分,为主要部分(必要),其余部分,均可视自己的实际需求修改

3,本机的ftp上传路径为:/var / public_root/

4,listen监听的端口,比如此处代码的80和8080,需要在防火墙配置里面进行配置。命令行:

<span style="font-family:KaiTi_GB2312;font-size:18px;">[root@localhost sysconfig]# vim /etc/sysconfig/iptables</span>

配置完成后,记得重启服务(iptables服务,Nginx服务),命令:service 服务名(nginx,iptables) restart

重要:更改完配置文件后,执行命令行:nginx -t,对配置文件进行测试,然后使用命令行:nginx -s reload,重新加载配置文件。

二、ftp文件上传关键代码

<span style="font-family:KaiTi_GB2312;font-size:18px;">@Test
public void testFtpClient() throws Exception{ //1,创建一个FTPClient对象
FTPClient ftpCLient=new FTPClient();
//2,创建Ftp连接,默认是21端口
ftpCLient.connect("192.168.147.126",21);
//3,登录ftp服务器,使用用户名和密码
ftpCLient.login("HHX", "HHX"); //4,上传文件
//4.1,读取本地文件
FileInputStream inputStream=new FileInputStream(new File("K:\\Angel.jpg")); //4.2,设置上传的路径
ftpCLient.changeWorkingDirectory("/var/public_root"); //修改上传文件的格式
//ftpCLient.setFileType( FTP.BINARY_FILE_TYPE); //4.3,第一个参数,服务器端文档名;第二个参数,上传的文档inputstream
ftpCLient.storeFile("Angel.jpg", inputStream);
//5,关闭连接
ftpCLient.logout();
}</span>

三、访问结果

四、总结

在这个过程中,还有可能会遇到因为网卡配置和DNS配置的一些问题,但一定要耐心和细心,不要着急。值得注意的是:ftp上传文件路径的授权;ftp登录用户的访问文件权限。如果出现了403,那么可能会是两种情况,第一检查ip和端口是否和配置文件一致;第二,检查访问文件夹授权(区别777,755)。还有可能会出现404,这个需要检查配置文件的server配置。

附:ftp配置说明(可能会出现用户无法登陆的情况,这时候这些参数的配置很关键,vsftpd.conf)

vsftpd的配置,配置文件中限定了vsftpd用户连接控制配置。

vsftpd.ftpusers:位于/etc目录下。它指定了哪些用户账户不能访问FTP服务器,例如root等。

vsftpd.user_list:位于/etc目录下。该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。

vsftpd.conf:位于/etc/vsftpd目录下。来自定义用户登录控制、用户权限控制、超时设置、服务器功能选项、服务器性能选项、服务器响应消息等FTP服务器的配置。

欢迎大家一起交流啊!

最新文章

  1. JavaScript 最简单的图片切换
  2. windows守护进程脚本
  3. vb- ----之常用函数
  4. ASP.NET MVC从视图传递多个模型到Controller
  5. No space left on device 解决Linux系统磁盘空间满的办法
  6. Codeforces Round #251 (Div. 2) B. Devu, the Dumb Guy
  7. Windows Store App 用户库文件分组
  8. vscode调试HTML
  9. MySQL数据库管理常用命令
  10. MySQL数据库表名、列名、别名区分大小写的问题
  11. 【Android开发学习笔记】【第七课】五大布局-上
  12. android开发:点击缩略图查看大图
  13. .net项目架构改造之搭建基于java环境配置一览【上】
  14. 【CJOJ2440】大话西游(树链剖分)
  15. JavaScript一看就懂(2)闭包
  16. 前端基础之JS
  17. flower
  18. P1993 小K的农场
  19. BZOJ2957: 楼房重建(分块)
  20. 关于iFrame特性总计和iFrame跨域解决办法

热门文章

  1. Spring框架学习-Spring的AOP概念详解
  2. CF1149A Prefix Sum Primes
  3. 【CSS】纯css实现立体摆放图片效果
  4. Azure Powershell 获取可用镜像 PublisherName,Offer,Skus,Version
  5. sql server 2008怎么设置不允许windows身份验证
  6. SQLServer查询耗时sql语句
  7. POJ 1947 Rebuilding Roads (树形DP)
  8. UVA 10003 cuting sticks 切木棍 (区间dp)
  9. 万事先问『为什么』 what why how
  10. mac上使用命令行显示隐藏文件