本文转至博客http://wenxin2009.iteye.com/blog/2117079

Nginx搭建图片服务器

Nginx下载地址:http://nginx.org/en/download.html

本例下载的是window版本nginx-1.6.1

以下是我本机操作说明:

下载完后,解压,并把它放到D:\tools\nginx-1.6.1,双击nginx.exe即可运行nginx。可通http://127.0.0.1访问到nginx欢迎界面,如下


 也可在cmd中通过命令进行启停启动nginx:

start nginx                      //运行nginx

nginx -s stop          // 停止nginx

nginx -s reload       // 重新加载配置文件(如修改配置文件后,可通过该命令重新加载)

nginx -s quit          // 退出nginx

nginx -v                 //可查nginx版本

在执行nginx命令时,出现了 windows nginx: [error] CreateFile() "logs/nginx.pid" failed 异常。原因是未指定

nginx.conf,指定该文件,启动命令如下:

D:\tools\nginx-1.6.1>nginx -c D:\tools\nginx-1.6.1\conf\nginx.conf

接下来我们配置图片服务器:

1、在本地建了一个D:\resourcesfile\images文件夹,里面放了一张png测试图片。

2、配置nginx.conf文件,配置文件内容如下:

  1. #user  nobody;
  2. worker_processes  1;
  3. #error_log  logs/error.log;
  4. #error_log  logs/error.log  notice;
  5. #error_log  logs/error.log  info;
  6. #pid        logs/nginx.pid;
  7. events {
  8. worker_connections  1024;
  9. }
  10. http {
  11. include       mime.types;
  12. default_type  application/octet-stream;
  13. log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
  14. '$status $body_bytes_sent "$http_referer" '
  15. '"$http_user_agent" "$http_x_forwarded_for"';
  16. access_log  logs/access.log  main;
  17. sendfile        on;
  18. #tcp_nopush     on;
  19. #keepalive_timeout  0;
  20. keepalive_timeout  65;
  21. #gzip  on;
  22. server {
  23. listen       8089;#端口号
  24. server_name  localhost;#本机
  25. charset utf-8;
  26. #access_log  logs/host.access.log  main;
  27. location ~ .*\.(gif|jpg|jpeg|png)$ {
  28. expires 24h;
  29. root D:/resourcesfile/images/;#指定图片存放路径
  30. access_log D:/tools/nginx-1.6.1/logs/log_test.log;#图片路径
  31. proxy_store on;
  32. proxy_store_access user:rw group:rw all:rw;
  33. proxy_temp_path         D:/resourcesfile/images/;#图片路径
  34. proxy_redirect          off;
  35. proxy_set_header        Host 127.0.0.1;
  36. proxy_set_header        X-Real-IP $remote_addr;
  37. proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  38. client_max_body_size    10m;
  39. client_body_buffer_size 1280k;
  40. proxy_connect_timeout   900;
  41. proxy_send_timeout      900;
  42. proxy_read_timeout      900;
  43. proxy_buffer_size       40k;
  44. proxy_buffers           40 320k;
  45. proxy_busy_buffers_size 640k;
  46. proxy_temp_file_write_size 640k;
  47. if ( !-e $request_filename)
  48. {
  49. proxy_pass  http://127.0.0.1:8089;#代理访问地址
  50. }
  51. }
  52. location / {
  53. root   html;
  54. index  index.html index.htm;
  55. }
  56. error_page  404              /404.html;
  57. # redirect server error pages to the static page /50x.html
  58. #
  59. error_page   500 502 503 504  /50x.html;
  60. location = /50x.html {
  61. root   html;
  62. }
  63. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  64. #
  65. #location ~ \.php$ {
  66. #    proxy_pass   http://127.0.0.1;
  67. #}
  68. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  69. #
  70. #location ~ \.php$ {
  71. #    root           html;
  72. #    fastcgi_pass   127.0.0.1:9000;
  73. #    fastcgi_index  index.php;
  74. #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  75. #    include        fastcgi_params;
  76. #}
  77. # deny access to .htaccess files, if Apache's document root
  78. # concurs with nginx's one
  79. #
  80. #location ~ /\.ht {
  81. #    deny  all;
  82. #}
  83. }
  84. # another virtual host using mix of IP-, name-, and port-based configuration
  85. #
  86. #server {
  87. #    listen       8000;
  88. #    listen       somename:8080;
  89. #    server_name  somename  alias  another.alias;
  90. #    location / {
  91. #        root   html;
  92. #        index  index.html index.htm;
  93. #    }
  94. #}
  95. # HTTPS server
  96. #
  97. #server {
  98. #    listen       443 ssl;
  99. #    server_name  localhost;
  100. #    ssl_certificate      cert.pem;
  101. #    ssl_certificate_key  cert.key;
  102. #    ssl_session_cache    shared:SSL:1m;
  103. #    ssl_session_timeout  5m;
  104. #    ssl_ciphers  HIGH:!aNULL:!MD5;
  105. #    ssl_prefer_server_ciphers  on;
  106. #    location / {
  107. #        root   html;
  108. #        index  index.html index.htm;
  109. #    }
  110. #}
  111. }

