一、代理到本地静态文件

我所在的开发环境里,nginx和ftp在同一台服务器。

ftp根目录:

nginx的配置:

在nginx.conf中加入:

    server {
listen ;
server_name localhost;
location / {
root C:/FTPRoot;
index *.*;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers X-Requested-With;
add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
}
}

然后重新加载配置文件即可,参考:https://www.cnblogs.com/qianzf/p/6809427.html。

如果是linux下,配置举例:

    server {
listen ;
server_name localhost; location / {
root /usr/local/src/WEB/dist;
try_files $uri /index.html index.html;
}
}

二、nginx配置:通过端口进行负载均衡

#user  nobody;
worker_processes 1; #error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info; #pid logs/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"'; #access_log logs/access.log main; sendfile on;
#tcp_nopush on; #keepalive_timeout 0;
keepalive_timeout 65; #gzip on; server {
listen 9004; location /igt {
root /usr/local/nginx/webapps;
index index.html;
}
}
upstream 8080tomcat {
server 10.11.12.61:8080 weight=1;
server 10.11.12.62:8080 weight=1;
}
server {
listen 8080;
server_name localhost; location / {
root html;
index index.html index.htm;
proxy_pass http://8080tomcat;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} } upstream 9080tomcat {
server 10.11.12.105:9080 weight=1;
server 10.11.12.106:9080 weight=1;
}
server {
listen 9080;
server_name localhost; location / {
root html;
index index.html index.htm;
proxy_pass http://9080tomcat;
} error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
} } }

这其中,根据端口会分发到不同的后端集群中。

三、nginx配置前后端分离项目

一般的项目中,前后端分离。前端是纯粹的html,直接放nginx。前端项目中,会指定后端的地址。

我们可以将后端的地址,指定为nginx的ip+后端服务的端口。

然后,在nginx中,再像上述第二节那样配置端口转发。

本例中,nginx的ip为:10.11.12.107

1、配置前端

    server {
listen 9004; location /igt {
root /usr/local/nginx/webapps;
index index.html;
}
}

前端项目的位置如下:

2、在前端项目中配置后端服务的url

3、配置负载均衡,并携带客户端真实ip

   upstream 9080tomcat{
  server 10.11.12.105:9080 weight=1;
     server 10.11.12.106:9080 weight=1;
}
    server {
listen 9080;
server_name localhost; location / {
root html;
index index.html index.htm;
proxy_pass http://9080tomcat;
//这里怎么将客户端真实的ip传给后台服务呢,按下面这样配置
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

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

然后在后端的服务里,可以这样获取(java举例:)

    public static String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}

windows下nginx代理ftp服务器的更多相关文章

  1. Windows下IIS搭建Ftp服务器

    第一步:启用Windows IIS Web服务器 1.1 控制面板中找到"程序"并打开 1.2 程序界面找到"启用或关闭Windows功能"并打开 1.3 上面 ...

  2. Windows下nginx配置多台服务器做负载均衡

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务,也是一个IMAP/POP3/SMTP服务. Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3 ...

  3. Windows下Nginx实现负载均衡

    Apache,Nginx Apache和Nginx都属于属于 静态页面服务器,都有插件支持动态编程语言处理,但Nginx的IO模比Apache更适合跑代理.所以一般都作为前端缓冲代理(Nginx的反向 ...

  4. [转]Windows 下 Nginx+IIS 使用

    本文转自:https://blog.csdn.net/chihen/article/details/52698594 Windows 下 Nginx+IIS 使用 一.Nginx简介 Nginx (& ...

  5. Windows下Nginx配置SSL实现Https访问(包含证书生成)

    Vincent.李   Windows下Nginx配置SSL实现Https访问(包含证书生成) Windows下Nginx配置SSL实现Https访问(包含证书生成) 首先要说明为什么要实现https ...

  6. Windows下Nginx Virtual Host多站点配置详解

    Windows下Nginx Virtual Host多站点配置详解 此教程适用于Windows系统已经配置好Nginx+Php+Mysql环境的同学. 如果您还未搭建WNMP环境,请查看 window ...

  7. windows下运行的linux服务器批量管理工具(带UI界面)

    产生背景: 由于做服务器运维方面的工作,需要一人对近千台LINUX服务器进行统一集中的管理,如同时批量对LINUX服务器执行相关的指令.同时批量对LINUX服务器upload程序包.同时批量对LINU ...

  8. windows下nginx的启动关闭

    Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍. .启 ...

  9. Windows下Nginx的启动、停止等命令

    Windows下Nginx的启动.停止等命令 在Windows下使用Nginx,我们需要掌握一些基本的操作命令,比如:启动.停止Nginx服务,重新载入Nginx等,下面我就进行一些简单的介绍.1.启 ...

随机推荐

  1. PHP中文关键词匹配

    关键词匹配是比较常见的需求,如留言.弹幕及游戏聊天中的敏感词过滤,都需要对一段文字进行关键词匹配.提取到关键词后,再做进一步处理. 本类借助PHP高效的数组和mbstring扩展,来实现对中文关键词的 ...

  2. python web开发-flask中消息闪现flash的应用

    Flash中的消息闪现,在官方的解释是用来给用户做出反馈.不过实际上这个功能只是一个记录消息的方法,在某一个请求中记录消息,在下一个请求中获取消息,然后做相应的处理,也就是说flask只存在于两个相邻 ...

  3. 【JS】 Javascript 入门

    javascript **********本章大量示例和内容引用自w3cschool的javascript教程************** 本来已经快写完90%左右了,结果不小心跑了个js,不小心把浏 ...

  4. mysql授权报错

    mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<zabbix>';ERROR ...

  5. DB2开发系列之三——SQL函数

    1.内置函数分类(SYSIBM模式内) 1)标量函数:返回一个标量值的函数: 2)聚合函数:也叫列函数,也返回一个标量值,这个值是一组输入值的计算结果:3)表函数:向引用它的 SQL 语句返回一个表: ...

  6. iOS scrollView中嵌套多个tabeleView处理方案

    项目中经常会有这样的需求,scrollView有个头部,当scrollView滚动的时候头部也跟着滚动,同时头部还有一个tab会锁定在某个位置,scrollView中可以放很多不同的view,这些vi ...

  7. MySQL使用和操作总结

    简介 MySQL是一种DBMS,即它是一种数据库软件.DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS.前者用于桌面用途,通常不用于高端或更关键应用. My ...

  8. selenium2自动化测试学习笔记(二)

    chromedriver报错问题解决了,真是无语 是因为chromedriver与浏览器版本不一致 http://chromedriver.storage.googleapis.com/index.h ...

  9. JavaScript(第三天)【数据类型】

    学习要点: 1.typeof操作符 2.Undefined类型 3.Null类型 4.Boolean类型 5.Number类型 6.String类型 7.Object类型 ECMAScript中有5种 ...

  10. 《团队-手机app便签-开发文档》

    项目托管平台地址:https://github.com/Vcandoit/Notepad.git 我主要负责文件存储部分,文字部分使用sqlite保存. 因为我们想实现备忘录记录照片.语音的功能,所以 ...