- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用此配置设置 nginx。要访问 backend.mygreat.server.com,我必须通过我的公司代理,即 myproxy.server.com:80。
因此,我在/etc/environment 中添加了它
https_proxy=myproxy.server.com:80
server {
listen 443;
server_name mygreat.server.com;
ssl on;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:EDH+aRSA:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!SEED:!DSS:!CAMELLIA;
ssl_certificate /etc/nginx/ssl/mygreat.server.com.pem;
ssl_certificate_key /etc/nginx/ssl/mygreat.server.com.key;
access_log /var/log/nginx/access.ssl.log;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host-Real-IP $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Pcol http;
proxy_intercept_errors on;
error_page 301 302 307 = @handle_redirects;
proxy_pass https://backend.mygreat.server.com:443;
}
location @handle_redirects {
set $saved_redirect_location '$upstream_http_location';
proxy_pass $saved_redirect_location;
}
}
2017/10/18 06:55:51 [warn] 34604#34604: *1 upstream server temporarily disabled while connecting to upstream, client: <ip-address>, server: mygreat.server.com, request: "GET / HTTP/1.1", upstream: "https://<ip-of-backend>:443/", host: "mygreat.server.com"
curl -v https://backend.mygreat.server.com/
以下是回复
* About to connect() to proxy corp-proxy.server.com port 80 (#0)
* Trying <some-ip-address>...
* Connected to corp-proxy.server.com (<ip-of-proxy>) port 80 (#0)
* Establish HTTP proxy tunnel to backend.mygreat.server.com:443
> CONNECT backend.mygreat.server.com:443 HTTP/1.1
> Host: backend.mygreat.server.com:443
> User-Agent: curl/7.29.0
> Proxy-Connection: Keep-Alive
>
< HTTP/1.1 200 Connection established
<
* Proxy replied OK to CONNECT request
* Initializing NSS with certpath: sql:/etc/pki/nssdb
* CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
* SSL connection using TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
* Server certificate:
* subject: CN=backend.mygreat.server.com,OU=Technology Operations,O=MyCompany.,L=San Diego,ST=California,C=US
* start date: Mar 15 00:00:00 2017 GMT
* expire date: Mar 15 23:59:59 2020 GMT
* common name: backend.mygreat.server.com
* issuer: CN=Symantec Class 3 Secure Server CA - G4,OU=Symantec Trust Network,O=Symantec Corporation,C=US
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: backend.mygreat.server.com
> Accept: */*
>
< HTTP/1.1 200 OK
< Server: openresty/1.11.2.5
< Date: Wed, 18 Oct 2017 14:03:10 GMT
< Content-Type: text/html;charset=UTF-8
< Content-Length: 5642
< Connection: keep-alive
< X-XSS-Protection: 1; mode=block
< Cache-Control: max-age=0, no-cache, no-store, must-revalidate, private
< Expires: 0
< P3P: policyref="http://backend.mygreat.server.com/w3c/p3p.xml" CP="CURa OUR STP UNI INT"
< Content-Language: en
< Set-Cookie: qboeuid=127.0.0.1.1508335390550307; path=/; expires=Thu, 18-Oct-18 14:03:10 GMT; domain=.server.com
< Set-Cookie: JSESSIONID=784529AA39C10C3DB4B0ED0D61CC8F31.c23-pe2ec23uw2apu012031; Path=/; Secure; HttpOnly
< Set-Cookie: something.blah_blah=testme; Domain=.server.com; Path=/; Secure
< Vary: Accept-Encoding
<
<!DOCTYPE html>
<html>
....
</html>
最佳答案
所以首先我不确定 Nginx 是否应该尊重 http_proxy
和 https_proxy
变量。我没有找到任何相同的文档。所以我认为您的问题与 nginx 根本不使用代理有关
所以现在你可以选择使用实际使用代理的东西。这就是socat
来救援。
运行 socat 转发器
如果您有透明代理,则运行
socat TCP4-LISTEN:8443,reuseaddr,fork TCP:<proxysever>:<proxyport>
socat TCP4-LISTEN:8443,reuseaddr,fork PROXY:yourproxy:backendserver:443,proxyport=<yourproxyport>
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host-Real-IP $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-Pcol http;
proxy_intercept_errors on;
proxy_set_header Host backend.mygreat.server.com;
proxy_pass https://127.0.0.1:8443;
proxy_redirect https://backend.mygreat.server.com https://mygreat.server.com;
}
关于nginx proxy_pass over https_proxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46803431/
所以我目前在 http://www.example.com 有一个网站我希望来自的所有请求 http://www.example.com/api/v2/ 被代理到 http://api.v2.com/
我有一个服务在低端机器上运行(在 Nginx 之后)并且 CPU 性能相当弱。其中一个 API 需要大量的 CPU 时间,因此需要限制最大并发请求数。但是如果请求被缓存,它可以更快地响应。 我想做的是
我的 Nginx 配置类似于: server { listen 80; listen 443; server_name api.mysite.dev; location
如何设置 nginx 将单个文件夹反向代理到一台服务器,并将根目录的其余部分反向代理到另一台服务器? 根“/”由CMS管理,而“其他”是我自己的程序(独立于CMS)。 这是我目前的配置 server
我正在尝试使用此配置设置 nginx。要访问 backend.mygreat.server.com,我必须通过我的公司代理,即 myproxy.server.com:80。 因此,我在/etc/env
当 proxy_pass 设置为变量时,Nginx 似乎无法支持重定向。有没有办法实现这个功能,例如以某种方式链接服务器或其他解决方法?不支持的原因是什么? .conf 是: proxy_pass $
我正在尝试在 nginx 中使用 proxy_pass 将请求转发到本地主机上的另一个端口,如下所示: location /foo { rewrite ^/foo/(.*) /$1 break
我有一个网站叫 http://example.com ,运行的应用程序可以通过 http://example.com/app1 访问. app1 位于 nginx 反向代理后面,如下所示: locat
下面是一个非常标准的 nginx proxy_pass 设置: server { listen 80; server_name ireport.jungdigital.com; acces
当 nginx proxy_pass 是一个动态值,预计通过替换 URL 中的主机名部分来构建时,nginx 无法代理请求并出现错误:没有定义解析器来解析服务,其中服务=1 美元。它似乎只是尝试解析服
我的 nginx 配置有问题。 当我这样设置配置时: server { server_name redmine; listen 80;
我有以下设置 主服务器 - 称之为 https://master.com 从属服务器 - 称之为 https://slave.com 两者都在 Ubuntu 16.04 上运行 Nginx 在主服务器
我在 Doccker 容器中使用 Nginx 来托管我的应用程序 我正在尝试将 Nginx 配置为将到/.well-known/目录的流量代理到另一个处理 letsencrypt 过程以设置和更新 S
我开发了一个 URL 缩短 Web 应用程序。 它由两个独立的 docker 容器组成:一个包含后端 REST api,另一个包含前端静态网站。 这两个容器链接到一个 nginx 容器。 这个 ngi
我有一个从外部地址接收请求的服务,例如https://example.com ,以及一个内部地址,例如本地主机:8080。 我必须使所有针对此服务的请求看起来好像它们将被定向到相同的主机名。 我最初的
我正在尝试通过代理传递在 nginx 中执行 auth_request,但我不断收到: 1 auth request unexpected status: 301 这是我的配置: server {
我有两台服务器: NGINX(它将文件 ID 交换为文件路径) Golang(它接受文件 ID 并返回它的路径) 例如:当浏览器客户端向 https://example.com/file?id=123
http://mydomain.com/ => 127.0.0.1:4567 但 http://mydomain.com/FOO => 127.0.0.1:3000 那可能吗? 到目前为止,我有: u
我想将请求传递给上游服务器。原始 url 不受密码保护,但上游服务器受密码保护。我需要在请求中注入(inject)一个基本身份验证用户名/密码,但在执行时会出错: upstream supportba
我遇到了以下问题,我希望能够从带有尾部斜杠的主网站访问代理传递的位置(托管 docker 容器中的 React/NextJs webApp)和 没有尾部斜杠。 目前,当我点击: http://my-w
我是一名优秀的程序员,十分优秀!