配置完后,执行reload命令重新加载配置文件。然后进行访问图片,http://127.0.0.1:8089/036367.png

如果能访问,说明搭建成功。接下来还需对缓存和安全性进行研究。

===============================================================================

Linux下安装nginx,需要先安装Gcc编译器、PCRE库、zlib库、OpenSSL开发库。然后再安装nginx,

解压:tar -zxvf nginx-1.3.15.tar

编译安装命令:

./configure

make

make install

Linux下配置nginx图片服务器:

nginx version: nginx/0.6.35

nginx启动:/opt/nginx/sbin/nginx -c /opt/nginx/conf/nginx.conf

nginx关闭:ps -au|grep nginx

然后kill -9 进程id  或 killall -9 nginx

nginx.conf配置文件内容如下:

  1. user  root;
  2. worker_processes  1;
  3. worker_rlimit_nofile 65535;
  4. #error_log  logs/error.log;
  5. #error_log  logs/error.log  notice;
  6. #error_log  logs/error.log  info;
  7. #pid        logs/nginx.pid;
  8. events {
  9. worker_connections  12040;
  10. }
  11. http {
  12. include       mime.types;
  13. default_type  application/octet-stream;
  14. #Proxy_cache_path       /pic/image_cache levels=1:2   keys_zone=cache_one:200m inactive=1d max_size=30g ;
  15. #log_format  main  '$remote_addr - $remote_user [$time_local] $request '
  16. #                  '"$status" $body_bytes_sent "$http_referer" '
  17. #                  '"$http_user_agent" "$http_x_forwarded_for"';
  18. #access_log  logs/access.log  main;
  19. sendfile        on;
  20. #tcp_nopush     on;
  21. #keepalive_timeout  0;
  22. keepalive_timeout  65;
  23. #gzip  on;
  24. server {
  25. listen       80;
  26. server_name  localhost;
  27. #charset koi8-r;
  28. #access_log  logs/host.access.log  main;
  29. location / {
  30. root   html;
  31. index  index.html index.htm;
  32. #proxy_pass  http://192.168.10.223:1234;
  33. }
  34. #error_page  404              /404.html;
  35. # redirect server error pages to the static page /50x.html
  36. #
  37. error_page   500 502 503 504  /50x.html;
  38. location = /50x.html {
  39. root   html;
  40. }
  41. # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  42. #
  43. #location ~ \.php$ {
  44. #    proxy_pass   http://127.0.0.1;
  45. #}
  46. # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  47. #
  48. #location ~ \.php$ {
  49. #    root           html;
  50. #    fastcgi_pass   127.0.0.1:9000;
  51. #    fastcgi_index  index.php;
  52. #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  53. #    include        fastcgi_params;
  54. #}
  55. # deny access to .htaccess files, if Apache's document root
  56. # concurs with nginx's one
  57. #
  58. #location ~ /\.ht {
  59. #    deny  all;
  60. #}
  61. }
  62. # another virtual host using mix of IP-, name-, and port-based configuration
  63. #
  64. #server {
  65. #    listen       8000;
  66. #    listen       somename:8080;
  67. #    server_name  somename  alias  another.alias;
  68. #    location / {
  69. #        root   html;
  70. #        index  index.html index.htm;
  71. #    }
  72. #}
  73. # HTTPS server
  74. #
  75. server {
  76. listen       7788;
  77. server_name  localhost;
  78. # ssl on;
  79. # ssl_certificate  /usr/local/nginx/conf/server.crt;
  80. # ssl_certificate_key  /usr/local/nginx/conf/server_nopwd.key;
  81. charset utf-8;
  82. #charset koi8-r;
  83. location ~ (\.jsp)|(\.do) {
  84. proxy_pass  http://127.0.0.1:7001;
  85. proxy_set_header    X-Real-IP  $remote_addr;
  86. proxy_set_header    Host       $host;
  87. proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
  88. proxy_buffer_size 4k;
  89. proxy_buffers 4 32k;
  90. proxy_busy_buffers_size 64k;
  91. proxy_temp_file_write_size 64k;
  92. proxy_max_temp_file_size 512m;
  93. }
  94. }
  95. server {
  96. listen 8089;
  97. server_name localhost;
  98. charset utf-8;
  99. location ~  .*\.(gif|jpg|jpeg|png)$ {
  100. #allow 127.0.0.1;
  101. #deny all;
  102. #expires 24h;
  103. root /home/weblogic/pic/;
  104. access_log /opt/nginx/logs/log_test.log;
  105. proxy_store on;
  106. proxy_store_access user:rw group:rw all:rw;
  107. proxy_redirect          off;
  108. proxy_set_header        Host $host;
  109. proxy_set_header        X-Real-IP $remote_addr;
  110. proxy_set_header        X-Forwarded-For $remote_addr;
  111. client_max_body_size    10m;
  112. client_body_buffer_size 1280k;
  113. proxy_connect_timeout   900;
  114. proxy_send_timeout      900;
  115. proxy_read_timeout      900;
  116. proxy_buffer_size       1024k;
  117. proxy_buffers           40 1024k;
  118. proxy_busy_buffers_size 1024k;
  119. proxy_temp_file_write_size 1024k;
  120. proxy_temp_path        /home/weblogic/pic/;
  121. #Proxy_cache_path       /pic/;
  122. if ( !-e $request_filename)
  123. {
  124. proxy_pass  http://127.0.0.1:8089;
  125. }
  126. }
  127. location / {
  128. root   html;
  129. index  index.html index.htm;
  130. }
  131. #error_page  404              /404.html;
  132. # redirect server error pages to the static page /50x.html
  133. #
  134. error_page   500 502 503 504  /50x.html;
  135. location = /50x.html {
  136. root   html;
  137. }
  138. }
  139. }

