标签: reverse-proxy

Nginx 反向代理配置

我需要 nginx 来反向代理以下形式的 GET 和 POST 请求:

/myapp/path/to/resource 
Run Code Online (Sandbox Code Playgroud)

到:

http://127.0.0.1:9090/path/to/resource
Run Code Online (Sandbox Code Playgroud)

我正在尝试以下操作:

location /myapp/(.*) {
  rewrite $1;
  proxy_pass http://127.0.0.1:9090;
}
Run Code Online (Sandbox Code Playgroud)

但 nginx 返回 HTTP 405 错误 [不允许]。

有想法该怎么解决这个吗 ?谢谢。

apache reverse-proxy nginx

3
推荐指数
1
解决办法
3133
查看次数

如何在apache中为mac os x上的play framework web app设置反向代理

我正在尝试将带有反向代理的apache前端添加到端口9000上的播放框架应用程序.我已根据播放文档尝试了以下httpd配置:http://www.playframework.org/documentation/2.0. 2/HttpServer的

<VirtualHost *:80>
  ProxyPreserveHost On
  ServerName http://localhost
  ProxyPass / http://127.0.0.1:9000/
  ProxyPassReverse / http://127.0.0.1:9000/
  LogLevel debug
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我只加载了mod_proxy模块,但已注释掉所有其他代理相关模块(http,ajp,jk等).

当我尝试点击时http://localhost,我在错误日志中得到以下内容:

[debug] mod_proxy_ajp.c(45): proxy: AJP: canonicalising URL //localhost:8009/
[debug] proxy_util.c(1506): [client ::1] proxy: ajp: found worker ajp://localhost:8009/ for ajp://localhost:8009/
[debug] mod_proxy.c(1015): Running scheme ajp handler (attempt 0)
[debug] mod_proxy_http.c(1963): proxy: HTTP: declining URL ajp://localhost:8009/
[debug] mod_proxy_ajp.c(672): proxy: AJP: serving URL ajp://localhost:8009/
[debug] proxy_util.c(1949): proxy: AJP: retrying the worker for (localhost)
[error] proxy: AJP: disabled connection for (localhost) …
Run Code Online (Sandbox Code Playgroud)

macos reverse-proxy apache2 playframework playframework-2.0

3
推荐指数
1
解决办法
8528
查看次数

Socket.io与apache

我在Node.js中没有很多经验,也没有在socket.io中,所以也许我会问一些愚蠢的问题并且对此抱歉.

