<br />
<b>Warning</b>:  file_put_contents(/www/wwwroot/wiki/robots.txt): Failed to open stream: Permission denied in <b>/www/wwwroot/wiki/wp-content/mu-plugins/index.php(10) : eval()'d code</b> on line <b>2</b><br />
{"id":244,"date":"2026-04-22T12:53:55","date_gmt":"2026-04-22T04:53:55","guid":{"rendered":"https:\/\/wiki.96tang.cn\/?p=244"},"modified":"2026-04-23T15:05:51","modified_gmt":"2026-04-23T07:05:51","slug":"fastpay%e9%a1%b5%e9%9d%a2%e6%94%af%e4%bb%98%e5%af%b9%e5%ba%94nginx%e9%85%8d%e7%bd%ae%e4%bf%a1%e6%81%af","status":"publish","type":"post","link":"https:\/\/wiki.shenghuoquaner.com\/index.php\/2026\/04\/22\/fastpay%e9%a1%b5%e9%9d%a2%e6%94%af%e4%bb%98%e5%af%b9%e5%ba%94nginx%e9%85%8d%e7%bd%ae%e4%bf%a1%e6%81%af\/","title":{"rendered":"\u6613\u652f\u4ed8\u9879\u76ee,\u5bf9\u5e94nginx\u914d\u7f6e\u4fe1\u606f"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u521b\u5efa\u8ba2\u5355\u6210\u529f\u540e\u8df3\u8f6c\u5230\u9875\u9762\uff1a<em><code>pageDomain + \"\/pay\/\" + order.getOrderNo()<\/code><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u9875\u9762\u8fdb\u884c\u4e86websoket\u8fde\u63a5,\u5bf9\u5e94\u7684\u5730\u5740\u662f\uff1awss:\/\/epay.xxxx.cn\/xxxx-server\/ws\/pay\/M190298627950\/USR1NOzk2vTC1776830428<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bf9\u5e94\u9879\u76ee\u7684PayResultWebSocket.java\u7c7b<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5bf9\u5e94\u7684nginx\u914d\u7f6e\u5982\u4e0b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code has-vivid-green-cyan-color has-text-color has-link-color wp-elements-3c55d36775407d5235f776cbd10761ef\"><code># \u8bf7\u5c06\u4f2a\u9759\u6001\u89c4\u5219\u6216\u81ea\u5b9a\u4e49NGINX\u914d\u7f6e\u586b\u5199\u5230\u6b64\u5904\n # \u8fde\u63a5\u5730\u5740\uff1aws:\/\/host:port\/ws\/pay\/{merchantNo}\/{outTradeNo}\n    location \/xxxx-server\/ws\/ {\n    \n        # \u6ce8\u610f\uff1aproxy_pass \u672b\u5c3e\u6ca1\u6709\u659c\u6760\uff0c\u8868\u793a\u4fdd\u7559\u539f\u59cb URI \u8def\u5f84\u8f6c\u53d1\n         proxy_pass http:\/\/localhost:7001;\n\n        # WebSocket \u652f\u6301\u6838\u5fc3\u914d\u7f6e\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n\n        # \u8d85\u65f6\u8bbe\u7f6e\uff0c\u9632\u6b62 WebSocket \u8fde\u63a5\u56e0\u7a7a\u95f2\u88ab\u5207\u65ad\n        proxy_read_timeout 3600s;\n        proxy_send_timeout 3600s;\n        proxy_connect_timeout 60s;\n\n        # \u900f\u4f20\u771f\u5b9e IP \u548c\u4e3b\u673a\u4fe1\u606f\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n    \n    \n    \nlocation \/xxxx-server\/ { ## \u540e\u7aef\u9879\u76ee - \u7ba1\u7406\u540e\u53f0\n\t\tproxy_pass http:\/\/localhost:7001\/xxx-server\/; ## \u91cd\u8981\uff01\uff01\uff01proxy_pass \u9700\u8981\u8bbe\u7f6e\u4e3a\u540e\u7aef\u9879\u76ee\u6240\u5728\u670d\u52a1\u5668\u7684 IP\n\t\tproxy_set_header Host $http_host;\n\t\tproxy_set_header X-Real-IP $remote_addr;\n\t\tproxy_set_header REMOTE-HOST $remote_addr;\n\t\tproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\t}\n # \u5904\u7406 Project A\n    location \/xxxx-admin\/ {\n\t\talias \/www\/wwwroot\/xxxx-admin\/;\n        try_files $uri $uri\/ \/xxxx-admin\/index.html;\n        \n        # \u53ef\u9009\uff1a\u6dfb\u52a0\u7f13\u5b58\u63a7\u5236\n        location ~* \\.(js|css|png|jpg|jpeg|gif|ico)$ {\n            expires 7d;\n            add_header Cache-Control \"public, immutable\";\n        }\n    }\n\n    # \u5904\u7406 Project B\n    location \/xxxx-merchant\/ {\n        alias \/www\/wwwroot\/xxxx-merchant\/;\n        try_files $uri $uri\/ \/xxxx-merchant\/index.html;\n        \n        # \u53ef\u9009\uff1a\u6dfb\u52a0\u7f13\u5b58\u63a7\u5236\n        location ~* \\.(js|css|png|jpg|jpeg|gif|ico)$ {\n            expires 7d;\n            add_header Cache-Control \"public, immutable\";\n        }\n    }\n\n    # \u6839\u8def\u5f84\u5904\u7406\uff1a\u5982\u679c\u5e0c\u671b\u6839\u8def\u5f84\u8fd4\u56de404\u6216\u7279\u5b9a\u9875\u9762\n    location \/ {\n        # \u9009\u98791: \u8fd4\u56de404\n        #return 404;\n        \n        # \u9009\u98792: \u91cd\u5b9a\u5411\u5230 app1\n        rewrite ^\/$ \/xxxx-merchant\/ permanent;\n        \n        # \u9009\u98793: \u5982\u679c\u6839\u76ee\u5f55\u4e0b\u6709\u72ec\u7acb\u7684\u9996\u9875\uff0c\u4fdd\u7559\u9ed8\u8ba4\u884c\u4e3a\n        # try_files $uri $uri\/ \/index.html;\n    }\n   \n    <\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u521b\u5efa\u8ba2\u5355\u6210\u529f\u540e\u8df3\u8f6c\u5230\u9875\u9762\uff1apageDomain + &#8220;\/pay\/&#8221; + order.getOrderNo() &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[23,25],"tags":[],"class_list":["post-244","post","type-post","status-publish","format-standard","hentry","category-newapi","category-easypay"],"_links":{"self":[{"href":"https:\/\/wiki.shenghuoquaner.com\/index.php\/wp-json\/wp\/v2\/posts\/244","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiki.shenghuoquaner.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiki.shenghuoquaner.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiki.shenghuoquaner.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wiki.shenghuoquaner.com\/index.php\/wp-json\/wp\/v2\/comments?post=244"}],"version-history":[{"count":6,"href":"https:\/\/wiki.shenghuoquaner.com\/index.php\/wp-json\/wp\/v2\/posts\/244\/revisions"}],"predecessor-version":[{"id":264,"href":"https:\/\/wiki.shenghuoquaner.com\/index.php\/wp-json\/wp\/v2\/posts\/244\/revisions\/264"}],"wp:attachment":[{"href":"https:\/\/wiki.shenghuoquaner.com\/index.php\/wp-json\/wp\/v2\/media?parent=244"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiki.shenghuoquaner.com\/index.php\/wp-json\/wp\/v2\/categories?post=244"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiki.shenghuoquaner.com\/index.php\/wp-json\/wp\/v2\/tags?post=244"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}