配置过程问题汇总:

1、failed  Permission denied  权限问题

修改nginx.conf文件中

user nobody

改成:user root

2、nginx中Too many open files的问题

可参考相关博文 http://www.01happy.com/nginx-too-many-open-files/

http://zlr.iteye.com/blog/1961257

3、nginx recv() failed (104: Connection reset by peer) while reading response header from upstream

修改nginx.conf文件中:

if ( !-e $request_filename)

{

proxy_pass  http://127.0.0.1:8089;

}

(转)Nginx图片服务器的更多相关文章

  1. 搭建Nginx图片服务器

    搭建Nginx图片服务器 Part-I 安装Nginx 安装PCRE 下载 ngx_cache_purge 并解压,用来清除缓存 下载Nginx并解压 cd nginx-1.7.7 编译,--pref ...

  2. Nginx 图片服务器

    文件服务器:后台如果是集群,每次请求都会到不同的服务器,所以每台服务器的图片文件等都要做同步处理,才能保证每次用户不管访问到哪台服务器都能获取一样的资源.这种做法开销会很大,专门使用 nginx 作为 ...

  3. 04_安装Nginx图片服务器

    一.安装Nginx 先安装Nginx,看我之前发的文章: 搭建Nginx服务器 二.安装vsftpd 再安装vsftpd组件,看我之前发的文章: Linux安装ftp组件 三.开始搭建Nginx图片服 ...

  4. 第一次项目上Linux服务器(八:——搭建Nginx图片服务器)

    一.准备工作 安装Nginx,参考历史博客 二.搭建Nginx图片服务器 1.效果 例如:图片通过xftp服务上传到/home/java/upload目录下,我想通过访问Nginx服务器来访问xftp ...

  5. 【图片服务器】搭建Nginx图片服务器

    一.安装Nginx 二.安装vsftpd 三.开始搭建Nginx图片服务器 1.效果 例如:图片通过ftp服务上传到/home/ftpuser/www/images目录下,我想通过访问Nginx服务器 ...

  6. Windows下搭建Nginx图片服务器

    在项目最开始,上传图片的时候,服务器先保存原图再使用ImageMagick生成上传图片缩略图,这种方法有很多缺点,例如生成的缩略图的大小是固定的,不能动态请求指定大小的缩略图. 虽然有非常多的图片云存 ...

  7. 【Nginx】配置nginx图片服务器

    想通过nginx来访问服务器上的图片 可以搭建一个nginx图片服务器. 做法如下: 先安装nginx,这里直接用yum来进行安装的 安装方法如下: https://blog.csdn.net/iml ...

  8. centos7 nginx图片 服务器可以访问ftp用户上传的图片资源的配置

    注:本文参考了csdn:JAVA_DIRECTION的<nginx和ftp搭建图片服务器>一文.在实践中其文在centos7中还是存在缺陷性的 一:前提条件:是成功的安装好了ftp服务器和 ...

  9. 基于Docker搭建Nginx图片服务器

    前言 一般开发中,都会把图片上传到一个目录,然后将目录和文件名拼接存储在数据库中,但是,这种方法如果没弄好的话可能有一定的缺陷. 若项目搬迁,即时这台服务器本身还在用,存放在服务器的跟项目相关的图片也 ...

