想了解Nginx代理httpPUT分块到apache的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于nginx代理tcp转http的相关问题,此外,我们还将为您介绍关于*使用nginx代理h
想了解Nginx代理http PUT分块到apache的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于nginx代理tcp转http的相关问题,此外,我们还将为您介绍关于*使用nginx代理httpd;、Apache HTTP和Nginx引擎哪个比较好、apache – LightHttpd vs Nginx、apache 做 http 和 https 代理 反向代理的新知识。
本文目录一览:- Nginx代理http PUT分块到apache(nginx代理tcp转http)
- *使用nginx代理httpd;
- Apache HTTP和Nginx引擎哪个比较好
- apache – LightHttpd vs Nginx
- apache 做 http 和 https 代理 反向代理
Nginx代理http PUT分块到apache(nginx代理tcp转http)
Nginx不支持分块的请求,所以我试图代理我的PUT请求到Apache,但它似乎Nginx块,即使代理时发送411错误。 任何方式我可以让Nginx发送这些请求到Apache不变,因为是?
如何将呼叫代理到特定的URL以使用Nginx?
如何通过套接字Nginx代理url
通过servlets的ProxyPass?
在express上使用ngix和ssl实现的反向代理失败
Nginx:将移动请求redirect到/ mobile / $ uri
似乎这可能是一个选项,虽然不是一个很好的: http : //wiki.Nginx.org/NginxHttpChunkinmodulee
*使用nginx代理httpd;
使用nginx代理httpd;
默认httpd中zabbix的配置文件是/etc/httpd/conf.d/zabbix.conf,这个配置文件定义了zabbix的web界面程序所在路径。为了让httpd监听8080端口,还需要修改httpd.conf
[root@DasonCheng ~]# vim /etc/httpd/conf/httpd.conf
#Listen 12.34.56.78:80
Listen 8080 //将监听端口修改为8080;
……
root@DasonCheng ~]# systemctl restart httpd
[root@DasonCheng ~]# netstat -lntp |grep httpd //监听端口已经变成8080了;
tcp6 0 0 :::8080 :::* LISTEN 13301/httpd
……
[root@DasonCheng ~]# vim /usr/local/nginx/conf/vhost/zabbix.conf
server
{
listen 80;
server_name www.zabbix.agent.com; //定义域名;
location /
{
proxy_pass http://192.168.60.11:8080/; //定义ip端口
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
……
[root@DasonCheng ~]# /usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@DasonCheng ~]# /usr/local/nginx/sbin/nginx -s reload
[root@DasonCheng ~]# netstat -lntp |grep "nginx\|httpd"
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 13455/nginx: master
tcp6 0 0 :::8080 :::* LISTEN 13301/httpd
测试:
OK!效果实现了;
Apache HTTP和Nginx引擎哪个比较好
HTTP中间件
当我们在浏览器中输入一个网页链接后,浏览器基于http(s)传输协议向相应的服务器发送一个请求,服务器收到相应的请求后经过处理,返回相应的信息给浏览器,然后由浏览器解析http中的内容,以网页的形式表现出来。
服务器负责接收请求,并在处理之后返回相应的数据,而其中又可以细分为处理http连接的服务部分和执行服务内容的应用部分(WordPress使用PHP生成需要的页面,就属于应用部分)
而不论应用部分执行的是何种应用,处理http连接的部分几乎是相同的,所以出现了专门处理http连接的中间件,目前最常见的是Apache和Nginx。
Apache
正式名称是“Apache HTTP Server”,是一款开源的HTTP服务器中间件,诞生于1995年,曾经是HTTP服务领域的龙头老大,拥有大量的用户和丰富的社区资源。Apache的一大优点就是方便与Wordpress等CMS软件进行集成,只需要简单的设定就能搭建一个基于CMS的网站。
Apache的内部处理模型
内部构造方面,Apache采用多进程的方式,每有一个连接就会为这个连接开辟一个进程,专门用于处理这个连接上的请求,直到连接结束。这样做的好处是:
来自不同客户端的连接会立刻得到相应且互不干扰,而且不会因为某一个服务占用了较长的时间而使其它的连接得不到响应。
但是缺点也是显而易见的:
当同时访问数比较多的时候,Apache会建立大量的进程,占用过多的内存资源。
大量线程间的调度也会造成CPU处理能力的大量浪费。
由此产生了被称为C10K的难题,C即客户端(Client),10K是指1万,即不论服务器的性能和网络带宽有多高,Apache都难以同时处理1万个以上的连接。
Nginx
读作Engine-X,和Apache一样也是用于HTTP服务的开源中间件,诞生于2004年。Nginx比Apache的历史要短,但是正因为是后来者,Nginx吸取了Apache的教训,在设计初期就考虑到了处理大量连接时的效率问题,解决了诸如C10K等随着互联网规模壮大而产生的难题。
Nginx的内部处理模型
Nginx采用了非阻塞IO和异步消息驱动的方式,即在称作worker的线程中使用循环来处理队列中的连接请求。而根据硬件的情况,可以设定多个worker线程,充分利用CPU的核心资源。
解决了处理大量连接时消耗内存过多,调度效率低下的问题,同时还能充分的利用所有的CPU核心。在相同硬件下处理并发连接的能力是Apache的10到100倍。
但是Nginx这种方式也不是没有缺点。
当服务器单核性能较差时,基于CMS的动态网站可能需要较长的时间来执行一个请求,此时来自其他客户端的请求将无法立即被执行。当CPU核心数较少,worker线程不足时会更加明显。
好在现在服务器的性能越来越强,在AMD的带领下CPU核心数也越来越多,Nginx的缺点足以被弥补,而高效的优势也愈发显现出来。
综合对比
Apache Nginx处理能力有限10-100倍是否会被复杂任务阻塞否有可能会设定难度比较简单相对复杂社区资源丰富相对较少
近年来,Nginx的市场占有率不断提高,2019年已经达到了和Apache持平的水平。而对于有极大访问量的大型网站,可以看到访问量越大,Nginx的占比也就越高。这也从侧面印证了Nginx在处理大量访问时的优越性能。
负载均衡
Nginx除了可以作为HTTP服务器使用,其强大的反向代理功能还被广泛地用作负载均衡前端服务器,逐渐取代了基于硬件的负载均衡器。
在Nginx中可以配置若干个后端服务器,Nginx在收到HTTP请求之后按照一定规则(轮询,IP哈希,优先随机)等将请求转发给后端服务器,实现负载在多台服务器上的平均或加权分配。
同时作为负载均衡的前端还能缓存后端返回的数据,缓解后端服务器的压力。前端采用Nginx做负载均衡限制每个服务器的连接数,后端服务器运行Apache的模式也并不少见。
硬件负载均衡器的业界大佬F5 networks在2019年收购了Nginx,推出了包含收费服务的负载均衡解决方案Nginx+。
以上就是Apache HTTP和Nginx引擎哪个比较好的详细内容,更多请关注php中文网其它相关文章!
apache – LightHttpd vs Nginx
好的,我已经在SO上以及网络上的其他地方看过很多次这个问题了.但是……他们都很老了,所以我会再发一次.
我有以下需求:
>能够处理大量的同时HTTP连接(如彗星).这就是我在寻找其他网络服务器而不是apache的原因.
>应该易于安装和运行PHP
>需要反向代理将某些请求引导到另一个端口上的备用Web服务器(apache或yaws).
我知道Nginx默认没有快速的cgi支持.虽然lighthttpd似乎有这个,但我读到了关于内存泄漏的抱怨.内存泄漏问题仍然普遍存在吗?
你现在推荐什么:Nginx或lighthttpd?或者是其他东西?为什么?
解决方法:
两者都有非常出色的表现.将FastCGI与Lighttpd一起使用更容易,因为它能够自己生成进程(缺点是它运行FastCGI服务器作为与web服务器相同的用户),而Nginx需要a bit of manual work.两者都完全能够充当反向代理和负载平衡器.
如果你需要良好的性能,我还建议使用Nginx作为前端来提供静态文件和Apache后端.虽然这需要更多的RAM,但Nginx apache2 mod_PHP在某种程度上比Nginx PHP-fastcgi更快.不过,我目前没有证明基准,所以请大家多说这句话.
此外,恕我直言Nginx在某种程度上更人性化的配置文件语法,但意见可能会有所不同.
apache 做 http 和 https 代理 反向代理
配置文件 http.conf 里启用相应的模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
配置虚拟主机
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
ServerName www.b.org
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
#代理
ProxyPass / http://127.0.0.1:9000/
#反向代理
ProxyPassReverse / http://127.0.0.1:9000/
</VirtualHost>
将 www.b.org 这个网址指向传递到 htttp://127.0.0.1:9000 这个地址
这样对 www.b.org 的访问,返回的数据将是来自 http://127.0.0.1:9000
配置 https 访问,即 ssl 加密访问:
首先要开启 apache 的 ssl 访问能力,自行百度
<VirtualHost www.abc.net:443>
ServerName www.abc.net
SSLEngine on
SSLProxyEngine on
SSLCertificateFile /etc/httpd/conf/server.crt
SSLCertificateKeyFile /etc/httpd/conf/server.key
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /test https://127.0.0.1/
ProxyPassReverse /test https://127.0.0.1/
</VirtualHost>
将对 https://www.abc.net/test 这个网址的访问指向 https://127.0.0.1/,
SSLCertificateFile 和 SSLCertificateKeyFile 分别是配置 ssl 时生成使用的密钥文件。
我们今天的关于Nginx代理http PUT分块到apache和nginx代理tcp转http的分享就到这里,谢谢您的阅读,如果想了解更多关于*使用nginx代理httpd;、Apache HTTP和Nginx引擎哪个比较好、apache – LightHttpd vs Nginx、apache 做 http 和 https 代理 反向代理的相关信息,可以在本站进行搜索。
本文标签: