我需要 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前端添加到端口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) 我在Node.js中没有很多经验,也没有在socket.io中,所以也许我会问一些愚蠢的问题并且对此抱歉.
我想做以下事情:
在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)为服务器创建了简单的js文件(socket.io网站中的第一个服务器示例),并使用命令:node server.js从cli启动服务器.它开始完美,听8080
创建了另一个虚拟主机,我在其中放置了客户端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与它通信 - 例如创建非常简单的聊天.
我希望我很清楚.谢谢所有想要帮助的人.
我无法为某些路径和文件类型定义位置块。我正在使用 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)
什么是正确的语法
谢谢
我有一台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 / …
我主要是一名前端开发人员/设计师,但最近,我一直在探索端到端的解决方案.昨天我使用平均堆栈完成了一个TODO应用程序,并希望开始探索我的VPS的部署选项.
话虽这么说,我被建议使用nginx作为反向代理用于提供静态资源?不幸的是,我陷入了简单的问题.
什么是静态资源示例?
什么因素定义静态资源?
什么是非静态资源的例子?
最后,我应该注意哪些奇怪的边缘情况?
对于这个问题的noobness抱歉.
javascript reverse-proxy nginx single-page-application mean-stack
希望这很容易做到 - 我只是想不出来!
如果我得到任何错误的术语,我会事先道歉.我对网络服务器的了解并不出色!
我在一个域中有两个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重写来实现解决方案.
在此先感谢您的帮助
我和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,有没有办法禁用它?
抱歉,我无法从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服务器?
请帮助我理解这一点。
谢谢,
到目前为止,所有教程都告诉我,我需要在我的服务器上启用SSL以获得HTTP/2支持.
在给定的场景中,我们在后端Tomcat/Jetty服务器前面有nginx,尽管性能方面值得在后端启用HTTP/2,但在那里使用HTTPS的要求似乎也是一种过度杀伤力.
安全性不需要HTTPS(仅暴露nginx),从操作角度来看有点麻烦 - 我们必须将证书添加到运行后端服务器的每个Docker容器中.
是不是有办法提供HTTP/2支持(或至少类似的性能),并且设置较少涉及?
reverse-proxy ×10
nginx ×6
apache ×3
proxy ×2
apache2 ×1
go ×1
http ×1
http2 ×1
javascript ×1
macos ×1
mean-stack ×1
netflix ×1
netflix-zuul ×1
node.js ×1
ports ×1
redirect ×1
socket.io ×1
spring-cloud ×1
wordpress ×1