在一个小团队(最多30人)的服务器上,我安装了几个可以从浏览器访问的服务。 我想用nginx,因为我认为它更轻量级。 所有的服务/应用程序都是独立testing,并完成他们的工作。 但是当把它们放在一起被子文件夹(比如teamserver.local / service1,或者teamserver.local / service2)分开的时候,在重写规则和代理传递的时候,我感到非常挣扎。 我只是不能让子文件夹configuration工作。 这是我的默认configuration: server { listen 80; server_name teamserver.local; rewrite ^ https://$http_host$request_uri? permanent; # redirect to https! } server { listen 443; server_name teamserver.local; root /var/www; ssl on; ssl_certificate /etc/nginx/ssl/server.crt; ssl_certificate_key /etc/nginx/ssl/server.key; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; location /service1 { […]
我正在得到我的正则expression式的麻烦,不知道它是什么问题。 它是用orls/f而不是orls/f?p=4550来返回一个URi。 当我通过https://secure.toto02.com/orls/myservice/f?p=4550 我的conf文件在下面 location ~ "^/([a-zA-Z]+)/myservice/(.+)$" { error_log /var/log/nginx/error-server.log notice; rewrite_log on; #proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://192.168.3.45:8080/orls/$2; proxy_redirect http://192.168.3.45:8080/orls/ https://secure.toto02.com/$1/myservice/ ; } 谁能帮忙?
我试图在Ubuntu 14.04上通过Apache 2设置代理。 我有两个代理我想要使用。 一个是在本地运行的Ruby瘦服务器。 另一个是电话统计页面。 我已经configuration了一个conf文件,内容如下: <VirtualHost *:80> Redirect permanent / <ssl_site> </VirtualHost> <VirtualHost _default_:443> –snip certificate info– –snip contact info– LogLevel debug –snip log info– ProxyRequests Off ProxyPreserveHost On <Proxy *> Order Allow,Deny Allow from all </Proxy> SSLProxyEngine On <Location /> ProxyPass <Ruby thin server> ProxyPassReverse <Ruby thin server> </Location> <Location /phonestats/> RequestHeader […]
我试图在同一台机器上运行nginx作为Apache的反向代理,并从中提供不同的网站。 我的问题是 – 是否可以添加虚拟主机只有nginx,并根据请求主机自动传递到Apache /主机名/path等到Apache。 或者我需要为nginx和Apache中的每个站点(域)设置一个虚拟主机? 另外,这个设置是否有任何潜在的问题? 我计划在我的nginxconfiguration中有这样的每个域(Apache运行在端口8080): server { listen 80; root /var/www/site1.com/; server_name site1.com; location / { try_files $uri $uri/ /index.php; } location ~ \.php$ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $host; proxy_pass http://127.0.0.1:8080; } } 谢谢!
我们在Amazon AWS的S3存储桶中托pipe了一些xml文件。 Web服务器由Nginx提供支持。 对于一个匹配'/super-shots.xml'的特定URL,Nginx必须通过S3位置进行代理传递: http ://mybucket.s3.amazonaws.com/depth0/depth1/depth2/sitemap.xml 我想要的是这个(Nginxconfiguration): location ~* /super-shots.xml { proxy_pass http://mybucket.s3.amazonaws.com/depth0/depth1/depth2/sitemap.xml; } 结果是一个错误: nginx:[emerg]“proxy_pass”不能在正则expression式给出的位置,或者指定位置内,或者if语句内,或者在“limit_except”块内 如果我不做正则expression式匹配(〜* |〜),则没有语法错误,但是页面返回404.请注意,文件在系统path上不存在。 我曾尝试寻找解决scheme,但大多数处理path作为匹配。 我如何解决这个问题? 现在,我已经完成了一个基于path的代理通行证(在下面给出)。 但是,我想要与URL匹配。 #Nginx Config: location /super-shots { proxy_pass http://mybucket.s3.amazonaws.com/depth0/depth1/depth2/sitemap.xml; } # On file system : Empty directory mkdir $docroot/depth0/depth1/depth2/ nginx -s reload 更新1:基于Alexey Ten的评论。 Nginxconfiguration示例可以在这里find
我有一个简单的nginx 1.4.6代理在专用的Ubuntu 14服务器上运行。 我的configuration如下所示: server { listen 80; listen 443 ssl; listen [::]:80; listen [::]:443 ssl; server_name impequid.dodekeract.report; ssl_certificate /etc/letsencrypt/live/impequid.dodekeract.report/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/impequid.dodekeract.report/privkey.pem; location / { proxy_pass http://127.0.0.1:44400; proxy_set_header Host $host;proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } 当我试图达到这个文件,它发送一小部分后超时。 它总是停在同一条线上。 后端运行一个Node.js / Koa服务器,该文件可以直接加载,没有任何问题。 当通过nginx加载时,Koa在尝试写入时报告了一个坏的pipe道错误,因为问题只发生在nginx上,我不认为这是Koa的错。 任何想法我做错了什么?
我在我的lan服务器上configuration了apache2 web服务器,现在我正在configuration虚拟主机。 我的目标是在URL中replace本地IP地址的Apache主机IP。 例如 : 我在172.30.17.102上安装了apache web服务器,当我调用url http://172.30.17.102/Proxy1/paramater/list ,应该去http://1.224.0.30:8080/dashboard/paramater/list 。 我在虚拟主机设置下面的configuration尝试… ProxyPass /Proxy1/^ http://1.224.0.30:8080/dashboard/$ ProxyPassReverse /Proxy1/^ http://1.224.0.30:8080/dashboard/$ 我是新的Apache Web服务器。 请帮我find我做错了什么?
我有一个服务器运行在本地主机:3030,我可以访问一些网页。 当我在localhost:3030/index.html上做一个wget时,我获得了网页。 使用ProxyPassMatch,我试图将example.com/sparql/<something>上的请求redirect到locahost:3030/<something>但它不起作用。 我使用的是debian,configuration如下: <VirtualHost *:80> ServerName example.com ProxyPass "/sparql" "http://localhost:3030/" ProxyPassReverse "/sparql" "http://localhost:3030/" ProxyPassReverseCookieDomain "localhost" "example.com" …. <VirtualHost *:80> 当我通过example.com/sparql/index.html发送请求时,页面正在返回,但是没有任何图像和css文件正在返回。 configuration有问题吗?
我有一个运行Apache的开放服务器和一个运行Apache的封闭服务器,这个服务器位于防火墙之后并运行一个VPN。 我试图从一个子域转发请求到使用打开的服务器的封闭的服务器。 subdomain.request.com -> open server -> closest server 我的理解是,这可以通过使用Apache的mod代理来实现,但是我很难设置它。 我能够请求主页但所有其他页面产生DNS lookup failure错误。 虚拟主机 <VirtualHost *:80> ServerName subdomain.request.com ProxyPass / http://10.0.0.54:8080 ProxyPassReverse / http://10.0.0.54:8080 ProxyPassMatch ^/(.*)$ http://10.0.0.54:8080/$1i </VirtualHost>
在我的/etc/hosts文件中,我添加了一个别名到localhost,像这样: 127.0.0.1 example.local 我的WordPress的服务器端口8000托pipe,所以我使用proxy_pass : server{ listen 80; server_name example.local; root /Users/akashagarwal/Downloads/wordpress; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; } } 我面临两个问题。 1.在浏览器中打开http://example.local后,地址栏会附加:8000 。 2.点击链接后,主机名变为localhost:8000 。 我在这里做错了什么? 在macOS Sierra 10.12.1上运行nginx version: nginx/1.10.3 。 TIA