我们有一个用Apache运行的网站。 最近该网站已经看到增加的负载,并作为一个停止的差距,我们要把网站上的所有静态内容转移到无cookie的域名,例如http://static.thedomain.com 。 该应用程序不是很好理解。 所以为了让开发者有时间去修改代码,把它们的链接指向静态内容服务器( http://static.thedomain.com ),我想通过nginx代理这个站点,并且重写这个即将到来的响应,以便到/images/…被重写为http://static.thedomain.com/images/… 例如,在Apache对nginx的响应中,有一些Headers + HTML。 在从Apache返回的HTML中,我们有<img>标签,它们看起来像: <img src="/images/someimage.png" /> 我想将其转换为: <img src="http://static.thedomain.com/images/someimage.png" /> 以便接收到HTML页面的浏览器直接从静态内容服务器请求图像。 这可能与nginx(或HAProxy)? 我对文档进行了粗略的浏览,但除了重写入站url之外,没有任何东西跳出来。
我有以下设置 – node-http-proxy充当反向代理,根据需要将所有请求转发到nginx / socket.io 我的问题是这样的当我从浏览器发送一个HTTP DELETE请求时,node-http-proxy添加一个头“Transfer Encoding Chunked”作为来自浏览器的请求没有内容长度。 来自浏览器的请求没有内容长度,因为它没有内容。 Nginx不喜欢传输编码分块头并且抛出一个411请求内容长度。 当我发送虚拟数据作为DELETE请求的一部分时,问题就解决了,所以有一个Content Length和node-http-proxy不会添加Transfer Encoding的块头,而nginx很高兴。 我想了解node-http-proxy是否按预期工作,因为它没有Content Body,因此在Content Length丢失时添加了Transfer Encoding Chunked标头。 编辑 – 更多信息: 当我尝试删除node-http-proxy并直接发送请求到nginx时,nginx很高兴。 请注意,浏览器不会设置内容长度(正文为正文)或传输编码分块
Iam用ngnix服务我的静态内容。 位置/静态{ 别名/ opt / static / blog /; access_logclosures; etags on; etag_hash在; etag_hash_method md5; 到期1d; add_header Pragma“public”; add_header Cache-Control“public,must-revalidate,proxy-revalidate”; } 结果标题看起来像这样: caching控制:公共,必须重新validation,代理重新validation caching控制:最大年龄= 86400 连接:closures 内容编码:gzip 内容types:应用程序/ x-的JavaScript; 字符集= utf-8的 date:2012年9月11日星期二08:39:05 GMT ETAG:e2266fb151337fc1996218fafcf3bcee 有效期至:2012年9月12日星期三08:39:05 GMT Last-Modified:Tue,11 Sep 2012 06:22:41 GMT 附注:公 服务器:nginx / 1.2.2 传输编码:分块 有所不同:接受编码 为什么nginx发送2个Cache-Control条目,这可能是客户端的问题吗?
我刚刚开始使用NGINX,并且在几个人们使用的configuration示例中已经看到 proxy_pass_header Server; 当代理到上游服务器的请求? 这到底是什么呢? 什么是可能的用例?
我试图在Windows 7机器上使用Nginx(1.2.3)设置SSL(0.9.8e)。 我已经生成了一个需要的自签名证书,所以我有一个密钥和一个证书文件。 当试图启动Nginx时,它失败了,我在日志文件中得到的错误信息是“共享区域”SSL“没有相等的地址”。 在我尝试引入SSL之前,它正在工作。 任何想法我做错了什么? 在我看来,网站只能在本地networking上访问,无论是否有所作为,我也远程访问networking服务器。 这里是我的configuration文件关于ssl的一部分: worker_processes 1; events { worker_connections 1024; } http { ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 443 ssl; server_name www.mydomain.com; ssl_certificate /nginx-1.2.3/ssl/server.crt; ssl_certificate_key /nginx-1.2.3/ssl/server.key; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!MD5; } } 谢谢
这是我目前的nginx conf: server { listen 90; server_name www.domain.com www.domain2.com; root /root/app; location / { try_files $uri =404; } location ~ /([-\w]+)/(\w+)/ { proxy_pass bla bla } } 它工作正常, www.domain.com和www.domain2.com服务相同的内容。 现在我想补充一点 如果用户访问www.domain.com,用户代理是xxx,则redirect到www.domain2.com 我search了很多方法,但都没有成功。
我有我的Nginx设置的三个要求: 将所有请求转发到运行在端口9001上的Java服务器 拦截所有的静态文件URL并通过Nginx自己提供。 从包含PHP脚本的文件夹中提供特定的基本URL。 其中,我能够实现前两个,但是当我通过我的Web浏览器访问http://localhost/ecwid_fu_scripts/ ,请求被在端口9001上运行的Java服务器拦截,并且不会被路由到/home/ankush/ecwid_fu_scripts/的index.php 。 这是我的Nginxconfiguration: server { listen 80 default_server; listen [::]:80 default_server; server_name _; location /assets/images/ { root /home/ankush/fu_main_files/; autoindex off; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 100; } location /ecwid_fu_scripts/ { index index.php; root /home/ankush/ecwid_fu_scripts/; try_files $uri $uri/ /index.php?q=$uri&$args; } location / { proxy_pass http://localhost:9001; } location ~ \.php$ […]
我可以为nginx中的访问日志指定自定义日志格式,但是它不能用于错误日志。 我希望当错误发生的时候我总是看到时间。 可能吗?
我现在正在尝试将nginx设置为Hudson的反向代理,以便可以访问 http://build.example.com 直。 我已经在Tomcat上安装了Hudson,并validation了我可以访问Hudson http://127.0.0.1:8080/hudson 在http://build.example.com/hudson上访问hudson是非常简单的。 但是,当我试图设置代理重新映射/ hudson目录,事情开始出错。 没有正在加载的CSS或图像文件。 快速查看nginx访问日志告诉我,正在对/ hudson或/ hudson / static资源进行大量请求。 这些请求没有正确转发(或重写)到Tomcat。 但是经过几个小时的挖掘,我对如何解决这个简单的问题感到迷茫。 我正在使用的nginx设置看起来像 server { listen 80; server_name build.example.com; location / { proxy_pass http://127.0.0.1:8080/hudson; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 有人可以解释一下吗? 安装起来非常简单,但我似乎无法在networking上的任何地方find解决scheme。 更新 对所有花时间回答这个问题的人表示衷心的感谢。 在尝试了各种解决scheme之后,我认为处理这个特定问题最直接的方法是要么… A)保持独立如@VonCbuild议,让它留在一个子目录。 这是直截了当的,我们可以肯定,没有什么会打破。 要么… B)将应用程序部署到tomcat webapp目录的根目录如果你想用tomcat安装多个webapps,这可能不是最好的做法。 但是pipe理员可能想要设置一个单独的tomcat安装,只是为了运行Hudson / Jenkins。 Tomcat不能像不同的用户一样运行不同的托pipe应用程序,任何为CI设置Hudson / Jenkins的人都可能希望以特定的用户身份运行它(例如“构build”)。 […]
Nginx的wiki非常含糊,解释如何正确设置nginx的php-fpm与fastcgi_caching的网站有cookies即wordpress,drupal,vbulletin等。 我从http://vbtechsupport.com/796/下载了一个名为centmin的修改后的nginx bash shell安装脚本,同时安装了nginx v1.0.2,php 5.3.6 php-fpm,mariadb 5.2.6 mysql,memcached 1.4.5服务器并通过shell脚本自动攻击基准testing,缺less设置fastcgi_caching用于cachingphp的configuration参数。 它也缺less安装程序来caching本地服务文件的静态文件。 当静态文件驻留在同一个磁盘上时,是否有使用proxy_cache的意义? 任何人有一些提示和信息链接到信息阅读教程正确的设置为PHP(PHP-FPM)fastcgi_caching以及caching本地驻留的静态文件? 谢谢