我想做以下事情:

  1. 在ubuntu上安装了我也安装了apache的节点.
  2. 在apache中创建虚拟主机并将其设置为节点的代理.我的conf文件看起来像:

    <VirtualHost *:80>
        ServerAdmin giorgi@omedia.ge
        ServerName node.aidemo.info
        ServerAlias www.node.aidemo.info
    
        ProxyRequests off
        <Proxy *>
           Order deny,allow
           Allow from all
        </Proxy>
    
        <Location />
           ProxyPass http://127.0.0.1:8080
           ProxyPassReverse http://127.0.0.1:8080
        </Location>
    
    </VirtualHost>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 为服务器创建了简单的js文件(socket.io网站中的第一个服务器示例),并使用命令:node server.js从cli启动服务器.它开始完美,听8080

  4. 创建了另一个虚拟主机,我在其中放置了客户端index.html(也来自socket.io中的第一个示例).起初我有问题(实际上主要的问题是这个),浏览器无法解析路径/socket.io/socket.io.js.然后我从终端本地从lynx转到url(http:// localhost:8080/socket.io/socket.io.js),下载了js并在本地放置了index.html附近的virtualhost.在此之后,浏览器可以解析该请求,但是当socket.io.js本身试图获取url时我有错误:

    http://localhost:8080/socket.io/1/?t=1347623348836
    
    Run Code Online (Sandbox Code Playgroud)

您有什么想法我该如何解决这个问题?我的主要目标是拥有web url,我可以从中访问我的节点服务器并使用socket.io与它通信 - 例如创建非常简单的聊天.

我希望我很清楚.谢谢所有想要帮助的人.

apache reverse-proxy node.js socket.io

3
推荐指数
1
解决办法
3741
查看次数

特定路径和特定文件类型的 Nginx 位置块

我无法为某些路径和文件类型定义位置块。我正在使用 wordpress 并使用一个生成动态站点地图的插件。它重定向到像 sitemapindex.xml 这样的路径,它实际上并不存在,nginx 正试图静态地为它提供服务。

我需要能够将它传递给 apache

我需要将http://example.com/blog/ *.xml 的任何内容发送到 apache。这就是我正在尝试的,但不起作用..例如:

http://example.com/blog/post.xml or http://example.com/blog/sitemapindex.xml
Run Code Online (Sandbox Code Playgroud)

nginx 配置

server {

    location ~* ^/blog/*.xml$ {
        include /etc/nginx/proxy_params; 
        proxy_pass http://127.0.0.1:8080;
    }

}
Run Code Online (Sandbox Code Playgroud)

什么是正确的语法

谢谢

wordpress reverse-proxy nginx

3
推荐指数
2
解决办法
8118
查看次数

Nginx反向代理到另一个提供静态文件的Nginx服务器

我有一台Nginx服务器托管一个Web应用程序,当直接访问该应用程序时可以正常工作。其配置如下

server {
    listen 8000 default_server;

    listen [::]:8000 default_server ipv6only=on;

    root /data/www/ ;
    server_name server1.com;

    location / {
        try_files $uri $uri/ =404;
    }

    location /app/ {

    }   
}
Run Code Online (Sandbox Code Playgroud)

现在我必须从另一台Nginx服务器提供此应用程序,所以我设置了如下的反向代理

server {
    listen 80 default_server;

    listen [::]:80 default_server ipv6only=on;

    root /data/www/ ;
    server_name server2.com;

    location / {
        try_files $uri $uri/ =404;
    }

    location /app/ {
        proxy_pass http://server1.com:8000/app/;
    }
}   
Run Code Online (Sandbox Code Playgroud)

当我从server2访问该应用程序时,出现以下错误,例如当我访问http:server2.com/app/css/app.css时

[错误] 6601#0:* 1 open()“ /data/www/app/css/app.css”失败(2:没有此类文件或目录)

并且serv er1日志中没有错误。当我将它设置为反向代理到server1时,nginx为什么要在server2中寻找静态文件?

ProxyPass / app / http:server1:8000 / app /

ProxyPassReverse / app / http:server1:8000 / …

reverse-proxy nginx

3
推荐指数
1
解决办法
5051
查看次数

静态和非静态资源有什么区别?

我主要是一名前端开发人员/设计师,但最近,我一直在探索端到端的解决方案.昨天我使用平均堆栈完成了一个TODO应用程序,并希望开始探索我的VPS的部署选项.

话虽这么说,我被建议使用nginx作为反向代理用于提供静态资源?不幸的是,我陷入了简单的问题.

什么是静态资源示例?

什么因素定义静态资源?

什么是非静态资源的例子?

最后,我应该注意哪些奇怪的边缘情况?

对于这个问题的noobness抱歉.

javascript reverse-proxy nginx single-page-application mean-stack

3
推荐指数
2
解决办法
3746
查看次数

重定向到域的其他apache服务器但保持URL相同

希望这很容易做到 - 我只是想不出来!

如果我得到任何错误的术语,我会事先道歉.我对网络服务器的了解并不出色!

我在一个域中有两个apache服务器.一个是侦听端口80(我们可以称之为Apache1),另一个是端口10080(Apache2).

我想要实现的是当用户在浏览器的URL栏中输入某个域地址(比如www.domain.com)时,他们会从端口80上的默认服务器重定向到侦听端口10088的服务器.

我使用Apache 1服务器的Apache httpd.conf文件中的Redirect关键字实现了这一点,如下所示:

<VirtualHost *:80>
ServerName www.domain.com
Redirect / http://www.domain.com:10088/exampleApp
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

虽然这很有效,但遗憾的是它会将浏览器中的URL更改为www.domain.com:10088/exampleApp,我需要将其显示给用户输入的域名 - www.domain.com

我已经尝试过使用ProxyPass和ReverseProxyPass,但我可以让它工作.我不知道是否可以使用URL重写来实现解决方案.

在此先感谢您的帮助

apache proxy redirect reverse-proxy ports

3
推荐指数
1
解决办法
4953
查看次数

Zuul反向代理语言理解

我和Zuul一起玩,但似乎有些根本我不明白.

根据文档(http://cloud.spring.io/spring-cloud-netflix/spring-cloud-netflix.html),以下Zuul配置应该导致所有对"/ myusers"的http调用转发给"用户" "服务.

zuul:
  routes:
      users: /myusers/**
Run Code Online (Sandbox Code Playgroud)

我有类似的情况,但它根本不起作用.我的配置是:

zuul:
   route:
       stores: /california/**
Run Code Online (Sandbox Code Playgroud)

服务Id是"商店",它有一个名为"/ hello"的URL.当我点击:

 http://localhost:8765/california/hello, 
Run Code Online (Sandbox Code Playgroud)

我收到Spring Boot 404错误消息.但是,如果我用商店替换california,那么事情会很好,导致以下配置:

zuul:
   route:
       stores: /stores/**
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如果我打电话

 http://localhost:8765/stores/hello, 
Run Code Online (Sandbox Code Playgroud)

事情很好.因此,看起来URL的前缀必须与服务的ID匹配.这是预期的行为吗?我错过了什么?

我正在使用Zuul 1.0.0.BUILD-SNAPSHOT.在aisde note上,我注意到发现客户端现在已经内置到Zuul中了.如果我不想运行Eureka,有没有办法禁用它?

reverse-proxy netflix spring-cloud netflix-zuul

3
推荐指数
1
解决办法
3725
查看次数

在Web应用程序中将Web服务器与Nginx服务器一起使用

抱歉,我无法从Google搜索中找到此答案,而且似乎没有人可以清楚地解释纯Go Web服务器和nginx反向代理之间的区别。似乎每个人都在Web应用程序前面使用nginx。

我的问题是,尽管Go具有所有http服务功能,但与纯Go Web服务器相比,使用nginx有什么好处?

在大多数情况下,我们在此处为所有路由设置Go Web服务器,并在前面设置了nginx配置。

就像是:

limit_req_zone $binary_remote_addr zone=limit:10m rate=2r/s;

server {
    listen 80;

    log_format lf '[$time_local] $remote_addr ;

    access_log /var/log/nginx/access.log lf;
    error_log /var/log/nginx/error.log;

    set_real_ip_from 0.0.0.0/0;
    real_ip_header X-Forwarded-For;
    real_ip_recursive on;
    server_name 1.2.3.4 mywebsite.com;
}
Run Code Online (Sandbox Code Playgroud)

当我们有这个Go:

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hi there, I love %s!", r.URL.Path[1:])
}

func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}
Run Code Online (Sandbox Code Playgroud)

Nginx和Go Web服务器的流量是否不同?如果没有,为什么我们有两层Web服务器?

请帮助我理解这一点。

谢谢,

proxy reverse-proxy http nginx go

3
推荐指数
1
解决办法
1145
查看次数

反向代理后面的HTTP/2

到目前为止,所有教程都告诉我,我需要在我的服务器上启用SSL以获得HTTP/2支持.

在给定的场景中,我们在后端Tomcat/Jetty服务器前面有nginx,尽管性能方面值得在后端启用HTTP/2,但在那里使用HTTPS的要求似乎也是一种过度杀伤力.

安全性不需要HTTPS(仅暴露nginx),从操作角度来看有点麻烦 - 我们必须将证书添加到运行后端服务器的每个Docker容器中.

是不是有办法提供HTTP/2支持(或至少类似的性能),并且设置较少涉及?

reverse-proxy nginx http2

3
推荐指数
2
解决办法
4803
查看次数