我在http://answers.yahoo.com/question/index?qid=20081127175551AAQvL01上看到一篇文章,但我不确定在使用 HideMyAss 等服务时 VPN 是如何运行的,是否有区别?
我们使用的服务的 API 将拒绝请求,除非源 IP 先前已被列入白名单。他们只给了我们 3 个插槽,这是一个问题,因为我们有超过 3 台机器需要使用 API。
解决此问题的最常用技术是什么?
注意:我不想做任何违反 3rd-party API 的条款和条件的事情。我们正在使用ResellerClub,我联系他们要求更多插槽,但他们回答说:
我请求您将您的服务器路由到几组 IP。
因此这个问题。
想法:
我们的架构:我们使用 AWS 并在 ELB 后面运行的 VPC 中放置我们的实例。我们经常在事先不知道 IP 地址的情况下启动新实例。我们在所有机器上运行相同的软件。这些机器运行 CoreOS,我们的应用程序在 Docker 容器中运行。
我正在运行一个名为 KOHA 的图书馆管理软件。每周一次或两次,服务器返回“503 服务不可用”。我可以访问主页,但是当我搜索一本书时,我得到了503。同样,员工可以登录员工页面,但是当他们登录后做一些事情时,他们得到同样的错误。我在我的 apache 日志中得到这些:
[Sun Sep 04 14:22:30.246305 2016] [proxy:error] [pid 27422] (2)No such file or directory: AH02454: HTTP: attempt to connect to Unix domain socket /var/run/koha/nitc/plack.sock (localhost) failed
[Sun Sep 04 14:22:30.246380 2016] [proxy:error] [pid 27422] AH00959: ap_proxy_connect_backend disabling worker for (localhost) for 60s
[Sun Sep 04 14:22:30.246394 2016] [proxy_http:error] [pid 27422] [client 192.168.65.199:56448] AH01114: HTTP: failed to make connection to backend: httpd-UDS, referer: http://192.168.20.17:8080/index.html
Run Code Online (Sandbox Code Playgroud)
希望有人能对此有所了解。
我已经为域配置了 nginx 反向代理。但是,当我测试使用时curl,它显示缓存 MISS。
curl -I http://www.mixtapemadness.com
HTTP/1.1 200 OK
Access-Control-Allow-Origin: *
Cache-Control: max-age=0, no-cache, no-store, must-revalidate
Content-Type: text/html; charset=UTF-8
Date: Wed, 23 Nov 2016 13:58:23 GMT
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Pragma: no-cache
Server: nginx/1.8.1
Set-Cookie: ci_session=2fb702c0f6a7528e1198db89b1df85142ee1bfad;
expires=Wed, 23-Nov-2016 15:58:21 GMT; Max-Age=7200; path=/; HttpOnly
Vary: Accept-Encoding
X-Proxy-Cache: MISS
Connection: keep-alive
Run Code Online (Sandbox Code Playgroud)
我的nginx.conf:
user nginx;
worker_processes 8;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
log_format rt_cache '$remote_addr - $upstream_cache_status [$time_local]
'"$request" …Run Code Online (Sandbox Code Playgroud) 我想知道是否可以将 Nginx 配置为向给定的微服务动态发送请求(无需 SSL 终止)?
在我的架构中,我有两个微服务。让我们假设它们是 localhost:5000 和 localhost:5100。我想发送所有/api以 localhost:5000 和/serviceslocalhost:5100开头的请求(来自 Nginx 代理)。我已经在两个微服务上配置了 SSL,所以我不需要在 Nginx 上终止 SSL。
这可能吗?
我有这样的网络拓扑:
Laptop -> Bastion -> Destination
Run Code Online (Sandbox Code Playgroud)
Bastion 和 Destination 是 EC2 实例,使用相同的 SSH 密钥进行 SSH 访问。但是,无法从 Internet 访问 Destination。其 IP 地址仅对堡垒可见。
我能够连接到堡垒并使用代理转发来传递 SSH 密钥,然后从堡垒单独连接到目标服务器。但是,我想以.ssh/config这样一种方式配置我的文件,以便我可以使用笔记本电脑上的一个命令通过 SSH 连接到目标服务器。我当前的.ssh/config文件如下所示:
Host Bastion
Hostname <redacted>
IdentityFile ~/.ssh/mykey.pem
Host Destination
Hostname <redacted>
User ubuntu
ProxyCommand ssh -A bastion-dev -W %h:%p
Run Code Online (Sandbox Code Playgroud)
但是当我跑
ssh -A ubuntu@Destination
Run Code Online (Sandbox Code Playgroud)
SSH 响应:
Permission denied (publickey).
ssh_exchange_identification: Connection closed by remote host
Run Code Online (Sandbox Code Playgroud)
如何正确地将 SSH 密钥从我的本地传递到堡垒服务器,而不必将其存储在服务器上?我可以通过.ssh/config文件配置所有这些,以便我可以使用单个命令登录目标服务器吗?
我已经根据我在apache 2.2 手册中阅读的内容相应地配置了我的 apache 。下面以我的配置为例。
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass "/home/kwokfu/sandbox" "http://localhost:8080/sandbox"
ProxyPassReverse "/home/kwokfu/sandbox" "http://localhost:8080/sandbox"
Run Code Online (Sandbox Code Playgroud)
每次我访问http://localhost:8080/sandbox服务器时,仍然指向我的本地主机的默认文档根目录,而不是我在代理配置中声明的目录。
我不知道我在这里做错了什么,非常感谢任何帮助!
供您参考,我编译我的代理模块如下:
$ apxs -cia mod_proxy.c proxy_util.c
$ apxs -cia mod_proxy_http.c
$ apachectl -M
...
proxy_module (shared)
proxy_http_module (shared)
...
Run Code Online (Sandbox Code Playgroud)
每次访问时都会收到以下日志消息http://localhost:8080/sandbox:
"GET /sandbox HTTP/1.1" 404 206 "-" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.13) Gecko/2009080315 Ubuntu/9.04 (jaunty) Firefox/3.0.13"
...
[debug] proxy_util.c(1806): proxy: grabbed scoreboard slot 0 in child 11225 for worker http://localhost:8080/sandbox …Run Code Online (Sandbox Code Playgroud) 是否可以为 HTTP 服务器提供 HTTPS 前端?
让我详细说明一下。假设我有一个在 tomcat 实例上运行的应用程序,这个应用程序只理解 HTTP。是否可以让 Apache 坐在 tomcat 应用程序前面并代理请求,如下所示:
http://example.com/proxied_app http://localhost:8080
+----------+ +----------+
| | | |
| | | |
Internet <----HTTPS--->| APACHE |<---------HTTP--------->| TOMCAT |
| | | |
| | | |
+----------+ +----------+
Run Code Online (Sandbox Code Playgroud) 我将如何设置我的网络服务器以下面描述的方式工作?
Http 请求:mypublic.com ---> nginx 正常处理,因为它已经设置好了 ( listen 80;)
Http 请求:myprivate.com ---> 由 apache 处理,设置为在 8080 ( listen 8080) 上工作
我想避免在浏览器中输入地址时包含端口,在 nginx 中使用某种模型(代理?/squid?)。两个域都指向我的机器并按命名设置。
我们在 RHEL 服务器上运行 Squid。我们希望阻止用户访问 Facebook,而不是几个特定站点,例如我们组织的页面。不幸的是,如果不让所有 Facebook 都通过,我就无法解锁这些特定页面。
# Local users:
acl local_c src 192.168.0.0/16
# HTTP & HTTPS:
acl Safe_ports port 80 443
# File containing blocked sites, including Facebook:
acl blocked dst_dom_regex "/etc/squid/blocked_content"
# Whitelist:
acl whitelist url_regex "/etc/squid/whitelist"
# I do know that order matters:
http_access allow local_c whitelist
http_access allow local_c !blocked
http_access deny all
Run Code Online (Sandbox Code Playgroud)
.porn_site.com
.porn_site_2.com
[...]
facebook.com
Run Code Online (Sandbox Code Playgroud)
facebook.com/pages/Our-Organization/2828242522
facebook.com/OurOrganization
facebook.com/media/set/
facebook.com/photo.php
www.facebook.com/OurOrganization
Run Code Online (Sandbox Code Playgroud)
我最大的弱点是正则表达式,所以我不能 100% 确定这是否全部正确。如果我删除 http_access 规则的“!blocked”部分,所有 Facebook 都可以正常工作。如果我从blocked_content 文件中删除“facebook.com”,则所有Facebook 都可以正常工作。
现在,访问 …