RuHttpProxyModule
Contents |
[edit] ngx_http_proxy_module
袦芯写褍谢褜 ngx_http_proxy_module 锌芯蟹胁芯谢褟械褌 锌械褉械写邪胁邪褌褜 蟹邪锌褉芯褋褘 写褉褍谐芯屑褍 褋械褉胁械褉褍. 小芯写械褉卸邪薪懈械 袩褉懈屑械褉 泻芯薪褎懈谐褍褉邪褑懈懈
[edit] 袛懈褉械泻褌懈胁褘
- [#proxy_buffer_size proxy_buffer_size]
- [#proxy_buffering proxy_buffering]
- [#proxy_buffers proxy_buffers]
- [#proxy_hide_header proxy_hide_header]
- [#proxy_intercept_errors proxy_intercept_errors]
- [#proxy_pass proxy_pass]
- [#proxy_pass_header proxy_pass_header]
- [#proxy_redirect proxy_redirect]
- [#proxy_read_timeout proxy_read_timeout]
- [#proxy_redirect_errors proxy_redirect_errors]
- [#proxy_set_header proxy_set_header]
袙褋褌褉芯械薪薪褘械 锌械褉械屑械薪薪褘械 袩褉懈屑械褉 泻芯薪褎懈谐褍褉邪褑懈懈
: location / { : proxy_pass http://localhost:8000/; : proxy_set_header X-Real-IP $remote_addr; : }
[edit] proxy_buffer_size
syntax: proxy_buffer_size 褉邪蟹屑械褉
default: proxy_buffer_size 4k/8k
context: http, server, location
袛懈褉械泻褌懈胁邪 蟹邪写邪褢褌 褉邪蟹屑械褉 斜褍褎械褉邪, 胁 泻芯褌芯褉褘泄 斜褍写械褌 褔懈褌邪褌褜褋褟 锌械褉胁邪褟 褔邪褋褌褜 芯褌胁械褌邪, 锌芯谢褍褔邪械屑芯谐芯 芯褌 锌褉芯泻褋懈褉褍械屑芯谐芯 褋械褉胁械褉邪. 袙 褝褌芯泄 褔邪褋褌懈 芯褌胁械褌邪 薪邪褏芯写懈褌褋褟, 泻邪泻 锌褉邪胁懈谢芯, 薪械斜芯谢褜褕芯泄 蟹邪谐芯谢芯胁芯泻 芯褌胁械褌邪. 袩芯 褍屑芯谢褔邪薪懈褞 褉邪蟹屑械褉 斜褍褎械褉邪 褉邪胁械薪 褉邪蟹屑械褉褍 芯写薪芯谐芯 斜褍褎械褉邪 胁 写懈褉械泻褌懈胁械 proxy_buffers, 芯写薪邪泻芯 械谐芯 屑芯卸薪芯 褋写械谢邪褌褜 屑械薪褜褕械.
[edit] proxy_buffering
syntax: proxy_buffering on|off
default: proxy_buffering on
context: http, server, location
袛懈褉械泻褌懈胁邪 褉邪蟹褉械褕邪械褌 懈褋锌芯谢褜蟹芯胁邪褌褜 斜褍褎械褉懈蟹邪褑懈褞 芯褌胁械褌邪 锌褉芯泻褋懈褉褍械屑芯谐芯 褋械褉胁械褉邪. 袝褋谢懈 斜褍褎械褉懈蟹邪褑懈褟 胁泻谢褞褔械薪邪, 褌芯 nginx 锌褉懈薪懈屑邪械褌 芯褌胁械褌 锌褉芯泻褋懈褉褍械屑芯谐芯 褋械褉胁械褉邪 泻邪泻 屑芯卸薪芯 斜褘褋褌褉械械, 褋芯褏褉邪薪褟褟 械谐芯 胁 斜褍褎械褉邪, 蟹邪写邪薪薪褘械 写懈褉械泻褌懈胁邪屑懈 proxy_buffer_size 懈 proxy_buffers. 袝褋谢懈 芯褌胁械褌 薪械 锌芯屑械褖邪械褌褋褟 锌芯谢薪芯褋褌褜褞 胁 锌邪屑褟褌褜, 褌芯 械谐芯 褔邪褋褌褜 蟹邪锌懈褋褘胁邪械褌褋褟 薪邪 写懈褋泻.
袝褋谢懈 斜褍褎械褉懈蟹邪褑懈褟 胁褘泻谢褞褔械薪邪, 褌芯 芯褌胁械褌 褋懈薪褏褉芯薪薪芯 锌械褉械写邪褢褌褋褟 泻谢懈械薪褌褍 褋褉邪蟹褍 卸械 锌芯 屑械褉械 械谐芯 锌芯褋褌褍锌谢械薪懈褟. nginx 薪械 锌褘褌邪械褌褋褟 褋褔懈褌邪褌褜 胁械褋褜 芯褌胁械褌 锌褉芯泻褋懈褉褍械屑芯谐芯 褋械褉胁械褉邪, 屑邪泻褋懈屑邪谢褜薪褘泄 褉邪蟹屑械褉 写邪薪薪褘褏, 泻芯褌芯褉褘泄 nginx 屑芯卸械褌 锌褉懈薪褟褌褜 芯褌 褋械褉胁械褉邪 蟹邪写邪褢褌褋褟 写懈褉械泻褌懈胁芯泄 proxy_buffer_size.
[edit] proxy_buffers
syntax: proxy_buffers 褔懈褋谢芯 褉邪蟹屑械褉
default: proxy_buffers 8 4k/8k
context: http, server, location
袛懈褉械泻褌懈胁邪 蟹邪写邪褢褌 褔懈褋谢芯 懈 褉邪蟹屑械褉 斜褍褎械褉芯胁, 胁 泻芯褌芯褉褘械 斜褍写械褌 褔懈褌邪褌褜褋褟 芯褌胁械褌, 锌芯谢褍褔邪械屑褘泄 芯褌 锌褉芯泻褋懈褉褍械屑芯谐芯 褋械褉胁械褉邪. 袩芯 褍屑芯谢褔邪薪懈褞 褉邪蟹屑械褉 芯写薪芯谐芯 斜褍褎械褉邪 褉邪胁械薪 褉邪蟹屑械褉褍 褋褌褉邪薪懈褑褘, 胁 蟹邪胁懈褋懈屑芯褋褌懈 芯褌 锌谢邪褌褎芯褉屑褘 褝褌芯 懈谢懈 4K, 懈谢懈 8K.
[edit] proxy_hide_header
syntax: proxy_hide_header 懈屑褟
context: http, server, location
nginx 薪械 锌械褉械写邪褢褌 泻谢懈械薪褌褍 褋褌褉芯泻懈 蟹邪谐芯谢芯胁泻邪 "Date", "Server", "X-Pad" 懈 "X-Accel-..." 懈蟹 芯褌胁械褌邪 锌褉芯泻褋懈褉芯胁邪薪薪芯谐芯 褋械褉胁械褉邪. 袛懈褉械泻褌懈胁邪 proxy_hide_header 蟹邪写邪褢褌 写芯锌芯谢薪懈褌械谢褜薪褘械 褋褌褉芯泻懈. 袝褋谢懈 卸械 褋褌褉芯泻懈 薪褍卸薪芯 薪邪芯斜褉芯褌 褉邪蟹褉械褕懈褌褜, 褌芯 薪褍卸薪芯 胁芯褋锌芯谢褜蟹芯胁邪褌褜褋褟 写懈褉械泻褌懈胁芯泄 proxy_pass_header.
[edit] proxy_intercept_errors
syntax: proxy_intercept_errors [on|off]
default: proxy_intercept_errors off
context: http, server, location
袛懈褉械泻褌懈胁邪 芯锌褉械写械谢褟械褌, 锌械褉械写邪胁邪褌褜 谢懈 泻谢懈械薪褌褍 锌褉芯泻褋懈褉芯胁邪薪薪褘械 芯褌胁械褌褘 褋 泻芯写芯屑 斜芯谢褜褕械 懈谢懈 褉邪胁薪褘械 400 懈谢懈 卸械 锌械褉械薪邪锌褉邪胁谢褟褌褜 懈褏 薪邪 芯斜褉邪斜芯褌泻褍 nginx'褍 褋 锌芯屑芯褖褜褞 写懈褉械泻褌懈胁褘 error_page.
[edit] proxy_pass
syntax: proxy_pass URL
default: 薪械褌
context: location, if 胁 location
袛懈褉械泻褌懈胁邪 蟹邪写邪褢褌 锌芯褉褌 懈谢懈 褋芯泻械褌, 薪邪 泻芯褌芯褉芯屑 褋谢褍褕邪械褌 锌褉芯泻褋懈褉褍械屑褘泄 褋械褉胁械褉, 懈 URI, 薪邪 泻芯褌芯褉褘泄 斜褍写械褌 芯褌芯斜褉邪卸邪褌褜褋褟 location. 袩芯褉褌 屑芯卸械褌 斜褘褌褜 褍泻邪蟹邪薪 胁 胁懈写械 懈屑械薪懈 褏芯褋褌邪 懈谢懈 邪写褉械褋邪 懈 锌芯褉褌邪, 薪邪锌褉懈屑械褉,
: proxy_pass http://localhost:8000/uri/;
邪 褋芯泻械褌 鈥 胁 胁懈写械 锌褍褌懈 unix 褋芯泻械褌邪:
: proxy_pass http://unix:/tmp/backend.socket:/uri/;
锌褍褌褜 褍泻邪蟹邪薪 锌芯褋谢械 褋谢芯胁邪 unix 懈 蟹邪泻谢褞褔褢薪 屑械卸写褍 写胁褍屑褟 写胁芯械褌芯褔懈褟屑懈.
袩褉懈 锌械褉械写邪褔械 蟹邪锌褉芯褋邪 褋械褉胁械褉褍 褔邪褋褌褜 URI, 褋芯芯褌胁械褌褋褌胁褍褞褖邪褟 location, 蟹邪屑械薪褟械褌褋褟 薪邪 URI, 褍泻邪蟹邪薪薪褘泄 胁 写懈褉械泻褌懈胁械 proxy_pass. 袧芯 懈蟹 褝褌芯谐芯 锌褉邪胁懈谢邪 械褋褌褜 写胁邪 懈褋泻谢褞褔械薪懈褟, 胁 泻芯褌芯褉褘褏 薪械谢褜蟹褟 芯锌褉械写械谢懈褌褜 蟹邪屑械薪褟械屑褘泄 location:
- 械褋谢懈 location 蟹邪写邪薪 褉械谐褍谢褟褉薪褘屑 胁褘褉邪卸械薪懈械屑;
- 械褋谢懈 胁薪褍褌褉懈 锌褉芯泻褋懈褉褍械屑芯谐芯 location 褋 锌芯屑芯褖褜褞 写懈褉械泻褌懈胁褘 rewrite 懈蟹屑械薪褟械褌褋褟 URI 懈 懈屑械薪薪芯 褋 褝褌芯泄 泻芯薪褎懈谐褍褉邪褑懈械泄 斜褍写械褌 芯斜褉邪斜邪褌褘胁邪褌褜褋褟 蟹邪锌褉芯褋 (break):
: location /name/ { : rewrite /name/([^/] +) /users?name=$1 break; : proxy_pass http://127.0.0.1; : }
- 袛谢褟 褝褌懈褏 褋谢褍褔邪械胁 URI 锌械褉械写邪褢褌褋褟 斜械蟹 芯褌芯斜褉邪卸械薪懈褟.
袣褉芯屑械 褌芯谐芯, 屑芯卸薪芯 褍泻邪蟹邪褌褜, 褔褌芯斜褘 URI 蟹邪锌褉芯褋邪 锌械褉械写邪胁邪谢芯褋褜 胁 褌芯屑 卸械 胁懈写械, 泻邪泻 械谐芯 锌褉懈褋谢邪谢 泻谢懈械薪褌, 邪 薪械 胁 胁 芯斜褉邪斜芯褌邪薪薪芯屑 胁懈写械. 袙芯 胁褉械屑褟 芯斜褉邪斜芯褌泻懈
- 写胁邪 懈 斜芯谢械械 褋谢褝褕械泄 锌褉械芯斜褉邪蟹褍褞褌褋褟 胁 芯写懈薪 褋谢褝褕: "//" 鈥 "/";
- 褍斜懈褉邪褞褌褋褟 褋褋褘谢泻懈 薪邪 褌械泻褍褖懈泄 泻邪褌邪谢芯谐: "/./" 鈥 "/";
- 褍斜懈褉邪褞褌褋褟 褋褋褘谢泻懈 薪邪 锌褉械写褘写褍褖懈泄 泻邪褌邪谢芯谐: "/dir/../" 鈥 "/".
袝褋谢懈 薪邪 褋械褉胁械褉 薪褍卸薪芯 锌械褉械写邪褌褜 URI 胁 薪械芯斜褉邪斜芯褌邪薪薪芯屑 胁懈写械, 褌芯 写谢褟 褝褌芯谐芯 胁 写懈褉械泻褌懈胁械 proxy_pass 薪褍卸薪芯 褍泻邪蟹邪褌褜 URL 褋械褉胁械褉邪 斜械蟹 URI:
: location /some/path/ { : proxy_pass http://127.0.0.1; : }
[edit] proxy_pass_header
syntax: proxy_pass_header 懈屑褟
context: http, server, location
袛懈褉械泻褌懈胁邪 褉邪蟹褉械褕邪械褌 锌械褉械写邪胁邪褌褜 泻谢懈械薪褌褍 蟹邪锌褉械褖褢薪薪褘械 写谢褟 锌械褉械写邪褔懈 褋褌褉芯泻懈.
[edit] proxy_redirect
syntax: proxy_redirect [default|off|褉械写懈褉械泻褌 蟹邪屑械薪邪]
default: proxy_redirect default
context: http, server, location
袛懈褉械泻褌懈胁邪 蟹邪写邪褢褌 褌械泻褋褌, 泻芯褌芯褉褘泄 薪褍卸薪芯 懈蟹屑械薪懈褌褜 胁 褋褌褉芯泻邪褏 蟹邪谐芯谢芯胁泻邪 "Location" 懈 "Refresh" 胁 芯褌胁械褌械 锌褉芯泻褋懈褉褍械屑芯谐芯 褋械褉胁械褉邪. 袩褉械写锌芯谢芯卸懈屑, 锌褉芯泻褋懈褉褍械屑褘泄 褋械褉胁械褉 胁械褉薪褍谢 褋褌褉芯泻褍 "Location: http://localhost:8000/two/some/uri/". 袛懈褉械泻褌懈胁邪
: proxy_redirect http://localhost:8000/two/ http://frontend/one/;
锌械褉械锌懈褕械褌 褝褌褍 褋褌褉芯泻褍 胁 胁懈写械 "Location: http://frontend/one/some/uri/".
袙 蟹邪屑械薪褟械屑芯泄 褋褌褉芯泻械 屑芯卸薪芯 薪械 褍泻邪蟹褘胁邪褌褜 懈屑褟 褋械褉胁械褉邪:
: proxy_redirect http://localhost:8000/two/ /;
褌芯谐写邪 斜褍写械褌 锌芯褋褌邪胁谢械薪芯 芯褋薪芯胁薪芯械 懈屑褟 褋械褉胁械褉邪 懈 锌芯褉褌, 械褋谢懈 芯薪 芯褌谢懈褔械薪 芯褌 80.
袠蟹屑械薪械薪懈械 锌芯 褍屑芯谢褔邪薪懈褞, 蟹邪写邪胁邪械屑芯械 锌邪褉邪屑械褌褉芯屑 "default", 懈褋锌芯谢褜蟹褍械褌 锌邪褉邪屑械褌褉褘 写懈褉械泻褌懈胁 location 懈 proxy_pass. 袩芯褝褌芯屑褍 写胁械 薪懈卸械锌褉懈胁械写褢薪薪褘械 泻芯薪褎懈谐褍褉邪褑懈懈 芯写懈薪邪泻芯胁褘:
: location /one/ { : proxy_pass http://upstream:port/two/; : proxy_redirect default; : location /one/ { : proxy_pass http://upstream:port/two/; : proxy_redirect http://upstream:port/two/ /one/;
袙 蟹邪屑械薪褟械屑芯泄 褋褌褉芯泻械 屑芯卸薪芯 懈褋锌芯谢褜蟹芯胁邪褌褜 锌械褉械屑械薪薪褘械:
: proxy_redirect http://localhost:8000/ http://$host:$server_port/;
袛懈褉械泻褌懈胁 屑芯卸械褌 斜褘褌褜 薪械褋泻芯谢褜泻芯:
: proxy_redirect default; : proxy_redirect http://localhost:8000/ /; : proxy_redirect http://www.example.com/ /;
袩邪褉邪屑械褌褉 "off" 蟹邪锌褉械褖邪械褌 胁褋械 写懈褉械泻褌懈胁褘 proxy_redirect 薪邪 写邪薪薪芯屑 褍褉芯胁薪械:
: proxy_redirect off; : proxy_redirect default; : proxy_redirect http://localhost:8000/ /; : proxy_redirect http://www.example.com/ /;
小 锌芯屑芯褖褜褞 褝褌芯泄 写懈褉械泻褌懈胁褘 屑芯卸薪芯 褌邪泻卸械 写芯斜邪胁谢褟褌褜 懈屑褟 褏芯褋褌邪 泻 芯褌薪芯褋懈褌械谢褜薪褘屑 褉械写懈褉械泻褌邪屑, 胁褘写邪胁邪械屑褘屑 锌褉芯泻褋懈褉褍械屑褘屑 褋械褉胁械褉芯屑:
: proxy_redirect / /;
[edit] proxy_read_timeout
syntax: proxy_read_timeout 胁褉械屑褟
default: proxy_read_timeout 60
context: http, server, location
袛懈褉械泻褌懈胁邪 蟹邪写邪褢褌 褌邪泄屑邪褍褌 锌褉懈 褔褌械薪懈懈 芯褌胁械褌邪 锌褉芯泻褋懈褉芯胁邪薪薪芯谐芯 褋械褉胁械褉邪. 孝邪泄屑邪褍褌 褍褋褌邪薪邪胁谢懈胁邪械褌褋褟 薪械 薪邪 胁褋褞 锌械褉械写邪褔褍 芯褌胁械褌邪, 邪 褌芯谢褜泻芯 屑械卸写褍 写胁褍屑褟 芯锌械褉邪褑懈褟屑懈 褔褌械薪懈褟. 袝褋谢懈 锌芯 懈褋褌械褔械薪懈懈 褝褌芯谐芯 胁褉械屑械薪懈 锌褉芯泻褋懈褉褍械屑褘泄 褋械褉胁械褉 薪懈褔械谐芯 薪械 锌械褉械写邪褋褌, 褌芯 nginx 蟹邪泻褉褘胁邪械褌 褋芯械写懈薪械薪懈械.
[edit] proxy_redirect_errors
syntax: proxy_redirect_errors [on|off]
袛懈褉械泻褌懈胁邪 锌械褉械懈屑械薪芯胁邪薪邪 胁 proxy_intercept_errors.
[edit] proxy_set_header
syntax: proxy_set_header 蟹邪谐芯谢芯胁芯泻 蟹薪邪褔械薪懈械
default: Host 懈 Connection
context: http, server, location
袛懈褉械泻褌懈胁邪 锌芯蟹胁芯谢褟械褌 锌械褉械芯锌褉械写械谢褟褌褜 懈谢懈 写芯斜邪胁谢褟褌褜 褋褌褉芯泻懈 蟹邪谐芯谢芯胁泻邪 蟹邪锌褉芯褋邪, 锌械褉械写邪胁邪械屑褘械 锌褉芯泻褋懈褉褍械屑芯屑褍 褋械褉胁械褉褍. 袙 泻邪褔械褋褌胁械 蟹薪邪褔械薪懈褟 屑芯卸薪芯 懈褋锌芯谢褜蟹芯胁邪褌褜 褌械泻褋褌, 锌械褉械屑械薪薪褘械 懈 懈褏 泻芯屑斜懈薪邪褑懈懈. 袛懈褉械泻褌懈胁褘 薪邪褋谢械写褍褞褌褋褟 褋 锌褉械写褘写褍褖械谐芯 褍褉芯胁薪褟 锌褉懈 褍褋谢芯胁懈懈, 褔褌芯 薪邪 写邪薪薪芯屑 褍褉芯胁薪械 薪械 芯锌懈褋邪薪褘 褋胁芯懈 写懈褉械泻褌懈胁褘 proxy_set_header. 袩芯 褍屑芯谢褔邪薪懈褞 锌械褉械芯锌褉械写械谢褟褞褌褋褟 褌芯谢褜泻芯 写胁械 褋褌褉芯泻懈:
: proxy_set_header Host $proxy_host; : proxy_set_header Connection close;
袧械懈蟹屑械薪褢薪薪褍褞 褋褌褉芯泻褍 蟹邪谐芯谢芯胁泻邪 蟹邪锌褉芯褋邪 "Host" 屑芯卸薪芯 锌械褉械写邪褌褜 褌邪泻:
: proxy_set_header Host $http_host;
袨写薪邪泻芯, 械褋谢懈 褝褌邪 褋褌褉芯泻邪 芯褌褋褍褌褋褌胁褍械褌 胁 蟹邪锌褉芯褋械 泻谢懈械薪褌邪, 褌芯 薪懈褔械谐芯 锌械褉械写邪胁邪褌褜褋褟 薪械 斜褍写械褌. 袙 褝褌芯屑 褋谢褍褔邪械 谢褍褔褕械 胁芯褋锌芯谢褜蟹芯胁邪褌褜褋褟 锌械褉械屑械薪薪芯泄 $host, 械褢 蟹薪邪褔械薪懈械 褉邪胁薪芯 懈屑械薪懈 褋械褉胁械褉邪 胁 褋褌褉芯泻械 蟹邪谐芯谢芯胁泻邪 蟹邪锌褉芯褋邪 "Host" 懈谢懈 卸械 芯褋薪芯胁薪芯屑褍 懈屑械薪懈 褋械褉胁械褉邪, 械褋谢懈 褋褌褉芯泻懈 薪械褌:
: proxy_set_header Host $host;
袣褉芯屑械 褌芯谐芯, 屑芯卸薪芯 锌械褉械写邪褌褜 懈屑褟 褋械褉胁械褉邪 胁屑械褋褌械 褋 锌芯褉褌芯屑 锌褉芯泻褋懈褉褍械屑芯谐芯 褋械褉胁械褉邪:
: proxy_set_header Host $host:$proxy_port;
袝褋谢懈 蟹薪邪褔械薪懈械 褋褌褉芯泻懈 蟹邪谐芯谢芯胁泻邪 鈥 锌褍褋褌邪褟 褋褌褉芯泻邪, 褌芯 褋褌褉芯泻邪 胁芯芯斜褖械 薪械 斜褍写械褌 锌械褉械写邪胁邪褌褜褋褟 锌褉芯泻褋懈褉褍械屑芯屑褍 褋械褉胁械褉褍:
: proxy_set_header Accept-Encoding "";
袙褋褌褉芯械薪薪褘械 锌械褉械屑械薪薪褘械
袙 屑芯写褍谢械 ngx_http_proxy_module 械褋褌褜 胁褋褌褉芯械薪薪褘械 锌械褉械屑械薪薪褘械, 泻芯褌芯褉褘械 屑芯卸薪芯 懈褋锌芯谢褜蟹芯胁邪褌褜 写谢褟 褎芯褉屑懈褉芯胁邪薪懈褟 蟹邪谐芯谢芯胁泻芯胁 褋 锌芯屑芯褖褜褞 写懈褉械泻褌懈胁褘 proxy_set_header:
- $proxy_host, 褝褌邪 锌械褉械屑械薪薪邪褟 褉邪胁薪邪 懈屑械薪懈 锌褉芯泻褋懈褉褍械屑芯谐芯 褏芯褋褌邪 懈 锌芯褉褌邪;
- $proxy_port, 褝褌邪 锌械褉械屑械薪薪邪褟 褉邪胁薪邪 锌芯褉褌褍 锌褉芯泻褋懈褉褍械屑芯谐芯 褏芯褋褌邪;
- $proxy_add_x_forwarded_for, 褝褌邪 锌械褉械屑械薪薪邪褟 褉邪胁薪邪 褋褌褉芯泻械 蟹邪谐芯谢芯胁泻邪 蟹邪锌褉芯褋邪 泻谢懈械薪褌邪 "X-Forwarded-For" 懈 写芯斜邪胁谢械薪薪芯泄 泻 薪械泄 褔械褉械蟹 蟹邪锌褟褌褍褞 锌械褉械屑械薪薪芯泄 $remote_addr. 袝褋谢懈 卸械 褋褌褉芯泻懈 "X-Forwarded-For" 胁 蟹邪锌褉芯褋械 泻谢懈械薪褌邪 薪械褌, 褌芯 锌械褉械屑械薪薪邪褟 $proxy_add_x_forwarded_for 褉邪胁薪邪 锌械褉械屑械薪薪芯泄 $remote_addr.