我有一个python脚本,通过代理连接到一些网站,如果直接连接失败。 我想要做的是获得一个当前活动代理列表,我不知道如何做到这一点
所以我们的服务器设置如下所示: www <-> nginx <-> backend services 内部服务需要授权,如果用户令牌不正确等等,则内部服务通常会失败,并有403。 现在,我们还使用fail2ban ,它关注nginx的error.log文件中的某些内容,并在一定时间内禁止IP。 我想在这里实现的是当后端服务返回一个403时,nginx会logging一个错误,所以如果有多余的403的fail2ban可以在接下来的十分钟左右禁止IP地址。 目前,如果后端服务响应403,nginx不会logging任何内容到error.log文件。 如何做到这一点? 谢谢。
在我的工作地点,我们已经用完了可用的IP地址,以便分配给我们面向公众的UAT服务器。 因此,我们将所有stream量从另一个服务器IP地址的端口9999路由到我们的UAT服务器上的端口80。 这在大多数情况下工作正常,但testing外部服务,如贝宝变得不可能,因为贝宝从回叫url中删除端口号,所以我们面向公众的UAT服务器不能与付款网关交互。 作为一个解决方法,我build议如下: 购买具有唯一IP地址的最便宜的Digital Ocean容器。 指向所有UAT域的DNS到这个容器。 阻止除UAT服务器的容器以外的所有stream量。 设置某种反向代理将所有stream量从DO容器路由到UAT服务器。 我不知道怎么做的部分是反向代理部分。 我假设我需要Nginx或Varnish。 但是,该解决scheme需要处理用户会话和file upload,DO容器只能作为代理进行操作,不能存储这些信息。 这可能吗? 如果是的话,我该怎么办呢? 我没有偏好DO容器的操作系统或软件,所以我们欢迎任何build议。 请不要告诉我,我们应该如何获得另一个IP地址,而不是为了这个冗长的解决scheme。 我清楚知道这是过分的,但目前我们不能购买任何其他IP块,所以这是一个临时措施,直到发生这种情况。
是否有可能在Apache(或者例如Nginx / HAProxy / etc)中使用PHP文件进行身份validation? 我想要的是以下几点: 用户访问一个门户(index.php)。 Apache会查看index.php是否提供了HTTP状态代码200 OK或401 Unauthorized(PHP文件检查用户是否login并发送自定义标题)。 当200 OK时,用户可以进入门户。 如果index.php提供了401个HTTP状态码,用户需要login。 一切都需要在index.php文件中发生,并需要在Apache层工作。 我所做的PHP文件中的身份validation过程正是我所需要的,但是现在我想以某种方式将它与Apache连接起来。 希望我的解释清楚。 我想这是因为以下原因:我已经build立了一个门户来访问一些应用程序(Owncloud,Munin,Wiki,Shell in a Box)。 这个门户是一个代理服务器,当你访问例如www.example.com/owncloud时,代理服务器/容器。 目前我有一个htpasswd解决scheme,但我想要一个自定义的身份validation页面(以控制身份validation过程)。
我有一个应用程序运行localhost:2000而我的网站是在本地主机上。 我想指出目录/projects/projectName – > localhost:2000 。 但是,当应用程序发出/发送请求时会出现问题。 例如,如果在/run时发出GET请求,则请求将GET URL显示为https://localhost/run并返回一个404.这里的两个问题是: 它redirect到端口443; 和 港口2000现在应要求丢失。 更新:我试图closuresSSL,但端口2000仍然在请求丢失。 理想情况下,我希望这与SSL的工作。 这两个问题可能是一回事,但我不确定。 要看看它应该如何工作, http://stevenshi.me:2000是工作的应用程序。 正如你所看到的,GET和POST请求转到上面的url + /foo 。 这是我目前的Apacheconfiguration文件 <VirtualHost *:80> RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] ServerAdmin [email protected] ServerName stevenshi.me ServerAlias www.stevenshi.me DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin [email protected] ServerName stevenshi.me:443 […]
我试图configurationNginx使用像github页面的代理传递的域名,并且在根域上也有一个登陆页面。 有了这个configuration代理githubages工作正常,但如果我检查example.com它也转到github页面。 我的configuration是这样的: server { listen 80 ; index index.html index.htm; server_name example.com www.example.com ; location = / { index index.html; root /home/landing/public_html ; } location / { #this work fine proxy_set_header Host enlaorbita.github.io; proxy_set_header X-Real-IP $remote_addr; proxy_pass http://user.github.io/; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 它必须这样做: example.com或www.example.com – >去我自己的着陆(这是行不通的) example.com/repo/ – >转到user.github.io/repo。 是的,它的作品 谢谢
我有一个networking设置如下所示。 带有公共IP的Windows Server 2012 R2盒子,后面有多个CentOS 7networking服务器。 每个CentOS盒子是多个网站的networking服务器。 CentOS盒子运行Apache 2.4和PHP 5.5 。 所有站点的DNS条目都指向Win Server的公共IP地址( 1.2.3.4 )。 我的问题是 :如何最有效地将这些网站从CentOS盒子送到terminal用户? 我一直在寻找IIS反向代理。 这是我目前(超笨重)的解决scheme: Win Server获取foo.com的请求 URL被重写到com.foo.web1 , IIS包含一个$_SERVERvariables来为PHP提供正确的URL( foo.com )。 Win Server hosts文件说com.foo.web1转到com.foo.web1的IP( 192.168.1.2 ) com.foo.web1有一个com.foo.web1的虚拟主机,然后为foo.com提供所有的东西。 这工作,但它感觉像一个可怕的黑客。 理想情况下,我想避免重写url。 我只想说foo.com ? 发送该请求到192.168.1.2 。 thing.com ? 发送到192.168.1.3 。 这听起来就像DNS,但显然我不能告诉用户去一些内部的IP。 也许我实际上需要一个转发代理? 我不能只转发端口80因为需要在多个服务器之间拆分请求。 我觉得这个问题以前一定解决了,但是我弄不明白。 (我真的是开发人员,而不是系统pipe理员)。 帮助将不胜感激! 我倾倒了Win Server for Linux,并使用HAProxy 为了避免任何人通过阅读所有的评论来发现这一点,我结束了倾销Windows Server和使用Linux与HAProxy。 HAProxy能够转发请求,而无需重写URL。 […]
我有以下设置: 电脑L(我的Mac OS X机器)。 运行Ubuntu 12.04的Linode R0。 运行Ubuntu 12.04的Linode R1。 运行Ubuntu 12.04的Linode R2。 R1和R2被转换成SOCKS5代理服务器,如下所示: user@R0: ssh -D 1081 R1 user@R0: ssh -D 1082 R2 现在,我将如何去让R0充当一个简单的HTTP / HTTPS代理服务器,并接受来自本地计算机的随机转发到R1的身份validation(一个la squid,不能让服务器工作)传入的HTTP连接或R2? 不希望本地端口转发到R0所以请不要ssh -L解决scheme。
在我的组织中,我们正在迁移某个Web +邮件设置,我认为也许nginx可以适合做我想做的事,但是我不能完全理解官方文档 。 我有一台Web应用程序(内部)在机器A,有一组用户。 机器A能够以*@example.net发送邮件。 我想允许一些用户发送邮件为:[email protected],而不是[email protected](某些用户共享一些组,并且用户有几个允许的组)。 我可以设置nginx根据某个URL来validation用户,并根据MAIL FROM字段允许或禁止某个用户吗? 如果我可以像最后一个例子一样接收请求(相同的链接): GET /auth HTTP/1.0 Host: localhost Auth-Method: none Auth-User: Auth-Pass: Auth-Protocol: smtp Auth-Login-Attempt: 1 Client-IP: 192.0.2.42 Client-Host: client.example.org Auth-SMTP-Helo: client.example.org Auth-SMTP-From: MAIL FROM: <> Auth-SMTP-To: RCPT TO: <[email protected]> 我可以从Web应用程序中做出正确的决定,只要authentication不是无时就可以使用。 但是,当身份validation(LOGIN或PLAIN)时,我不知道Auth-SMTP-From是否会被发送到auth_http 。 我在正确的轨道上? 可以这样做吗? 有另一种方法吗? 更好的方法?
目前,我们正在使用nginx作为我们主要的前端服务器,以Mesos-DNS为基础的dynamicDNS服务发现支持的一组服务。 我们的nginxconfiguration看起来有点像这样; http { resolver 10.10.1.1 valid=1s; // some internal DNS server } server { set $core_api core-api-service.marathon.mesos; // some internal DNS location /api { proxy_pass $core_api:8080; // resolve core_api DNS dynamically to one of the IP's of the slave the process is running + listening on } } 现在的问题是这个设置工作正常,但是4-5个请求中的一个总是导致Nginx丢回404,这是没有意义的,因为在集群内运行的服务没有移动到不同的从设备。 现在,parsing器valid=1s是相当积极的,所以我们把它延长到更长的时间,认为也许是太频繁地查询DNS。 但是,任何价值都会导致同样的问题。 删除valid=xx也没有帮助。 这里发生了什么? 我们如何减轻这一点? […]