随机推荐

  1. KVM克隆CentOS6虚拟机后无法启动

    启动网卡报如下错误: Bringing up interface eth0: Device eth0 does not seem to be present,delaying initializati ...

  2. Zabbix学习之路(九)之低级自动发现以及MySQL多实例

    1.概述 Zabbix的网络发现是指zabbix server通过配置好的规则,自动添加host,group,template Zabbix的主动注册刚好和网络发现是相反的,功能基本一致.zabbix ...

  3. centOS上安装最新git 2.4.0

    git 地址: https://www.kernel.org/pub/software/scm/git/ 1.  先安装一堆依赖 yum install curl curl-devel zlib-de ...

  4. WCF中操作的分界于调用顺序和会话的释放

    操作分界 在WCF操作契约的设计中,有时会有一些调用顺序的业务,有的操作不能最先调用,有的操作必须最后调用,比如在从一个箱子里拿出一件东西的时候,必须先要执行打开箱子的操作,而关上箱子的操作应该在一切 ...

  5. tomcat 部署项目到服务器

    参考博客,我选了一种最简单的方法来部署项目. 在tomcat 目录下 的  conf\Catalina\localhost 目录中,新建一个   ' 项目名.xml '   文件,名字用项目名表示, ...

  6. vue-cli的安装使用

    通过 npm install vue 安装vue 后: 1.打开cmd 输入 npm install --global vue-cli 全局安装vue-cli脚手架 输入 vue -V 返回vue-c ...

  7. Appium+python HTML测试报告(1)(转)

    (原文:https://www.cnblogs.com/fancy0158/p/10054632.html) 测试任务执行完成后,我们需要一份通俗易懂的测试报告来展示自动化测试的结果. HTMLTes ...

  8. windows下Mongodb图形化工具安装及配置

    接上篇文章<Windows下Mongodb安装部署.docx> 一.RockMongo 1.RockMongo需要php环境,首先需要搭建php环境,选择采用 下载xampp,这里我用的是 ...

  9. NO.07--我跟“ 币乎 ”的那些事

    文章开头给大家安利一款app吧,就是我标题提到的,‘币乎’,一个近似于虚拟货币的论坛吧,大家可以下载试试,发文章点赞赚钱,... 好了,开始说一说今天的正题吧: 这些事情说起来其实挺惭愧的,但也不是什 ...

  10. Debian 给非 ROOT 用户添加 sudoer 权限

    问题描述 从官方镜像安装的 Debian 9 (Stretch)比较纯净,但因此需要自己安装.配置许多常用的 Linux 应用,这里就需要 sudo (super user do)临时获取 root ...