Linux VPS上配置Nginx反向代理
Nginx是一款高性能的HTTP和反向代理服務器。VPS偵探以前已經(jīng)多次介紹過Nginx的HTTP應用,比如lnmp一鍵安裝包。下面要說的是Nginx的反向代理功能。
反向代理是什么?
反向代理指以代理服務器來接受Internet上的連接請求,然后將請求轉(zhuǎn)發(fā)給內(nèi)部(或其他)網(wǎng)絡上的服務器,并將從服務器上得到的結果返回給Internet上請求連接的客戶端。
一句話說明就是訪問的域名是a.com,實際訪問的內(nèi)容是b.com的。
實現(xiàn)方法:
比如我想在VPS上建一個t.vpser.net的域名用來反向代理訪問http://127.0.0.1:3000,首先在域名注冊商那里的域名管理上為域名t.vpser.net添加A記錄到VPS的IP上,再在VPS上修改Nginx的配置文件,添加如下:
server
{
listen 80;
server_name t.vpser.net;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
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_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Port $server_port;
}
添加好后,先執(zhí)行:/usr/local/nginx/sbin/nginx -t 檢查配置是否正常,如果顯示:the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok????? configuration file /usr/local/nginx/conf/nginx.conf test is successful 則正常,否則按錯誤提示修改配置。
這樣只是簡單的反向代理,如果nginx上已經(jīng)安裝 --with-http_sub_module 模塊,可以在location / { 中添加上 sub_filter 替換內(nèi)容 '替換后內(nèi)容'; 進行簡單的內(nèi)容替換,默認只替換html內(nèi)容(如更改html源碼里面的網(wǎng)址、文章等信息),其他文件類型,需要添加 sub_filter_types 參數(shù)指定更多類型,多次替換還需要加上sub_filter_once off; ?。
如果網(wǎng)站較大可能會有很多其他的資源需要替代,需要在nginx上添加第三方模塊ngx_http_substitutions_filter_module來實現(xiàn)更多功能。
再執(zhí)行 /usr/local/nginx/sbin/nginx -s reload 使配置生效,域名解析生效后就可以通過t.vpser.net 訪問txxx了。
>>轉(zhuǎn)載請注明出處:VPS偵探 本文鏈接地址:http://www.0794baidu.com/manage/linux-vps-nginx-reverse-proxy.html










@jxyk2007, 一個是跑php用,一個是跑反向代理的肯定不一樣。
server
{
listen 80;
server_name xxxxxxxx.vserver.cz;
index index.html index.htm index.php;
root /home/wwwroot;
location ~ .*\.(php|php5)?$
{
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fcgi.conf;
====================
怎么和你那代碼不一樣啊?
好像不行啊,得到的效果和301一樣
GHS的IP越來越少了,只能用反向代理穿越了
max_children 我已經(jīng)增大的
本來一鍵安裝包默認的時候 都是N久打不開 然后現(xiàn)實504的……
后來我把max_children 增大以后 才是大概1分鐘左右現(xiàn)實502的
@海無影, 502的話也有可能是php-fpm.conf里的max_children 值設置的太小不夠用。
哇 nginx的反向代理配置這么簡單啊
vpser能去我的博客 幫我簡單看一下 我的第一篇文章 提問的 問題嗎
我有一個網(wǎng)站程序是UCHOME2.0改的 在LNMP一鍵安裝包下用不了 但是在vpsyou的LAMP搭建文檔下(http://www.vpsyou.com/centos-5-compile-install-apache-php-mysql/)安裝后使用正常
這是為什么啊?
看那個程序的首頁貌似 數(shù)據(jù)庫查詢非常多 不知道是不是這個原因 按照vpsyou那篇文章搭建的LAMP 其中有一部是更改mysql的最大連接數(shù)的 但是我后來在LNMP上也修改了 還是不行
請你幫忙看一下~謝謝
已經(jīng)解決了。謝謝vpser管理員。感謝。 ?? ??
怎么自動修改了,這一行的代碼為http://littz.com/ghs-littz-com-alternative-ghs-google-com.html在這里的第三段代碼。謝謝您。
您好,管理員。我在修改nginx.conf文件時。
加入如下代碼:
location / {
proxy_redirect off;
proxy_set_header Host $host;
proxy_pass http://ghs;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect false;
}
但是提示這一行:proxy_pass http://ghs;
有問題:
[emerg]: invalid number of arguments in "proxy_pass" directive in /usr/local/nginx/conf/nginx.conf:118
configuration file /usr/local/nginx/conf/nginx.conf test failed
請問,該怎么修改?謝謝您。
原始文件的地址:http://littz.com/ghs-littz-com-alternative-ghs-google-com.html
謝謝您。
這樣代理,圖片都不會顯示出來,其余OK
@風鈴, /usr/local/nginx/conf/nginx.conf
您好,請問:“再在VPS上修改Nginx的配置文件”指的是哪個文件,我是新手,比較不懂。謝謝您。
發(fā)現(xiàn)好多地方還是回直連到被代理的網(wǎng)站原始url,正如一樓所述,不知道這是怎么回事?
是可以訪問了,但是點擊任何一個連接,馬上就無效了。。
哈哈,原來這就叫反向代理,很薦