
\u672c\u6559\u7a0b\u9002\u7528\u4e8e\u4f7f\u7528 --network host \u6a21\u5f0f\u8fd0\u884c Nginx \u5bb9\u5668\u7684\u573a\u666f\u3002\u5728\u6b64\u6a21\u5f0f\u4e0b\uff0cFail2Ban \u914d\u7f6e\u6bd4 Bridge \u6a21\u5f0f\u66f4\u7b80\u5355\uff0c\u56e0\u4e3a\u4e0d\u9700\u8981\u5904\u7406 Docker \u7684 NAT \u8f6c\u53d1\u94fe\u3002
/root/nginx/log/access.log\u8bf7\u786e\u4fdd\u60a8\u5df2\u4f7f\u7528 Host \u6a21\u5f0f\u542f\u52a8\u5bb9\u5668\uff1a
\n# \u505c\u6b62\u5e76\u5220\u9664\u65e7\u5bb9\u5668\ndocker rm -f nginx01\n\n# \u542f\u52a8\u65b0\u5bb9\u5668\uff08 Host \u6a21\u5f0f\uff09\ndocker run -d \\\n --name nginx01 \\\n --restart always \\\n --network host \\\n -v \"/root/nginx/conf/nginx.conf:/etc/nginx/nginx.conf\" \\\n -v \"/root/nginx/html:/usr/share/nginx/html\" \\\n -v \"/root/nginx/cert:/etc/nginx/cert\" \\\n -v \"/root/nginx/log:/var/log/nginx\" \\\n --add-host=host.docker.internal:host-gateway \\\n nginx\n\n\u6211\u4eec\u9700\u8981\u521b\u5efa\u89c4\u5219\u6765\u544a\u8bc9 Fail2Ban \u4ec0\u4e48\u662f\u6076\u610f\u884c\u4e3a\u3002
\n\u62e6\u622a\u626b\u63cf\u654f\u611f\u6587\u4ef6\uff08\u5982 .env, wp-login.php\uff09\u7684\u653b\u51fb\u8005\u3002
sudo nano /etc/fail2ban/filter.d/nginx-bad-request.conf\n\n[Definition]\nfailregex = ^<HOST> - - .* \"(GET|POST|HEAD) .*\\.(php|asp|aspx|jsp|cgi|env|git|yml|sql|bak|tar|gz|zip|rar|sh) HTTP.*\" (400|401|403|404) .*$\n ^<HOST> - - .* \"(GET|POST|HEAD) .*/(phpmyadmin|admin|setup|manager|dashboard|wp-login|xmlrpc).* HTTP.*\" (400|401|403|404) .*$\nignoregex =\n\n\u62e6\u622a\u8bf7\u6c42\u9891\u7387\u8fc7\u9ad8\u7684 IP \uff0c\u4f46\u6392\u9664\u9759\u6001\u8d44\u6e90\uff08\u56fe\u7247\u3001CSS \u7b49\uff09\u4ee5\u514d\u8bef\u5c01\u3002
\nsudo nano /etc/fail2ban/filter.d/nginx-cc.conf\n\n[Definition]\nfailregex = ^<HOST> - - .* \"(GET|POST|HEAD).*HTTP.*\" .*$\n# \u5ffd\u7565\u56fe\u7247\u3001CSS \u3001JS \u7b49\u9759\u6001\u8d44\u6e90\nignoregex = \\.(jpg|jpeg|png|gif|ico|css|js|woff|woff2|ttf|svg|mp4|webm) HTTP\n\njail.local\uff09\u8fd9\u662f Host \u6a21\u5f0f\u4e0e Bridge \u6a21\u5f0f\u6700\u5927\u7684\u533a\u522b\u70b9\u3002**Host \u6a21\u5f0f\u4e0b\uff0c\u6211\u4eec\u4e0d\u9700\u8981\u6307\u5b9a chain = DOCKER-USER**\u3002
sudo nano /etc/fail2ban/jail.local\n\n[DEFAULT]\n# \u767d\u540d\u5355 IP\uff1a\u5373\u4f7f\u8fd9\u4e9b IP \u89e6\u53d1\u89c4\u5219\u4e5f\u4e0d\u4f1a\u88ab\u5c01\n# \u5efa\u8bae\u52a0\u4e0a localhost\nignoreip = 127.0.0.1/8 192.168.0.0/16 10.0.0.0/8\n\n# \u9ed8\u8ba4\u5c01\u7981\u65f6\u95f4\uff1a1 \u5c0f\u65f6\nbantime = 1h\n# \u67e5\u627e\u65f6\u95f4\u7a97\u53e3\uff1a10 \u5206\u949f\nfindtime = 10m\n# \u6700\u5927\u5c1d\u8bd5\u6b21\u6570\uff1a5 \u6b21\nmaxretry = 5\n\n# --- Host \u6a21\u5f0f\u52a8\u4f5c\u914d\u7f6e ---\n# \u76f4\u63a5\u4f7f\u7528\u6807\u51c6 iptables-multiport \u5373\u53ef\uff0c\u65e0\u9700\u6307\u5b9a chain\nbanaction = iptables-multiport\n\n# ==========================================\n# \u89c4\u5219 1\uff1a\u9632\u6b62\u6076\u610f\u626b\u63cf\n# ==========================================\n[nginx-bad-request]\nenabled = true\nlogpath = /root/nginx/log/access.log\nfilter = nginx-bad-request\nport = 80,443\nmaxretry = 3\nbantime = 24h\n\n# ==========================================\n# \u89c4\u5219 2\uff1a\u9632\u6b62 CC \u653b\u51fb\n# ==========================================\n[nginx-cc]\nenabled = true\nlogpath = /root/nginx/log/access.log\nfilter = nginx-cc\nport = 80,443\nfindtime = 60\n# \u5141\u8bb8\u6bcf\u5206\u949f 120 \u6b21\u975e\u9759\u6001\u8d44\u6e90\u8bf7\u6c42\nmaxretry = 120\nbantime = 2h\n\nsudo systemctl restart fail2ban\n\nsudo fail2ban-client status\n\n\u5e94\u770b\u5230\u4ee5\u4e0b\u4e24\u4e2a\u76d1\u72f1\u5904\u4e8e\u6d3b\u52a8\u72b6\u6001\uff1a
\nnginx-bad-requestnginx-cc\u68c0\u67e5 INPUT \u94fe\uff08 Host \u6a21\u5f0f\u8d70\u8fd9\u91cc\uff09\uff1a
\nsudo iptables -L INPUT -n\n\n\u786e\u8ba4\u89c4\u5219\u4e2d\u51fa\u73b0\u9488\u5bf9\u76ee\u6807 IP \u7684 DROP \u6216 REJECT \u8bb0\u5f55\uff0c\u8868\u793a\u5c01\u7981\u751f\u6548\u3002
\u2705 \u5b8c\u6210\uff01
\n\u60a8\u7684 Nginx \u5bb9\u5668\u5df2\u5728 Host \u6a21\u5f0f\u4e0b\u6210\u529f\u96c6\u6210 Fail2Ban \uff0c\u5177\u5907\u62b5\u5fa1\u6076\u610f\u626b\u63cf\u4e0e CC \u653b\u51fb\u7684\u80fd\u529b\u3002
\u5f88\u591a\u5e74\u6ca1\u53bb\u80af\u5fb7\u57fa\u4e86\uff0c\u8bb0\u5f97\u4ee5\u524d\u662f\u6765\u4e00\u4e2a\u987e\u5ba2\uff0c\u4e00\u4e2a\u670d\u52a1\u5458\u8981\u8d1f\u8d23\u4ece\u70b9\u5355\u3001\u652f\u4ed8\u5230\u7ed9\u9910\u7684\u5168\u90e8\u6d41\u7a0b\u4e4b\u540e\u624d\u670d\u52a1\u4e0b\u4e00\u4e2a\u987e\u5ba2\uff0c\u6548\u7387\u6781\u5176\u4f4e\u4e0b\uff0c\u4e0d\u77e5\u9053\u73b0\u5728\u53d8\u4e86\u6ca1\u6709
\n" }, { "author": { "url": "member/yaocf", "name": "yaocf", "avatar": "https://cdn.v2ex.com/avatar/9297/ff2d/465954_large.png?m=1737011357" }, "url": "t/1160074", "date_modified": "2025-09-18T01:04:19+00:00", "content_html": "\u5f88\u4e45\u4e4b\u524d\u770b\u5230\u7684\u4e00\u4e2a\u6709\u610f\u601d\u7684\u955c\u50cf\u7ad9\uff0c\u628a\u88ab\u4ee3\u7406\u5730\u5740\u653e\u5230\u4e86 url \u53c2\u6570\u4e2d\uff0c\u56e0\u6b64\u53ef\u4ee5\u540c\u65f6\u955c\u50cf\u591a\u4e2a\u7f51\u7ad9\u3002\u5b83\u7684 url \u7c7b\u4f3c\u4e8e\uff08\u670d\u52a1\u5f88\u4e45\u4e4b\u524d\u5c31\u5df2\u7ecf\u8bbf\u95ee\u4e0d\u4e86\u4e86\uff09\uff1a\nhttps://oracleusa.ml/-----https://www.google.com/
\n\u60f3\u8bf7\u95ee\u6709\u6ca1\u6709\u7c7b\u4f3c\u7684\u9879\u76ee\u53ef\u4ee5\u63a8\u8350\u4e00\u4e0b\u7684\uff1f\u60f3\u90e8\u7f72\u4e00\u4e2a\u770b\u770b\u3002
\n\u6216\u8005\u8fd9\u7c7b\u670d\u52a1\u8be5\u7528\u4ec0\u4e48\u5173\u952e\u8bcd\u641c\uff1f
\n\u611f\u89c9\u6709\u70b9\u50cf\u865a\u62df\u6d4f\u89c8\u5668\u4e86\u90fd\u3002
\n", "date_published": "2025-09-18T01:02:54+00:00", "title": "oracleusa.ml \u7684\u5b9e\u73b0\u539f\u7406", "id": "t/1160074" }, { "author": { "url": "member/puremaker", "name": "puremaker", "avatar": "https://cdn.v2ex.com/avatar/cc2d/7de5/647810_large.png?m=1754989837" }, "url": "t/1158023", "title": "\u5c1d\u8bd5\u81ea\u5df1\u914d\u7f6e\u8f6c\u53d1\u540e\u7aef\u8bf7\u6c42\u7684\u65f6\u5019\u6709\u4e2a\u7591\u95ee", "id": "t/1158023", "date_published": "2025-09-09T06:39:16+00:00", "content_html": "\u9996\u5148\u8fd9\u4e2a\u662f\u524d\u7aef\u9879\u76ee\u9875\u9762\u7684\u914d\u7f6e\uff0c\u6ca1\u5565\u95ee\u9898\uff0c
\nlocation / {\n root /home/party_game/dist; # \u8bbf\u95ee\u6839\u76ee\u5f55\n index index.html index.htm; # \u5165\u53e3\u6587\u4ef6\n try_files $uri $uri/ /index.html;\n }\n\n\u7136\u540e\u6b63\u5e38\u60c5\u51b5\u8f6c\u53d1\u540e\u7aef\u8bf7\u6c42\u5e94\u5728\u518d\u5199\u4e00\u4e2a location \u62e6\u622a\uff0c\u4e5f\u5c31\u662f\u8fd9\u6837
\nlocation /api {\n proxy_pass http://localhost:60101;\n }\n\n\u770b\u7740\u4e5f\u6ca1\u5565\u95ee\u9898\u662f\u5427\uff1f\u4f46\u662f\u9707\u60ca\u6211\u7684\u662f\uff0c\u6211\u5728\u524d\u7aef\u9879\u76ee\u548c\u540e\u7aef\u9879\u76ee\u91cc\u914d\u7f6e\u7684\u8bf7\u6c42\u5730\u5740\u524d\u7f00\u90fd\u662f pgApi \uff08\u4f8b\uff1a http://localhost:60101/pgApi/auth/login \uff09\uff0c\u5982\u6b64\u6211\u53c8\u5c1d\u8bd5\u4e86\u628a\u8bf7\u6c42\u62e6\u622a\u6362\u6210\u4e86
\nlocation /abc {\n proxy_pass http://localhost:60101;\n }\n\u6216\u8005\nlocation /xxxx {\n proxy_pass http://localhost:60101;\n }\n\n\u4f46\u662f nginx \u90fd\u80fd\u628a\u524d\u7aef\u8bf7\u6c42\u6b63\u5e38\u7684\u8f6c\u53d1\u5230\u540e\u7aef\u670d\u52a1\u4e0a\uff0c\u8fd9\u4e2a\u662f\u4e3a\u4ec0\u4e48\u5440\uff1f\n\u6709\u70b9\u65e0\u6cd5\u7406\u89e3\u8fd9\u90e8\u5206\u539f\u7406\uff0c\u7f51\u4e0a\u4e5f\u6ca1\u6709\u641c\u5230\u6bd4\u8f83\u7b26\u5408\u6211\u95ee\u9898\u7684\u7b54\u6848\uff0c\u7279\u6765\u8bf7\u6559
\n" }, { "author": { "url": "member/fhrui0706", "name": "fhrui0706", "avatar": "https://cdn.v2ex.com/gravatar/dfb33a297aa3454793b3ee4818d22381?s=73&d=retro" }, "url": "t/1150489", "date_modified": "2025-08-06T13:26:04+00:00", "content_html": "\u8bf7\u6559 Nginx \u65f6\u5b8c\u6574\u7684 SSL \u5237\u65b0\u6559\u7a0b\u6216\u8005\u811a\u672c,\u4f8b\u5982\u8bc1\u4e66\u5df2\u7ecf\u7533\u8bf7,\u524d\u8f88\u4e00\u822c\u662f\u600e\u4e48\u505a\u7684
\n", "date_published": "2025-08-06T13:24:38+00:00", "title": "\u8bf7\u6559 Nginx \u65f6\u5b8c\u6574\u7684 SSL \u5237\u65b0\u6559\u7a0b\u6216\u8005\u811a\u672c", "id": "t/1150489" }, { "author": { "url": "member/deqiying", "name": "deqiying", "avatar": "https://cdn.v2ex.com/avatar/a7c6/89dd/722796_large.png?m=1753358764" }, "url": "t/1149876", "date_modified": "2025-08-04T12:07:39+00:00", "content_html": "\u5927\u5bb6\u90fd\u7528\u4ec0\u4e48\u65b9\u6848\u6536\u96c6 nginx \u65e5\u5fd7\u548c\u5206\u9879\u76ee\u6570\u636e\u7edf\u8ba1\uff1f\u5982\u4e0b\u4e00\u4e2a\u6700\u7b80\u5316\u7684\u53cd\u4ee3\u914d\u7f6e\uff0c\u5c06\u672c\u5730 80/443 \u7aef\u53e3\u7684 /git/ \u53cd\u4ee3\u5230\u672c\u5730\u5bb9\u5668\u7684 8085 \u7aef\u53e3\u3002
\n\u8bbf\u95ee 127.0.0.1/git/ \u6210\u529f\u8df3\u8f6c\u5230 8085 \u7aef\u53e3\u5bb9\u5668\u7684 web \u9875\u9762\uff0c\u4f46\u662f\u53d1\u73b0\u6709\u8bf8\u591a\u95ee\u9898\uff1a
\n\u7c7b\u4f3c\u8fd9\u79cd\u4e8c\u7ea7\u76ee\u5f55\u7684\u53cd\u5411\u4ee3\u7406\uff0c\u662f\u4e0d\u662f\u5929\u7136\u6709\u7f3a\u9677\uff0c\u6ca1\u529e\u6cd5\u50cf \u4e8c\u7ea7\u57df\u540d \u6216 \u4e09\u7ea7\u57df\u540d \u53cd\u4ee3\u90a3\u6837\u5b8c\u7f8e\u5b9e\u73b0\uff1f
\n\u6ce8\uff1a
\nlocation /git/ {\n proxy_http_version 1.1;\n proxy_pass http://192.168.1.13:8085/;\n}\n\n", "date_published": "2025-08-04T04:29:16+00:00", "title": "nginx \u4e8c\u7ea7\u76ee\u5f55\u53cd\u5411\u4ee3\u7406\u662f\u4e0d\u662f\u6709\u5148\u5929\u7f3a\u9677\uff1f", "id": "t/1149767" }, { "author": { "url": "member/kyonn", "name": "kyonn", "avatar": "https://cdn.v2ex.com/gravatar/6c215bea43d005953fda6f3192806fd3?s=73&d=retro" }, "url": "t/1149519", "date_modified": "2025-08-03T14:41:05+00:00", "content_html": "\u624b\u5934\u6ca1\u6709\u73b0\u6210\u7684\u6d4b\u8bd5\u73af\u5883\uff0cAI \u7684\u56de\u7b54\u611f\u89c9\u4e5f\u4e0d\u592a\u9760\u8c31\uff0c\u54a8\u8be2\u4e0b V \u53cb \u5173\u4e8e nginx rewrite \u6307\u4ee4\u7684\u95ee\u9898\uff1a
\n\u4e00\u3001rewrite \u6307\u4ee4\u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u662f\u90e8\u5206\u5339\u914d\u8fd8\u662f\u5b8c\u5168\u5339\u914d\u624d\u751f\u6548\uff1f
\n\u6bd4\u5982\u4e0b\u9762\u7684\u914d\u7f6e\u4e2d\uff0c\u8bf7\u6c42 /name/jane-lotus \u80af\u5b9a\u4f1a\u89e6\u53d1 rewrite \u6307\u4ee4\uff0c\u6700\u7ec8\u8bf7\u6c42\u5730\u5740\u4e3a http://user-center/users?name=jane-lotus \u3002
\n\u90a3\u4e48\u8bf7\u6c42 /name/regions/bbb \u4f1a\u4e0d\u4f1a\u89e6\u53d1 rewrite \u7684 URI \u66ff\u6362\uff1f\u6700\u7ec8\u8bf7\u6c42\u5730\u5740\u662f\u591a\u5c11\uff1f
\n\u8fd9\u7bc7\u6587\u7ae0\u8bf4\u4e0d\u4f1a\u89e6\u53d1 rewrite \uff0cAI \u7684\u56de\u7b54\u662f\u4f1a\u89e6\u53d1 rewrite \u3002
\nlocation /name/ {\n rewrite /name/([^/]+) /users?name=$1 break;\n proxy_passs http://user-center/main/basicinfo/;\n}\n\n\u4e8c\u3001\u8fd8\u662f\u4e0a\u9762\u7684\u914d\u7f6e\uff0c\u5047\u5982\u539f\u59cb\u8bf7\u6c42\u91cc\u5e26\u4e86\u67e5\u8be2\u53c2\u6570\uff0c\u90a3\u4e48\u89e6\u53d1 rewrite \u540e\u4f1a\u4e0d\u4f1a\u628a\u539f\u59cb\u8bf7\u6c42\u53c2\u6570\u4e5f\u8ffd\u52a0\u7ed9\u65b0\u7684\u8bf7\u6c42\u5730\u5740\uff1f rewrite \u65b0\u76ee\u6807\u91cc\u6709\u6ca1\u6709\u65b0\u7684\u67e5\u8be2\u53c2\u6570\u662f\u5426\u4f1a\u5f71\u54cd\u8001\u7684\u67e5\u8be2\u53c2\u6570\u8ffd\u52a0\u5230\u6700\u7ec8\u8bf7\u6c42\u91cc\uff1f
\n\u4e09\u3001\u662f\u5426\u6709\u6bd4\u8f83\u7cfb\u7edf\u7684 nginx \u914d\u7f6e\u6559\u7a0b\u63a8\u8350\u6216\u8005\u6a21\u62df\u6d4b\u8bd5\u73af\u5883\u9a8c\u8bc1 nginx \u8be6\u7ec6\u6267\u884c\u8fc7\u7a0b\u7684\u65b9\u6cd5\uff1f
\n", "date_published": "2025-08-02T14:04:33+00:00", "title": "nginx rewrite \u6307\u4ee4\u7684\u95ee\u9898", "id": "t/1149519" }, { "author": { "url": "member/kyonn", "name": "kyonn", "avatar": "https://cdn.v2ex.com/gravatar/6c215bea43d005953fda6f3192806fd3?s=73&d=retro" }, "url": "t/1149311", "date_modified": "2025-08-02T11:26:27+00:00", "content_html": "\u6284\u6765\u7684 nginx \u914d\u7f6e\uff0c\u7b2c 1 \u4e2a location \u7684\u6b63\u5219\u8868\u8fbe\u5f0f\u4e0d\u592a\u786e\u5b9a\u662f\u5426\u6b63\u786e\u3002\u6309\u7167 AI \u7684\u89e3\u7b54\uff0c\u7528\u4e8e\u5339\u914d\u4e0b\u9762\u8fd9\u51e0\u79cd\u8def\u5f84\u3002\u5b9e\u6d4b\u4e0b\u6765\uff0chttp git clone \u4e5f\u662f\u5931\u8d25\u7684\uff0c\u672a\u5339\u914d\u7b2c 1 \u4e2a location \u3002\u6709\u51e0\u4e2a\u7591\u70b9\uff1a
\n\nlocation ~ \"(?x)^/git(?<path>/.*/(?:HEAD '\n info/refs '\n objects/(?:info/[^/]+ '\n [0-9a-f]{2}/[0-9a-f]{38} '\n pack/pack-[0-9a-f]{40}\\.(?:pack '\n idx)) '\n git-upload-pack))$\" {\n error_page 491 = @auth;\n if ($query_string = service=git-receive-pack) {\n return 491;\n }\n client_max_body_size 0;\n\n fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;\n include fastcgi_params;\n fastcgi_param GIT_HTTP_EXPORT_ALL \"\";\n fastcgi_param GIT_PROJECT_ROOT /srv/git;\n fastcgi_param PATH_INFO $path;\n\n fastcgi_param REMOTE_USER $remote_user;\n fastcgi_pass unix:/var/run/fcgiwrap.socket;\n}\nlocation ~ \"^/git(?<path>/.*/git-receive-pack)$\" {\n error_page 491 = @auth;\n return 491;\n}\nlocation @auth {\n auth_basic \"Git write access\";\n auth_basic_user_file /srv/git/.htpasswd;\n\n client_max_body_size 0;\n\n fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;\n include fastcgi_params;\n fastcgi_param GIT_HTTP_EXPORT_ALL \"\";\n fastcgi_param GIT_PROJECT_ROOT /srv/git;\n fastcgi_param PATH_INFO $path;\n\n fastcgi_param REMOTE_USER $remote_user;\n fastcgi_pass unix:/var/run/fcgiwrap.socket;\n}\nlocation ~ ^/git(?<path>/.*)$ {\n alias /usr/share/cgit;\n try_files $1 @cgit;\n}\nlocation @cgit {\n include fastcgi_params;\n fastcgi_param SCRIPT_FILENAME /usr/lib/cgit/cgit.cgi;\n fastcgi_param PATH_INFO $path;\n fastcgi_param QUERY_STRING $args;\n fastcgi_param HTTP_HOST $server_name;\n\n fastcgi_param CGIT_CONFIG /srv/git/.cgitrc;\n\n fastcgi_pass unix:/var/run/fcgiwrap.socket;\n}\n\n", "date_published": "2025-08-01T07:44:12+00:00", "title": "\u95ee\u4e2a nginx \u914d\u7f6e\u95ee\u9898", "id": "t/1149311" }, { "author": { "url": "member/zhazhibao", "name": "zhazhibao", "avatar": "https://cdn.v2ex.com/gravatar/4cbf0bd1aef4d56fb9bb3fb2577f82e8?s=73&d=retro" }, "url": "t/1140901", "title": "\u8bf7\u95ee\u4e0b\u4e3a\u5565\u5fae\u4fe1\u5ba2\u6237\u7aef\u8bbf\u95ee\u5230 nginx \u6ca1\u6709\u53c2\u6570\u4e86\uff1f", "id": "t/1140901", "date_published": "2025-06-25T04:40:11+00:00", "content_html": "\u4f8b\u5982\u5fae\u4fe1 APP \u4e2d\u70b9\u51fb a.cn/10003 \uff0c\u5230 nginx \u5c42\u6ca1\u6709\u4e86 10003 \u53c2\u6570\uff1f
\n" }, { "author": { "url": "member/baalchina", "name": "baalchina", "avatar": "https://cdn.v2ex.com/gravatar/80835c340888c4974dea3bdbfedf22f5?s=73&d=retro" }, "url": "t/1131690", "title": "\u6709\u5144\u5f1f\u4eec\u7528 nginx proxy manager\uff08\u6216\u8005\u5176\u4ed6\u56fe\u5f62\u5316\u5de5\u5177\uff09\u6765\u7ba1\u7406 nginx \u53cd\u5411\u4ee3\u7406\u7684\u5417\uff1f", "id": "t/1131690", "date_published": "2025-05-14T06:05:35+00:00", "content_html": "\u6709\u5144\u5f1f\u4eec\u7528 nginx proxy manager \uff08\u6216\u8005\u5176\u4ed6\u56fe\u5f62\u5316\u5de5\u5177\uff09\u6765\u7ba1\u7406 nginx \u53cd\u5411\u4ee3\u7406\u7684\u5417\uff1f
\n\u6211\u4eec\u7684\u4e3b\u8981\u9700\u6c42\u662f\u53cd\u5411\u4ee3\u7406\uff0c\u73b0\u5728\u7528 nginx \u5728\u8dd1\u3002\u56e0\u4e3a\u65e5\u5e38\u8fd0\u7ef4\u7684\u540c\u4e8b\u5bf9\u547d\u4ee4\u884c\u4e0d\u592a\u719f\uff0c\u64cd\u4f5c\u4e5f\u9ebb\u70e6\uff0c\u60f3\u901a\u8fc7 gui \u5de5\u5177\u6765\u8fdb\u884c\u7ba1\u7406\uff0c\u56e0\u4e3a\u4e4b\u524d\u9047\u5230\u8fc7\u597d\u51e0\u6b21\u547d\u4ee4\u884c\u64cd\u4f5c\u5931\u8d25\u4e0d\u5c0f\u5fc3\u6539\u9519\u4e86\u3002
\n\u73b0\u5728\u4e3b\u8981\u62c5\u5fc3\u7684\u662f\u7b2c\u4e00\u4e2a npm \u597d\u50cf\u5185\u7f6e\u4e86 openresty \uff0c\u4f3c\u4e4e\u5355\u72ec\u5347\u7ea7\u90fd\u4e0d\u662f\u592a\u65b9\u4fbf\u3002\u7b2c\u4e8c\u8fd9\u4e2a\u4e1c\u897f\u6bd5\u7adf\u5957\u4e86\u4e00\u5c42 docker \u5bb9\u5668\uff0c\u4e0d\u77e5\u9053\u7a33\u5b9a\u6027\u5982\u4f55\uff0c\u4e07\u4e00\u5d29\u4e86\u4e0d\u50cf\u666e\u901a nginx \u90a3\u4e48\u5bb9\u6613\u6062\u590d\u3002
\n\u6216\u8005\u6709\u5176\u4ed6\u7c7b\u4f3c\u7684\u5de5\u5177\u53ef\u4ee5\u63a8\u8350\u4e0d\uff1f\u4e3b\u8981\u9700\u6c42\u5176\u5b9e\u5c31\u662f\u901a\u8fc7 gui \u754c\u9762\uff0c\u80fd\u51cf\u5c11\u65e5\u5e38\u914d\u7f6e\u7684\u5de5\u4f5c\u590d\u6742\u5ea6\u548c\u51fa\u9519\u51e0\u7387\u3002
\n\u8c22\u8c22\uff01
\n" }, { "author": { "url": "member/whereFly", "name": "whereFly", "avatar": "https://cdn.v2ex.com/avatar/e4ca/b6f3/469885_large.png?m=1743487710" }, "url": "t/1122559", "title": "\u8bf7\u95ee Nginx \u600e\u4e48\u6dfb\u52a0 CORS \u767d\u540d\u5355\uff1f", "id": "t/1122559", "date_published": "2025-04-01T06:06:42+00:00", "content_html": "\u6bd4\u5982 a.com \u4e0b\u7684\u56fe\u7247\u3001js \u6587\u4ef6\u7b49\u7b49\uff0c\u53ea\u5141\u8bb8 b.com \u3001c.com \u8c03\u7528\u3002\n\u5176\u4ed6\u57df\u540d\u8c03\u7528\u7684\u8bdd\u5c31\u663e\u793a 404 \u6216\u8005 403 \u3002
\n" }, { "author": { "url": "member/vincentWdp", "name": "vincentWdp", "avatar": "https://cdn.v2ex.com/gravatar/e8f4a89b48b07934dd9196059a252ed2?s=73&d=retro" }, "url": "t/1120174", "date_modified": "2025-03-21T08:15:28+00:00", "content_html": "\u5148\u53e0\u7532: \u6211\u662f\u4e1a\u4f59\u8fd0\u7ef4.
\n\u6628\u5929, \u5728\u5b9d\u5854\u4e0a\u5bf9\u7ebf\u4e0a\u670d\u52a1 A \u4fee\u6539 proxy_pass, \u7aef\u53e3\u4ece 7511 \u6539\u6210 7501:
\nlocation / { \n proxy_pass http://localhost:7501; \n}\n\n\u66f4\u65b0\u914d\u7f6e\u540e, \u9519\u8bef\u65e5\u5fd7\u663e\u793a upstream \u4f9d\u65e7\u662f 127.0.0.1:7511, \u8be2\u95ee AI, \u53cd\u590d\u6298\u817e\u540e, \u4f9d\u65e7\u6ca1\u80fd\u89e3\u51b3. \u4f46\u5728\u6b64\u671f\u95f4, \u6ca1\u6709\u4efb\u4f55\u62a5\u9519, \u5305\u62ec\u5728\u5b9d\u5854\u4e0a\u4fdd\u5b58\u914d\u7f6e, \u5728\u670d\u52a1\u5668\u4e0a nginx -t, nginx -s reload, nginx -T \u7b49.
\n\u63a8\u6d4b\u914d\u7f6e\u88ab\u7f13\u5b58\u4e86, \u4f46\u4e3a\u4ec0\u4e48\u88ab\u7f13\u5b58, \u4e0d\u6e05\u695a. \u53ea\u80fd\u5148\u91cd\u542f nginx \u628a\u670d\u52a1\u641e\u4e0a\u7ebf.
\n\u91cd\u542f\u4e4b\u524d\u5c31\u9690\u9690\u89c9\u5f97\u8fd9\u6b21\u91cd\u542f\u80af\u5b9a\u4e0d\u987a\u5229, \u6bd5\u7adf nginx -s reload \u6ca1\u6709\u751f\u6548, \u6709\u4e9b\u5730\u65b9\u80af\u5b9a\u6709\u95ee\u9898. \u679c\u7136\u62a5\u9519: 7503 \u7aef\u53e3\u88ab\u5360\u7528, nginx \u65e0\u6cd5\u542f\u52a8.
\n\u6211\u77ac\u95f4\u5c31\u614c\u4e86, \u5728\u505a\u4e86\u4e24\u6b21\u65e0\u6548\u91cd\u590d\u540e, \u7406\u667a\u56de\u6765\u4e86: nginx -T \u67e5\u51fa 7503 \u5728\u670d\u52a1 B \u7684\u914d\u7f6e\u6587\u4ef6, \u679c\u65ad\u6ce8\u91ca\u90a3\u4e00\u884c\u7136\u540e\u6210\u529f\u542f\u52a8 nginx, \u7ebf\u4e0a\u670d\u52a1\u6062\u590d, \u670d\u52a1 A \u4e5f\u6b63\u5e38\u4e86.
\n7503 \u7aef\u53e3\u672c\u8eab\u5c31\u88ab\u4e00\u4e2a next.js \u9879\u76ee\u5360\u7528, \u4f46\u4e0d\u77e5\u9053\u4e3a\u4ec0\u4e48\u8fd8\u8981\u5199\u5230 nginx \u914d\u7f6e\u6587\u4ef6, \u53ea\u80fd\u8ba4\u4e3a\u4e0d\u4f1a nginx. \u95ee\u4e86\u524d\u7aef\u8d1f\u8d23\u4eba, \u5230\u73b0\u5728\u4e5f\u6ca1\u56de\u6211~~
\nnginx version: nginx/1.20.2
\n", "date_published": "2025-03-21T08:11:50+00:00", "title": "\u4f7f\u7528 nginx \u76d1\u542c\u5df2\u88ab\u76d1\u542c\u7684\u7aef\u53e3, reload \u4e0d\u4f1a\u5931\u8d25, \u4f46\u4f1a\u5bfc\u81f4\u5176\u4ed6\u914d\u7f6e\u4e0d\u751f\u6548.", "id": "t/1120174" }, { "author": { "url": "member/a33291", "name": "a33291", "avatar": "https://cdn.v2ex.com/avatar/e29e/fd46/582789_large.png?m=1752114948" }, "url": "t/1120024", "date_modified": "2025-03-21T01:25:55+00:00", "content_html": "\u4ee5\u8fd9\u4e2a\u914d\u7f6e\u4e3a\u4f8b\u4f7f\u7528 nginx \u7684\u56db\u5c42\u4ee3\u7406\u76d1\u542c 443 \u7aef\u53e3\uff0c\u53cd\u4ee3\u540e\u7aef 6443 \u7aef\u53e3\u7ad9\u70b9\u3002\n\u901a\u8fc7http2\u53ef\u4ee5\u6b63\u5e38\u83b7\u53d6\u5230\u5ba2\u6237\u7aef IP \uff0c\u901a\u8fc7 h3quic\u8fde\u63a5\u5219\u65e0\u6cd5\u83b7\u53d6\u5230\u771f\u5b9e\u7684\u5ba2\u6237\u7aef IP \uff0c\u53ea\u80fd\u83b7\u53d6\u5230 127.0.0.1 \u3002
\u8bf7\u95ee\u5404\u4f4d\u5927\u4f6c\uff0c\u5728\u4fdd\u6301\u4f7f\u7528\u56db\u5c42\u53cd\u4ee3\u7684\u524d\u63d0\u4e0b\uff0c\u5982\u4f55\u914d\u7f6e\u53ef\u4ee5\u901a\u8fc7quic\u83b7\u53d6\u5230\u5ba2\u6237\u7aef IP \u3002
REMOTE_ADDR: 127.0.0.1\nHTTP_CLIENT_IP: \u672a\u8bbe\u7f6e\nHTTP_X_FORWARDED_FOR: \u672a\u8bbe\u7f6e\nHTTP_X_REAL_IP: \u672a\u8bbe\u7f6e\nHTTP_FORWARDED: \u672a\u8bbe\u7f6e\nHTTP_FORWARDED_FOR: \u672a\u8bbe\u7f6e\nHTTP_X_FORWARDED: \u672a\u8bbe\u7f6e\n\nmap $ssl_preread_server_name $name {\n default default_backend;\n}\n\nupstream default_backend {\n server 127.0.0.1:6443; # \u7ad9\u70b9\n}\n\nserver {\n listen 443 reuseport;\n listen 443 udp reuseport;\n proxy_pass $name;\n ssl_preread on;\n proxy_protocol on;\n}\n\nserver\n{\n listen 80;\n listen 6443 ssl proxy_protocol ;\n listen 6443 quic reuseport;\n\t\t\n http2 on;\n server_name abc.com www.abc.com;\n \n index index.php index.html;\n root /wwwroot/abc.com;\n \n set_real_ip_from 127.0.0.1;\n real_ip_header proxy_protocol;\n \n ...\n}\n\n" }, { "author": { "url": "member/simple2025", "name": "simple2025", "avatar": "https://cdn.v2ex.com/gravatar/d8be1ee891483e0287a7350aae996608?s=73&d=retro" }, "url": "t/1117051", "date_modified": "2025-03-09T08:50:30+00:00", "content_html": "\u73b0\u5728\u6211\u6709\u4e00\u4e2a\u7b14\u8bb0\u672c,\u91cc\u9762\u6709\u4e2a\u865a\u62df\u673a,\u865a\u62df\u673a\u91cc\u9762\u90e8\u7f72\u4e86\u6211\u7684 sphinx \u6587\u6863.
\n\u7136\u540e\u5728\u5916\u9762\u7b14\u8bb0\u672c windows \u7cfb\u7edf\u4e0a\u9762\u542f\u52a8 nginx,\u53cd\u4ee3\u865a\u62df\u673a\u7684 sphinx \u6587\u6863\u7ad9\u70b9.
\n\u7136\u540e\u6211\u7b14\u8bb0\u672c\u5f00\u673a\u4f1a\u81ea\u52a8\u542f\u52a8\u865a\u62df\u673a,nginx.
\n\u73b0\u5728\u95ee\u9898\u6765\u4e86,\u6211\u7b14\u8bb0\u672c\u91cd\u542f,\u865a\u62df\u673a\u4e5f\u91cd\u542f\u597d\u4e86,
\n\u6211\u5728\u53f0\u5f0f\u673a\u4e0a\u8bbf\u95ee nginx \u7684\u53cd\u4ee3\u7684 sphinx \u6587\u6863\u7ad9\u70b9,\u63d0\u793a 502?\u4e00\u5b9a\u8981\u6211\u53bb\u628a nginx \u518d\u91cd\u542f\u4e00\u4e0b,502 \u624d\u6d88,\n\u8fd9\u79cd\u95ee\u9898\u600e\u4e48\u89e3\u51b3?
\n\u8fd8\u6709\u4e00\u4e2a\u95ee\u9898,\u6211\u7b14\u8bb0\u672c\u91cd\u542f\u540e,\u6709\u65f6\u5019\u4e00\u6bb5\u65f6\u95f4\u540e\u4f1a\u9677\u5165\u9ed1\u5c4f\u72b6\u6001,\u4f46\u662f\u6211\u660e\u660e\u8bbe\u7f6e\u4e86\u7535\u6e90\u72b6\u6001\u4e3a\u4e0d\u9ed1\u5c4f\u554a?\n\u8fd9\u79cd\u95ee\u9898\u53c8\u5982\u4f55\u89e3?
\n", "date_published": "2025-03-09T08:08:15+00:00", "title": "\u5173\u4e8e windows \u4e0b\u9762\u91cd\u542f\u4e4b\u540e nginx \u7684\u95ee\u9898", "id": "t/1117051" }, { "author": { "url": "member/Gnepre", "name": "Gnepre", "avatar": "https://cdn.v2ex.com/gravatar/02eb6cf12ab2a87843e0f015d95964b4?s=73&d=retro" }, "url": "t/1114042", "title": "\u6211\u662f\u4e0d\u662f\u53ef\u4ee5\u53cd\u5411\u4ee3\u7406\u4e2a V2EX \u7f51\u7ad9?", "id": "t/1114042", "date_published": "2025-02-25T03:16:39+00:00", "content_html": "\u8bf7\u6559\u5927\u4f6c\u4eec\u4e2a\u95ee\u9898\u540c\u6837\u7684\u914d\u7f6e openai \u548c claude \u5c31\u6ca1\u95ee\u9898\uff1a
\n\nlocation /xai {\n proxy_pass https://api.x.ai/;\n proxy_ssl_server_name on;\n proxy_set_header Host api.x.ai;\n proxy_set_header Connection '';\n proxy_http_version 1.1;\n chunked_transfer_encoding off;\n proxy_buffering off;\n proxy_cache off; \n proxy_set_header X-Forwarded-For $remote_addr;\n proxy_set_header X-Forwarded-Proto $scheme;\n}\n\n\n\u8bf7\u6c42\uff1a
\nhttps://chat.xxxxx.com/xai/v1/chat/completions
\n\u62a5\u9519\uff1a
\n{\n \"code\": \"Some requested entity was not found\",\n \"error\": \"No handler found on route. Please double check your URL and consult https://api.x.ai/docs for more information.\"\n}\n\n", "date_published": "2025-02-17T09:09:31+00:00", "title": "\u7528 nginx \u505a\u7684 xai \u7684\u8f6c\u53d1\u597d\u50cf\u4e00\u76f4\u6709\u95ee\u9898", "id": "t/1112077" }, { "author": { "url": "member/coolair", "name": "coolair", "avatar": "https://cdn.v2ex.com/avatar/c4fe/52ac/36118_large.png?m=1691894552" }, "url": "t/1110841", "date_modified": "2025-02-12T02:40:21+00:00", "content_html": "\u5728 Nginx \u914d\u7f6e\u4e86\u591a\u4e2a\u7ad9\u70b9\u7684\u60c5\u51b5\u4e0b\uff0c\u5982\u679c\u6709\u4e9b\u7ad9\u70b9\u6ca1\u6709\u542f\u7528 https \uff08\u4f7f\u7528\u4e86\u901a\u914d\u7b26\u8bc1\u4e66\uff09\uff0c\u800c\u6709\u4e9b\u542f\u7528\u4e86 https \u7684\u8bdd\u3002\u4ee5\u4e0b\u73af\u5883\u5747\u5728 docker \u4e2d\uff0cnginx \u7528 host network \u3002
\n\u6211\u73b0\u5728\u5728\u7528 Nginx \u4ee3\u7406\u4e00\u4e2a Fastapi \u5e94\u7528\uff0c\u4ece\u5c40\u57df\u7f51\u5185\u5176\u4ed6\u673a\u5668\u901a\u8fc7wrk\u76f4\u63a5\u538b\u6d4b\u540e\u7aef\u5e94\u7528\u7684\u4e00\u4e2a\u7b80\u5355\u8fd4\u56de\uff0c\u5728 8 \u6838 CPU \u4e0a\u6709 4w QPS \uff0c\u4f46\u901a\u8fc7 Nginx \u4ee3\u7406 Fastapi \u540e\uff0cQPS \u53ea\u6709\u79bb\u8c31\u7684 2-3k \uff0c\u6211\u770b\u540e\u7aef\u673a\u5668 CPU \u662f\u6ca1\u6709\u8dd1\u6ee1\u7684\uff0cNginx CPU \u53cd\u800c\u662f\u5360\u7528\u6ee1\u4e86\u3002
\u538b\u6d4b\u7ed3\u679c\uff1a
\n 2 threads and 200 connections\n Thread Stats Avg Stdev Max +/- Stdev\n Latency 115.25ms 86.47ms 712.60ms 45.32%\n Req/Sec 0.91k 1.01k 3.74k 87.67%\n 27096 requests in 15.02s, 9.25MB read\nRequests/sec: 1804.16\nTransfer/sec: 630.75KB\n\n\u4e0a\u9762\u64cd\u4f5c\u5747\u5728 3 \u53f0\u5c40\u57df\u7f51\u5185\u673a\u5668\uff0c\u5b9e\u9645\u4e0a\u5728 Nginx \u673a\u5668\u901a\u8fc7 curl \u8bbf\u95ee\u540e\u7aef\u4e5f\u53ea\u662f 2ms \u7684\u5ef6\u8fdf\uff0c\u8bf7\u6c42\u8fd9\u95ee\u9898\u662f\u51fa\u5728\u54ea\u513f\u4e86\u5462\uff1f Nginx \u4f7f\u7528\u7684\u662f\u9ed8\u8ba4\u914d\u7f6e\uff0c\u6ca1\u7ecf\u8fc7\u4f18\u5316\u3002
\n\u53e6\u5916\uff0c\u901a\u8fc7 docker \u90e8\u7f72 traefik \u53cd\u5411\u4ee3\u7406\u540e\u538b\u6d4b\uff0c\u540e\u7aef\u80fd\u6b63\u5e38\u8dd1\u6ee1 CPU \uff0c\u5ef6\u8fdf\u4e5f\u662f\u6b63\u5e38\u7684\u51e0\u6beb\u79d2\u4e4b\u5185\uff0c\u5c31\u662f traefik CPU \u5360\u7528\u4e5f\u633a\u5927\u7684\uff0c\u6309\u9053\u7406\u6765\u8bf4 Nginx \u6027\u80fd\u5e94\u8be5\u5f3a\u4e8e traefik \u5427\uff1f
\n\u8fd9\u4e2a\u95ee\u9898\u56f0\u6270\u4e86\u6211\u597d\u51e0\u5929\u4e86\uff0c\u95ee GPT Nginx \u4f18\u5316\u76f8\u5173\u7684\u4e5f\u53ea\u662f\u53cd\u590d\u56de\u7b54\u94fe\u63a5\u6570\u3001keep alive \u8fd9\u4e9b\uff0c\u90fd\u8bd5\u8fc7\u4e86\u6ca1\u4f5c\u7528\uff0c\u8bf7\u95ee\u5404\u4f4d\u5927\u54e5 Nginx \u5e94\u8be5\u600e\u4e48\u914d\u7f6e\u4f18\u5316\u5462\uff1f
\n" }, { "author": { "url": "member/exqibao", "name": "exqibao", "avatar": "https://cdn.v2ex.com/gravatar/1a4d90c901c0e40b30f1d50929ca7b36?s=73&d=retro" }, "url": "t/1104759", "date_modified": "2025-01-13T08:54:52+00:00", "content_html": "\u6839\u636e\u8bf7\u6c42\u5934\u5206\u53d1
\nloc: /aa ==> http://127.0.0.1:28080/aa
\npro: /aa ==> http://127.0.0.1:8011/api/
\n\u5176\u5b83: /aa ==> http://127.0.0.1:8022/api/
\n\u5927\u4f6c\u4eec\uff0c\u539f\u6765\u53ea\u6709 loc \u548c\u5176\u5b83\u4e00\u5207\u6b63\u5e38\uff0c\u52a0\u4e0a pro \u5c31\u4e0d\u884c\u4e86\uff0c\u5982\u4f55\u914d\u7f6e\u53ef\u4ee5\u5b9e\u73b0\u8fd9\u4e2a\u6548\u679c\u5417\uff1f\u4f3c\u4e4e if \u91cc\u9762 proxy_pass \u4e0d\u80fd\u6709/api/\u5730\u5740
\n\tlocation /aa {\n\t\tproxy_http_version 1.1;\n\t\tproxy_set_header Upgrade $http_upgrade;\n\t\tproxy_set_header Connection \"upgrade\";\n\t\tproxy_set_header X-real-ip $remote_addr;\n\t\tproxy_set_header X-Forwarded-For $remote_addr;\n\t\tif ($http_environment_name = \"loc\" ) {\n\t\t\tproxy_pass http://127.0.0.1:28080;\n\t\t\tbreak;\n\t\t}\n\t\tif ($http_environment_name = \"pro\" ) {\n\t\t\tproxy_pass http://127.0.0.1:8011/api/;\n\t\t\tbreak;\n\t\t}\n\t\tproxy_pass http://127.0.0.1:8022/api/;\n\t}\n\n", "date_published": "2025-01-13T08:46:39+00:00", "title": "nginx \u914d\u7f6e\u6839\u636e\u8bf7\u6c42\u5934\u5206\u53d1\u95ee\u9898", "id": "t/1104759" }, { "author": { "url": "member/kyonn", "name": "kyonn", "avatar": "https://cdn.v2ex.com/gravatar/6c215bea43d005953fda6f3192806fd3?s=73&d=retro" }, "url": "t/1104384", "date_modified": "2025-01-11T11:46:55+00:00", "content_html": "\u6700\u8fd1\u770b\u5230\u4e0d\u5c11 nginx-proxy-manager \u7684\u63a8\u8350, \u5b83\u80fd\u4e0d\u80fd\u652f\u6301 https://github.com/nginx-proxy/nginx-proxy \u63d0\u4f9b\u7684\u529f\u80fd, \u53ea\u8981\u5728\u5176\u4ed6 docker-compose.yml \u4e2d\u6307\u5b9a VIRTUAL_HOST \u548c VIRTUAL_PORT, \u5c31\u80fd\u4e8c\u7ea7\u57df\u540d\u53cd\u4ee3\u5230\u5176\u4ed6 docker, \u751a\u81f3\u662f\u53cd\u4ee3\u591a\u4e2a docker \u5185\u90e8\u7aef\u53e3.
\nnginx-proxy-manager \u76f8\u6bd4\u4e8e nginx-proxy \u6709\u4ec0\u4e48\u4f18\u52bf\u5417? nginx-proxy-manager \u80fd\u81ea\u52a8\u5e2e\u5176\u4ed6 docker \u53cd\u4ee3\u7aef\u53e3\u5417?
\n", "date_published": "2025-01-11T11:46:24+00:00", "title": "\u7528\u8fc7 nginx-proxy-manager \u8bf7\u8fdb, \u54a8\u8be2\u4e2a\u95ee\u9898.", "id": "t/1104384" }, { "author": { "url": "member/AndreasG", "name": "AndreasG", "avatar": "https://cdn.v2ex.com/gravatar/b7b9aaf89d0cd99e801151b80122904e?s=73&d=retro" }, "url": "t/1103834", "date_modified": "2025-01-09T03:16:00+00:00", "content_html": "\u6211\u73b0\u5728\u6709\u4e09\u4e2a\u5bb9\u5668\u5f00\u7740\uff0c\u8def\u7531\u5668\u5f00\u653e\u4e86\u4e09\u4e2a\u7aef\u53e3\uff0c\n\u6211\u60f3\u80fd\u4e0d\u80fd\u5f00\u653e\u4e00\u4e2a\u7aef\u53e3\u7528\u62fc\u63a5 url \u65b9\u5f0f\u8f6c\u53d1\u5230\u4e0d\u540c\u7684\u5185\u7f51\u670d\u52a1\u4e0b\uff0c
\nserver { \n listen 10086 ssl; \n server_name abc.com;\n location / { \n proxy_pass http://192.168.0.100:10086;\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 location /book { \n proxy_pass http://192.168.0.100:10010;\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\u7c7b\u4f3c\u8fd9\u6837\u914d\u7f6e\u4e86 nginx \u4e4b\u540e\n\u76f4\u63a5\u8bbf\u95ee abc.com:10086 \u7aef\u53e3\u8bbf\u95ee\u5168\u90e8\u6ca1\u95ee\u9898\n\u4f46\u662f\u8f6c\u53d1\u7684\u7b2c\u4e8c\u4e2a\u7aef\u53e3
\nabc.com:10086/book\n\n\u5e76\u4e0d\u80fd\u6210\u529f\u8f6c\u53d1\u5230 192.168.0.100:10010\n\u6d4f\u89c8\u5668\u8c03\u8bd5\u53d1\u73b0\u4f7f\u7528 abc.com:10086/book\n\u53d1\u51fa\u7684\u8bf7\u6c42\u4e2d\ncss js \u4e4b\u7c7b\u7684\u90fd\u662f
\nabc.com:10086/static/?.css\nabc.com:10086/static/?.js\n\n\u800c\u5e76\u6ca1\u6709\u5230
\nabc.com:10086/book/static/?.css\nabc.com:10086/book/static/?.js\n\n\u72b6\u6001\u90fd\u662f 404 \u4e86\n\u95ee\u4e86\u4e00\u4e0b gpt \u8bf4\u662f\u9700\u8981\u627e\u5230\u771f\u5b9e\u7684\u9759\u6001\u8d44\u6e90\u5730\u5740\uff0c\u8fd9\u4e2a\u5bb9\u5668\u7684\u8bdd\u600e\u4e48\u641e\u5462\uff1f\u8fd8\u662f\u8bf4\u6211\u7684 nginx \u9700\u8981\u914d\u7f6e\u5176\u4ed6\u914d\u7f6e\u9879\u624d\u53ef\u4ee5\u5462\uff0c\u6c42\u5927\u4f6c\u4eec\u5e2e\u52a9
\n", "date_published": "2025-01-09T03:15:21+00:00", "title": "\u6211\u6709\u4e00\u4e2a\u7aef\u53e3\u8f6c\u53d1\u95ee\u9898\uff0c\u6c42\u5927\u4f6c\u4eec\u534f\u52a9", "id": "t/1103834" }, { "author": { "url": "member/ShimaKazeLiu", "name": "ShimaKazeLiu", "avatar": "https://cdn.v2ex.com/avatar/21a4/67f3/661144_large.png?m=1755567618" }, "url": "t/1099518", "title": "\u4f7f\u7528 Nginx \u4ee3\u7406 Emby \u670d\u52a1\u5668\uff0c\u6d4f\u89c8\u5668\u53ef\u4ee5\u8bbf\u95ee\u4f46\u662f\u5ba2\u6237\u7aef\u8fde\u4e0d\u4e0a", "id": "t/1099518", "date_published": "2024-12-23T01:47:09+00:00", "content_html": "\u6211\u5bb6\u91cc\u7684\u73af\u5883\u662f\u6ca1\u5f97\u516c\u7f51\u7684\uff0c\u6211\u5c31\u53bb\u641e\u4e86\u53f0\u6709\u516c\u7f51\u7684\u670d\u52a1\u5668\uff0c\u7136\u540e\u90a3\u4e2a\u670d\u52a1\u5668\u901a\u8fc7 zerotier \u8fde\u63a5\u5230\u6211\u5bb6\u5185\u7f51\uff0c\u8fd9\u4e2a\u670d\u52a1\u5668\u4f7f\u7528 Nginx \u6765\u8fde\u63a5\u5230 Emby \u3002npm \u7528 docker-compose \u90e8\u7f72\u5728 openwrt \u4e0a\uff0cnetwork \u662f bridge \uff08\u7f51\u5173 172.17.0.1 \uff09\u3002npm \u53ef\u4ee5\u53cd\u4ee3\u540c\u7f51\u5173\u7684 ddns-go \u7b49 docker \u5bb9\u5668\uff08\u7f51\u5173 172.17.0.1 \uff09\uff0c\u548c openwrt \uff08\u5730\u5740 192.168.66.1 \uff09\uff0c\u4f46\u662f\u4e0d\u80fd\u53cd\u4ee3\u7fa4\u6656 nas \uff08\u5730\u5740 192.168.66.4 \uff09\uff0c\u662f\u56e0\u4e3a npm \u7528 bridge \u6ca1\u7528 host \u7684\u539f\u56e0\u5417\uff1f\u5982\u679c\u662f\uff0c\u8bf7\u95ee\u662f\u5426\u6709\u4e0d\u6539\u53d8 bridge \u80fd\u53cd\u4ee3 nas \u7684\u65b9\u6cd5\uff1f
\n", "date_published": "2024-12-21T02:21:12+00:00", "title": "\u5c0f\u767d\u5728\u4f7f\u7528 Nginx proxy manager \u9047\u5230\u95ee\u9898\uff0c\u8bf7\u5927\u4f6c\u4eec\u6307\u6559\u3002", "id": "t/1099224" }, { "author": { "url": "member/andyfan", "name": "andyfan", "avatar": "https://cdn.v2ex.com/avatar/74b4/ec7d/161368_large.png?m=1734348969" }, "url": "t/1097996", "date_modified": "2024-12-16T11:47:47+00:00", "content_html": "\u6211\u60f3\u81ea\u5efa\u4e00\u4e2a docker \u7684\u955c\u50cf\u6e90, \u5199\u4e86\u4e2a\u914d\u7f6e\u6587\u4ef6\u53cd\u4ee3 registry-1.docker.io, \u540c\u65f6\u5e0c\u671b\u8bbf\u95ee\u8fd9\u4e2a\u57df\u540d\u6839\u8def\u5f84\u7684\u65f6\u5019\u4e0d\u8981\u53cd\u4ee3, \u8fd4\u56de\u7f51\u7ad9\u76ee\u5f55\u4e0b\u7684 index.html
\n\u4f46\u6211\u7684\u914d\u7f6e\u6587\u4ef6\u6ca1\u6709\u6309\u7167\u9884\u671f\u90a3\u6837\u5de5\u4f5c, \u76f4\u63a5\u8bbf\u95ee\u57df\u540d\u6839\u8def\u5f84\u7684\u65f6\u5019\u8fd8\u662f\u53cd\u4ee3\u5230\u4e86 registry-1.docker.io \u5bfc\u81f4\u8fd4\u56de 404, \u5e0c\u671b\u6709\u719f\u6089 nginx \u7684\u8001\u54e5\u5e2e\u5fd9\u770b\u770b, \u8fd9\u8981\u600e\u4e48\u4fee\u6539?
\n\u6211\u7684 server \u914d\u7f6e\u5982\u4e0b
\n\tlocation = / {\n\t\tadd_header Cache-Control private;\n\t\talias /var/www/html/;\n\t\tindex index.html;\n\t}\n\t \n\tlocation / {\n\t\t# Docker hub \u7684\u5b98\u65b9\u955c\u50cf\u4ed3\u5e93\n\t\tproxy_pass https://registry-1.docker.io; \n\t\tproxy_set_header Host registry-1.docker.io;\n\t\tproxy_set_header X-Real-IP $remote_addr;\n\t\tproxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n\t\tproxy_set_header X-Forwarded-Proto $scheme;\n\t\t# \u5173\u95ed\u7f13\u5b58 \n\t\tproxy_buffering off;\n\t\t# \u8f6c\u53d1\u8ba4\u8bc1\u76f8\u5173\n\t\tproxy_set_header Authorization $http_authorization;\n\t\tproxy_pass_header Authorization;\n\t\t# \u5bf9 upstream \u72b6\u6001\u7801\u68c0\u67e5\uff0c\u5b9e\u73b0 error_page \u9519\u8bef\u91cd\u5b9a\u5411\n\t\tproxy_intercept_errors on;\n\t\trecursive_error_pages on;\n\t\t# \u6839\u636e\u72b6\u6001\u7801\u6267\u884c\u5bf9\u5e94\u64cd\u4f5c\uff0c\u4ee5\u4e0b\u4e3a 381 \u3001302 \u3001387 \u72b6\u6001\u7801\u90fd\u4f1a\u89e6\u53d1\n\t\terror_page 301 302 307 = @handle_redirect;\n\t}\n\n", "date_published": "2024-12-16T11:46:35+00:00", "title": "\u8bf7\u6559\u4e0b nginx \u53cd\u4ee3\u914d\u7f6e", "id": "t/1097996" }, { "author": { "url": "member/gotonull", "name": "gotonull", "avatar": "https://cdn.v2ex.com/gravatar/6b0065b366c96d0c61a592b5fa49c4a3?s=73&d=retro" }, "url": "t/1095330", "title": "nginx \u914d\u7f6e\u95ee\u9898\u6c42\u89e3\u7b54", "id": "t/1095330", "date_published": "2024-12-05T12:11:58+00:00", "content_html": "\u95ee\u9898\u63cf\u8ff0\uff1aa \u670d\u52a1\u5668\u7684 nginx \u670d\u52a1\u4f1a\u5c06 /aisp/approval/ \u8def\u5f84\u7684\u8bf7\u6c42\u8f6c\u53d1\u7ed9\u6211\uff0c\u6211\u6536\u5230\u8bf7\u6c42\u540e\u6839\u636euser-agent\u5224\u65ad\u662f\u79fb\u52a8\u7aef\u8fd8\u662f pc \u7aef\u8bf7\u6c42\uff0c\u5982\u679c\u4e3a\u79fb\u52a8\u7aef\u7684\uff0c\u5219\u53bb\u5f53\u524d\u670d\u52a1\u5668\u7684/home/centos/web/h5\u76ee\u5f55\u4e0b\u54cd\u5e94\u5bf9\u5e94\u7684\u9759\u6001\u6587\u4ef6\u3002\u5982\u679c\u662f/aisp/approval/api/\u8def\u5f84\u4e0b\u7684\u8bf7\u6c42\u5219\u8bf7\u6c42\u540e\u7aef\u670d\u52a1\uff0c\u5f53\u524d\u7684\u914d\u7f6e\uff1a
server {\n listen 9999;\n server_name localhost;\n\n location /aisp/approval/ {\n if ($is_mobile = 0) {\n rewrite ^/aisp/approval/(.*)$ https://b.com/$1 permanent;\n }\n alias /home/centos/web/h5/;\n try_files $uri $uri/ /index.html;\n }\n\n location /aisp/approval/api/ {\n limit_conn perip 1000;\n proxy_pass http://10.156.166.23:9088/;\n proxy_redirect off;\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 Host $host;\n client_max_body_size 600M;\n client_body_buffer_size 512k;\n }\n }\n\n\n\u73b0\u5728\u7684\u95ee\u9898\u662f\u901a\u8fc7\u79fb\u52a8\u7aef\u8bf7\u6c42a.com/aisp/approval/workOrder/orderHandlerDetails,error.log \u4f1a\u62a5\uff1a
open() \"/usr/local/nginx/html/home/centos/supervision/web/h5/index.html\" failed (2: No such file or directory)\n\n/usr/local/nginx/html \u662f\u6211 nginx \u7684\u5b89\u88c5\u76ee\u5f55\uff0c\u6211\u8981\u5982\u4f55\u914d\u7f6e\u624d\u80fd\u5728\u8bf7\u6c42 a.com/aisp/approval/workOrder/\u65f6\u54cd\u5e94/home/centos/supervision/web/h5/\u76ee\u5f55\u4e0b\u7684 index.html
\n" }, { "author": { "url": "member/jalena", "name": "jalena", "avatar": "https://cdn.v2ex.com/gravatar/b966aaabe36d4274eba28ef301495149?s=73&d=retro" }, "url": "t/1095168", "title": "Nginx \u6d41\u91cf\u5f02\u5e38\uff0c\u8bf7\u5927\u4f6c\u652f\u62db~", "id": "t/1095168", "date_published": "2024-12-05T02:59:08+00:00", "content_html": "\u4e4b\u524d\u4e00\u76f4\u597d\u597d\u7684\uff0c\u4eca\u5929\u7a81\u7136\u6536\u5230\u6d41\u91cf\u544a\u8b66\u3002
\n\u4f7f\u7528 NetHogs \u67e5\u770b\u6d41\u91cf\u53d1\u73b0 unknown TCP \u7684 RECEIVED \u4e00\u76f4\u5c45\u9ad8\u4e0d\u4e0b\uff0c\u505c\u6389 docker \u5185\u7684 nginx \u5c31\u6b63\u5e38\u4e86\uff0c\u76ee\u524d\u53ea\u653e\u4e86\u4e00\u4e2a\u7a7a\u7684\u9875\u9762\u8fd9\u4e2a\u6d41\u91cf\u4e5f\u5f88\u9ad8\u3002
\n\u8bf7\u5927\u4f6c\u652f\u652f\u62db\uff0c\u5982\u4f55\u6392\u67e5\u5462\u3002\u7cfb\u7edf\u662f debian12 \uff0c\u7a0b\u5e8f\u90fd\u5b89\u88c5\u5728 docker \u5185
\n" }, { "author": { "url": "member/raysonlu", "name": "raysonlu", "avatar": "https://cdn.v2ex.com/gravatar/f49e53bf69e1be6aad8d4cb7f6ed6d74?s=73&d=retro" }, "url": "t/1094763", "title": "nginx \u8bfb\u53d6 ssl \u8bc1\u4e66\u7684\u6743\u9650\u95ee\u9898\u8bf7\u6559", "id": "t/1094763", "date_published": "2024-12-03T11:40:42+00:00", "content_html": "nginx \u662f\u7528 nobody \u8fd0\u884c\uff0c\u53e6\u5916\u6709\u4e00\u4e2a\u7528\u6237 petter \u4e3b\u8981\u662f\u7ef4\u62a4\u4e00\u5927\u5806\u8bc1\u4e66\uff08\u516c\u94a5\u548c\u79c1\u94a5\uff09\uff0c\u6211\u4ee5\u4e3a\uff0c\u6839\u636e linux \u7684\u6587\u4ef6\u6743\u9650\u8bfb\u53d6\u89c4\u5219\uff0c\u5efa\u7acb\u4e00\u4e2a ssl \u7528\u6237\u7ec4\uff0c\u8ba9 nobody \u548c petter \u90fd\u52a0\u5165\u8fdb\u53bb\uff0c\u518d\u628a\u6574\u4e2a\u8bc1\u4e66\u5b58\u653e\u76ee\u5f55\u8bbe\u7f6e\u4e3a petter:ssl \uff0c\u5c31\u53ef\u4ee5\u8ba9 nginx \u8bfb\u53d6\u3002\u6211\u624b\u4e0a\u53ea\u6709\u4e00\u4e2a\u4e8c\u7ea7\u57df\u540d sub.abc.com \uff0c\u4f46\u6211\u6709\u4e00\u4e2a alist \u548c nas \u7684 http \u670d\u52a1\u60f3\u901a\u8fc7\u8fd9\u4e2a\u4e8c\u7ea7\u57df\u540d\u8fdb\u884c\u8bbf\u95ee\uff0c\u6bd4\u5982 sub.abc.com/alist \u548c sub.abc.com/nas \u5206\u522b\u8bbf\u95ee alist \u548c nas \u7684\u7ba1\u7406\u540e\u53f0\uff0c\u6211\u5c1d\u8bd5\u901a\u8fc7 nginx \u914d\u7f6e location \u7684 rewrite \u548c sub_filter \u90fd\u6ca1\u529e\u6cd5\u89e3\u51b3\uff0c\u8bf7\u95ee\u6709\u4ec0\u4e48\u89e3\u51b3\u529e\u6cd5\u5417\uff1f
\n" }, { "author": { "url": "member/AndreasG", "name": "AndreasG", "avatar": "https://cdn.v2ex.com/gravatar/b7b9aaf89d0cd99e801151b80122904e?s=73&d=retro" }, "url": "t/1093382", "title": "\u914d\u7f6e\u8bc1\u4e66\u76f8\u5173\u7684\u95ee\u9898", "id": "t/1093382", "date_published": "2024-11-28T06:17:08+00:00", "content_html": "\u6211\u60f3\u5b9e\u73b0\u5728\u4e00\u53f0 Linux \u865a\u62df\u673a\u4e0a\u914d\u7f6e nginx \uff0c\u7528\u4e8e\u4ee3\u7406\u5bb6\u91cc\u8fd9\u4e09\u53f0\u865a\u62df\u673a\u4e0a\u7684\u670d\u52a1\uff0c\u53ef\u4ee5\u5b9e\u73b0 https \u8bbf\u95ee\n\n\u641e\u4e86\u4e2a\u670d\u52a1\u5668\uff0c\u642d\u5efa\u4e86\u4e00\u4e9b\u4e1c\u897f\uff0c\u4f46\u662f\u5728\u4e0d\u540c\u7aef\u53e3\uff0c\u60f3\u7740\u7528 nginx \u505a\u4e2a\u53cd\u4ee3\u53ef\u4ee5\u5168\u8d70\u4e00\u4e2a\u7aef\u53e3\uff0c\u4f46\u662f\u4ee3\u7406\u8fc7\u540e\u8f6c\u53d1\u7684\u5305\u603b\u662f\u8fd8\u6709\u539f\u6765\u7684\u8def\u5f84\uff0c\u6bd4\u5982\u4e1c\u897f\u5728 30 \u7aef\u53e3\uff0c\u8bbf\u95ee\u5c31\u662f
\nhttp\uff1a//localhost\uff1a30
\n\u4f46\u662f\u8f6c\u53d1\u8fc7\u53bb\u5c31\u53d8\u6210\u4e86
\nhttp\uff1a//localhost/abc/
\n\u8bf7\u95ee\u8fd9\u4e2a\u6709\u4ec0\u4e48\u89e3\u51b3\u529e\u6cd5\u561b\uff1f
\n", "date_published": "2024-11-27T06:10:26+00:00", "title": "\u5173\u4e8e nginx \u7684\u4e00\u4e9b\u63d0\u95ee", "id": "t/1093078" }, { "author": { "url": "member/dunhanson", "name": "dunhanson", "avatar": "https://cdn.v2ex.com/avatar/d2b2/2ccb/172659_large.png?m=1755681128" }, "url": "t/1092345", "title": "nginx \u9650\u6d41\u5931\u8d25\u7684\u5947\u602a\u95ee\u9898", "id": "t/1092345", "date_published": "2024-11-25T03:33:45+00:00", "content_html": "~/info \u9650\u6d41\u5931\u8d25
\n~info \u548c~/info \u90fd\u80fd\u5339\u914d\u5230\u503c\uff0c$limit_key_pc_page_info \u7684\u503c\u8f93\u51fa page_info
\n\u4e3a\u4ec0\u4e48\u52a0/\u7b26\u53f7\u4f1a\u5f71\u54cd\u9650\u6d41\uff1f$limit_key_pc_page_info \u91cc\u9762\u6709\u503c
\n# \u53d8\u91cf-URI\nmap $uri $limit_key_pc_page_info {\n\t~/info \"page_info\";\n\t#~info \"page_info\";\n\tdefault \"\";\n}\nlimit_req_zone $limit_key_pc_page_info zOne=limit_zone_pc_page_info:10m rate=1r/s;\n\nserver {\n\tlisten 80;\n\tserver_name www.dunhanson.com;\n\tcharset utf-8;\n\n\tlocation / {\n\t\t# \u9650\u6d41\n\t\tlimit_req zOne=limit_zone_pc_page_info nodelay;\n\t\tproxy_pass http://www_dunhanson_com;\n\t}\n}\n\nserver {\n\tlisten 80;\n\tserver_name test.dunhanson.com;\n\tcharset utf-8;\n\n\tlocation / {\n\t\tdefault_type text/plain;\n\t\treturn 200 \"$uri $limit_key_pc_page_info\";\n\t}\n}\n\ncurl http://test.dunhanson.com/info-558860051.html\n\n\u8f93\u51fa: /info-558860051.html page_info
\n" }, { "author": { "url": "member/awanganddong", "name": "awanganddong", "avatar": "https://cdn.v2ex.com/gravatar/e482df556a9ac0e4553da45a819ba931?s=73&d=retro" }, "url": "t/1091390", "date_modified": "2024-11-21T01:52:26+00:00", "content_html": "\u57df\u540d\u662f\u5728\u963f\u91cc\u4e91\uff0c\u670d\u52a1\u5668 a \u4e5f\u662f\u5728\u963f\u91cc\u4e91\u3002\n\u7136\u540e\u901a\u8fc7\u53cd\u5411\u4ee3\u7406\u6307\u5411\u672c\u5730\u670d\u52a1\u5668 b \u3002
\n\u5982\u679c\u5728 nginx \u914d\u7f6e\u4e2d\u589e\u52a0\u4e0b\u8fb9\u51e0\u9879\u5c31\u62a5\u4e0a\u8fb9\u7684\u9519\u8bef\u3002
\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\u5982\u679c\u53bb\u9664\u8fd9\u51e0\u9879\u5c31\u6b63\u5e38\u4e86\u3002
\n\u6240\u4ee5\u60f3\u8bf7\u95ee\u4e0b\uff0c\u8fd9\u79cd\u60c5\u51b5\u662f\u600e\u4e48\u9020\u6210\u7684\u3002\u4e0d\u7406\u89e3\u3002
\n", "date_published": "2024-11-21T01:51:48+00:00", "title": "\u53cd\u5411\u4ee3\u7406\u63d0\u793a\u8be5\u7f51\u7ad9\u5df2\u88ab\u62e6\u622a\uff0c\u8bf7\u6559", "id": "t/1091390" }, { "author": { "url": "member/importmeta", "name": "importmeta", "avatar": "https://cdn.v2ex.com/avatar/2018/6513/562972_large.png?m=1764517099" }, "url": "t/1087129", "date_modified": "2024-11-06T06:31:46+00:00", "content_html": "docker \u73af\u5883\u4e0b, \u5916\u90e8\u6709\u4e2a nginx \u53cd\u5411\u4ee3\u7406, \u4ee3\u7406\u4e86\u4e00\u4e2a\u5185\u90e8\u7684 nginx.
\n # \u4e0d\u52a0\u8fd9\u4e00\u6761\u5c31\u65e0\u6cd5\u53cd\u5411\u4ee3\u7406 favicon \u65e5\u5fd7 404 \n location = /favicon.ico {\n log_not_found off;\n proxy_pass http://official;\n }\n\n location / {\n proxy_pass http://official;\n proxy_set_header Host $host;\n }\n \n\n\u6211\u5185\u90e8\u7684 official \u7684 nignx \u76f4\u63a5\u7528\u7aef\u53e3\u8bbf\u95ee, \u662f\u80fd\u770b\u5230 favicon \u7684.
\n\u8bd5\u4e86\u597d\u4e45\u624d\u53d1\u73b0, \u5916\u90e8\u5fc5\u987b\u518d\u5199\u4e00\u6761, \u624d\u80fd\u770b\u5230 favicon, \u4f46\u662f\u6211\u4e0d\u5199 css \u4ec0\u4e48\u7684, css \u76f4\u63a5\u5c31\u6ca1\u95ee\u9898, \u53ea\u6709 favicon \u6709\u8fd9\u4e2a\u95ee\u9898.
\n\u95ee\u8fc7 AI \u4e86, \u8001\u662f\u7167\u7740\u7ed3\u679c\u56de\u7b54.
\n\u4e3a\u4ec0\u4e48\u554a? \u8c22\u8c22\u5404\u4f4d\u4e86.
\n", "date_published": "2024-11-06T06:28:16+00:00", "title": "\u4e3a\u4ec0\u4e48\u6211\u7684 docker nginx \u7684\u4e0d\u80fd\u53cd\u5411\u4ee3\u7406 favicon \u554a", "id": "t/1087129" }, { "author": { "url": "member/waringid", "name": "waringid", "avatar": "https://cdn.v2ex.com/avatar/4abc/9add/101794_large.png?m=1730769902" }, "url": "t/1086681", "date_modified": "2024-11-05T12:45:52+00:00", "content_html": "Nginx \u5bf9\u5916\u6620\u5c04 80 \u548c 443 \u7aef\u53e3\uff0cNginx \u5bf9\u5e94\u7684\u5bbd\u5e26\u7ebf\u8def\u662f 100M \uff08\u4e0a\u4e0b\u884c\u5bf9\u7b49\uff09\uff0c\u901a\u8fc7\u53cd\u5411\u4ee3\u7406\u914d\u7f6e\u57df\u540d\uff08 hostname \uff09\u7684\u65b9\u5f0f\u6620\u5c04\u5230\u540e\u7aef\u670d\u52a1\u5668\u3002\u7c7b\u4f3c\u4e8e\uff1a\u8fc1\u79fb\u4e86\u4e00\u4e2a headscale \u670d\u52a1\u7aef\uff0c\u53cd\u5411\u4ee3\u7406\u914d\u7f6e\u4e86 headscale-ui \u7684\u9759\u6001\u9875\u9762
\n\u6211\u5c06 centos 7 \u4e2d\u7684 nginx v1.20.1 \u914d\u7f6e\u8fc1\u79fb\u5230\u4e86 rocky linux 9 \u4e2d\u7684 nginx v1.26.2 \u4e2d\uff0c
\n\u4f7f\u7528\u7684\u5747\u4e3a rpm \u5305
\nnginx v1.20.1 \u662f\u5b98\u65b9\u6e90\u4e2d\u4e0b\u8f7d
\nnginx v1.26.2 \u662f\u4ece nginx \u6e90\u4e2d\u4e0b\u8f7d
\n\u8fc1\u79fb\u4e4b\u540e headscale \u88ab\u53cd\u5411\u4ee3\u7406\u540e\u7684 8082 \u7aef\u53e3\u5c31\u65e0\u6cd5\u8bbf\u95ee\u4e86\uff0c\u4f46\u662f\u539f\u751f\u7684 8080 \u7aef\u53e3\u53ef\u4ee5\u8bbf\u95ee\uff0c
\n\u4e24\u4e2a\u7ad9\u70b9\u914d\u7f6e\u5b8c\u5168\u4e00\u6837\uff0c\u662f\u76f4\u63a5\u590d\u5236\u8fc7\u53bb\u7684
\n\u65b0\u7248\u672c\u7684 nginx \u65e5\u5fd7\u4e2d\u6ca1\u6709\u76f8\u5173\u8bbf\u95ee\u65e5\u5fd7
\n\u5e76\u4e14 nginx \u7684\u4e3b\u8981\u66f4\u65b0\u65e5\u5fd7\uff0c\u5e76\u6ca1\u6709\u4ec0\u4e48\u5934\u7eea\uff0c\u6240\u4ee5\u53d1\u5e16\u8bf7\u6559\u4e00\u4e0b\u5404\u4f4d
\n\u4ee5\u4e0b\u662f\u65e5\u5fd7\u4e0e\u914d\u7f6e
\n\u7ad9\u70b9\u4e3b\u8981\u914d\u7f6e\u5982\u4e0b
\nserver {\n listen 8082 ssl ;\n listen [::]:8082 ssl ;\n server_name xxxx;\n root /opt/headscale/headscale-ui/web;\n\n # SSL\n ssl_certificate /etc/nginx/cert/xxxx.crt;\n ssl_certificate_key /etc/nginx/cert/xxxx.key;\n ssl_protocols TLSv1.2 TLSv1.3;\n\n # logging\n # \u8fd9\u91cc\u5176\u5b9e\u6709\u65e5\u5fd7\u914d\u7f6e\uff0c\u4f46\u662f\u4e0d\u77e5\u9053\u653e\u8fdb\u6765\u5c31\u4e0d\u80fd\u53d1\u5e16\n\n location /web {\n alias /opt/headscale/headscale-ui/web;\n index index.html;\n }\n\n # reverse proxy\n location / {\n proxy_pass http://127.0.0.1:8080;\n proxy_http_version 1.1;\n proxy_set_header Upgrade $http_upgrade;\n proxy_set_header Connection $connection_upgrade;\n proxy_set_header Host $server_name;\n proxy_redirect http:// https://;\n proxy_buffering off;\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 $http_x_forwarded_proto;\n add_header Strict-Transport-Security \"max-age=15552000; includeSubDomains\" always;\n }\n\n}\n\n\nheadscale \u7684\u90e8\u5206\u65e5\u5fd7\u5982\u4e0b
\nNov 01 17:13:17 xxxxxx tailscaled[2145341]: control: LoginInteractive -> regen=true\nNov 01 17:13:17 xxxxxx tailscaled[2145341]: control: doLogin(regen=true, hasUrl=false)\nNov 01 17:13:17 xxxxxx tailscaled[2145341]: Received error: fetch control key: Get \"https://xxxxxx:8082/key?v=106\": read tcp 192.168.2.199:36346->xx.xx.xx.xx:8082: read: connection reset by peer\nNov 01 17:13:17 xxxxxx tailscaled[2145341]: health(warnable=login-state): error: You are logged out. The last login error was: fetch control key: Get \"https://xxxxxx:8082/key?v=106\": read tcp 192.168.2.199:36346->xx.xx.xx.xx:8082: read: connection reset by peer\n\nnginx \u7684\u7248\u672c\u4fe1\u606f\u5982\u4e0b
\n\u65e7\u670d\u52a1\u5668
\nnginx version: nginx/1.20.1\nbuilt by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) \nbuilt with OpenSSL 1.1.1k FIPS 25 Mar 2021\nTLS SNI support enabled\n\n\u65b0\u670d\u52a1\u5668
\nnginx version: nginx/1.26.2\nbuilt by gcc 11.4.1 20231218 (Red Hat 11.4.1-3) (GCC) \nbuilt with OpenSSL 3.0.7 1 Nov 2022\nTLS SNI support enabled\n\n\n\n" }, { "author": { "url": "member/xiaochena", "name": "xiaochena", "avatar": "https://cdn.v2ex.com/avatar/375d/caee/487582_large.png?m=1729752063" }, "url": "t/1083249", "date_modified": "2024-10-24T10:41:44+00:00", "content_html": "\u8be6\u7ec6\u7684\u7f16\u8bd1\u53c2\u6570\u653e\u4e0d\u8fdb\u53bb\uff0c\u5982\u679c\u6709\u9700\u8981\u7684\u8bdd\uff0c\u540e\u7eed\u8003\u8651\u622a\u56fe\u653e\u5728\u540e\u9762
\n
\u5728\u8bf7\u6c42\u5982 /_next/static/media/page-main-image.0b61c706.png \u8fd9\u6837\u7684\u6587\u4ef6\u65f6
\n\u8fd9\u6bb5\u914d\u7f6e\u53ef\u4ee5\u6b63\u5e38\u8fd0\u884c
\n location ~* /_next/static/.*(js|css|png|jpg|jpeg|svg|gif|ico|ttf|webp)$ {\n rewrite /_next/(.*) /.next/$1 break;\n try_files $uri $uri/;\n expires 1y; # \u8bbe\u7f6e\u7f13\u5b58\u65f6\u95f4\u4e3a 1 \u5e74\n add_header Cache-Control \"public\";\n }\n\n\u8fd9\u6bb5\u914d\u7f6e\u5374\u627e\u4e0d\u5230\u6587\u4ef6\u3001\u54cd\u5e94\u4f53\u8fd8\u4f1a\u53d8\u6210 308 \u91cd\u5b9a\u5411
\n location ~* /_next/static/.*(js|css|png|jpg|jpeg|svg|gif|ico|ttf|webp)$ {\n alias /app/.next/static/; # \u5c06\u8bf7\u6c42\u8def\u5f84 /_next/static/ \u6620\u5c04\u5230\u6587\u4ef6\u7cfb\u7edf\u7684 /app/.next/static/\n expires 1y; # \u8bbe\u7f6e\u7f13\u5b58\u65f6\u95f4\u4e3a 1 \u5e74\n add_header Cache-Control \"public\";\n }\n\n", "date_published": "2024-10-24T06:44:20+00:00", "title": "\u865a\u5fc3\u8bf7\u6559\u4e00\u4e2a\u6709\u5173\u4e8e nginx \u914d\u7f6e\u7684\u95ee\u9898", "id": "t/1083249" }, { "author": { "url": "member/LeeLou", "name": "LeeLou", "avatar": "https://cdn.v2ex.com/gravatar/1b1d6e99f3c26b0754145f8453e2063c?s=73&d=retro" }, "url": "t/1080932", "title": "\u6c42\u89e3 nginx \u53cd\u4ee3\u67d0\u5821\u5792\u673a 443 \u9875\u9762\u51fa\u73b0\u95ee\u9898", "id": "t/1080932", "date_published": "2024-10-16T11:29:55+00:00", "content_html": "\u67d0\u5821\u5792\u673a\u53ef\u4ee5\u7528\u7f51\u9875 h5 \u9875\u9762\u8fd0\u7ef4 ssh \u767b\u5f55\u7684\u8d44\u4ea7,\u6216\u662f rdp \u767b\u5f55\u7684 windows \u8d44\u4ea7\u3002\u8fd0\u7ef4 ssh \u8d44\u4ea7\u65f6\uff0curl \u4e3a/access/h5/tool/ssh/operate_id/d928d8570b97XXX \uff0c \u8fd0\u7ef4 rdp \u8d44\u4ea7\u65f6\uff0curl \u4e3a/access/h5/tool/vnc/operate_id/d928d8570b97XXX \u3002
\n\u4f7f\u7528 nginx \u53cd\u4ee3\u5821\u5792\u673a\u7684 443 \u7aef\u53e3\uff0c\u767b\u5f55\u5821\u5792\u673a\uff0c\u8fd0\u7ef4 rdp \u8d44\u4ea7\u90fd\u6ca1\u95ee\u9898\u3002 \u4f46\u8fd0\u7ef4 ssh \u8d44\u4ea7\u65f6\uff0c\u663e\u793a\u6743\u9650\u4e0d\u5bf9\uff0c\u767b\u5f55\u5931\u8d25\u3002
\n\u4e24\u79cd\u8d44\u4ea7\u90fd\u662f\u7528\u5bc6\u7801\u767b\u5f55\u7684\uff0curl \u5728\u53cd\u4ee3\u524d\u548c\u53cd\u4ee3\u540e\uff0c\u611f\u89c9\u4e5f\u6ca1\u6709\u533a\u522b\u3002
\n" }, { "author": { "url": "member/dunhanson", "name": "dunhanson", "avatar": "https://cdn.v2ex.com/avatar/d2b2/2ccb/172659_large.png?m=1755681128" }, "url": "t/1069698", "date_modified": "2024-09-02T10:20:54+00:00", "content_html": "nginx if \u8bed\u53e5 return 403 \uff0c\u6ca1\u529e\u6cd5\u8df3\u8f6c\u81ea\u5b9a\u4e49 403 \u9875\u9762
\n\u8fd4\u56de\u7684 403 \u8fd8\u662f nginx \u81ea\u5e26\u7684 403 \u9875\u9762
\nerror_page 403 /403.html;\nlocation = /403.html {\n\troot D:/program/nginx/nginx-1.18.0/html;\n}\n\nif ($http_user_agent ~ \"Baiduspider\") {\n\treturn 403;\n}\n\n", "date_published": "2024-09-02T10:13:41+00:00", "title": "nginx if \u8bed\u53e5 return 403\uff0c\u6ca1\u529e\u6cd5\u8df3\u8f6c\u81ea\u5b9a\u4e49 403 \u9875\u9762", "id": "t/1069698" }, { "author": { "url": "member/ab", "name": "ab", "avatar": "https://cdn.v2ex.com/avatar/2cd8/7697/76017_large.png?m=1725000948" }, "url": "t/1069052", "date_modified": "2024-08-30T07:06:30+00:00", "content_html": "http{\ndeny 192.168.6.8;\n...\nserver {\nlisten 443 ssl;\nhttp2 on;\nserver_name example.com;\n...\nif ($http_user_agent ~* \"curl\") {\nreturn 406;\n}\n}\n}\n\u5ba2\u6237\u7aef 192.168.6.8 \u4f7f\u7528 curl -I example.com \u65f6\uff0c\u8fd4\u56de 406 \uff0c\u96be\u9053 if \u6bd4 http \u6bb5\u7684 deny ip \u7684\u4f18\u5148\u7ea7\u8fd8\u9ad8\u5417\uff1f
\n", "date_published": "2024-08-30T06:57:12+00:00", "title": "\u8bf7\u6559 nginx deny \u4f18\u5148\u7ea7\u7684\u95ee\u9898\u3002", "id": "t/1069052" }, { "author": { "url": "member/Aicnal", "name": "Aicnal", "avatar": "https://cdn.v2ex.com/avatar/257e/3a01/670465_large.png?m=1722351747" }, "url": "t/1067478", "date_modified": "2024-08-24T07:19:36+00:00", "content_html": "\u4e4b\u524d\u90e8\u7f72\u4e86\u4e00\u4e2a Discourse \u7ad9\u70b9 \u90e8\u7f72\u5728\u4e00\u53f0\u914d\u7f6e\u6bd4\u8f83\u9ad8\u4f46\u662f\u7ebf\u8def\u6ca1\u6709\u4f18\u5316\u7684\u673a\u5668\u4e0a\n\u5bb9\u5668\u5185\u90e8\u4f7f\u7528 nginx \u7136\u540e\u901a\u8fc7 Unix Socket \u4f7f\u7528\u5bbf\u4e3b\u673a\u7684 Caddy \u8fdb\u884c\u57df\u540d\u8bbf\u95ee\n\u4e4b\u540e\u6211\u5728\u7ebf\u8def\u6bd4\u8f83\u597d\u7684\u9999\u6e2f\u670d\u52a1\u5668\u4e0a\u90e8\u7f72 Nginx \u5bf9\u539f\u7ad9\u8fdb\u884c\u53cd\u4ee3\n\u4f46\u662f\u53cd\u4ee3\u540e\u4e3a502\uff0c\u65e0\u6cd5\u6b63\u5e38\u8bbf\u95ee \u6211\u770b\u4e86\u4e0berror.log\u8bf4\u7684\u662f\u4ee3\u7406\u670d\u52a1\u5668\u548c\u6e90\u7ad9 ssl \u63e1\u624b\u5931\u8d25 \u4f46\u662f\u6211\u5728\u4ee3\u7406\u670d\u52a1\u5668\u91cc\u9762\u5199\u7684\u662fhttps\uff0c\u800c\u4e14\u4ee3\u7406\u670d\u52a1\u5668curl\u80fd\u6b63\u5e38\u83b7\u53d6\u5230\u5185\u5bb9\n\u8fd9\u4e2a\u662f\u6e90\u7ad9\u7684caddyfile
direct.example.com {\n reverse_proxy unix//var/discourse/shared/standalone/nginx.http.sock {\n header_up Host {host}\n header_up X-Real-IP {remote}\n header_up X-Forwarded-For {remote}\n header_up X-Forwarded-Proto {scheme}\n }\n header {\n Strict-Transport-Security \"max-age=31536000; includeSubDomains; preload\"\n }\n}\n\nsynapse.know-cnu.wiki {\n reverse_proxy localhost:8008 {\n # WebSocket \u8fde\u63a5\u7684\u9ed8\u8ba4\u914d\u7f6e\n header_up Host {host}\n header_up X-Real-IP {remote}\n header_up X-Forwarded-For {remote}\n header_up X-Forwarded-Proto {scheme}\n\n # \u5904\u7406 WebSocket \u8fde\u63a5\n transport http {\n read_buffer 0\n }\n }\n\n # \u8bbe\u7f6e HSTS \u5934\u90e8\n header {\n Strict-Transport-Security \"max-age=31536000; includeSubDomains; preload\"\n }\n\n\n\u8fd9\u4e2a\u662f\u4ee3\u7406\u670d\u52a1\u5668\u7684nginx.conf\uff0c\u672a\u4f7f\u7528ssl
server {\n listen 80;\n server_name example.com;\n\n location / {\n proxy_pass https://direct.example.com;\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\nerror.log\u5982\u4e0b
root@VM80459:~# tail -f /var/log/nginx/error.log\n2024/08/24 06:08:57 [emerg] 3325#3325: \"server\" directive is not allowed here in /etc/nginx/nginx.conf:11\n2024/08/24 06:09:05 [emerg] 3326#3326: \"server\" directive is not allowed here in /etc/nginx/nginx.conf:11\n2024/08/24 06:10:18 [notice] 3373#3373: signal process started\n2024/08/24 06:19:53 [notice] 3445#3445: signal process started\n2024/08/24 06:20:02 [error] 3446#3446: *12 SSL_do_handshake() failed (SSL: error:0A000438:SSL routines::tlsv1 alert internal error:SSL alert number 80) while SSL handshaking to upstream, client: 1xx.1x.5x.xx, server: know-cnu.wiki, request: \"GET / HTTP/1.1\", upstream: \"https://[2400:61xx:0:dx::xa:a0x]:443/\", host: \"example.com\"\n2024/08/24 06:20:02 [error] 3446#3446: *12 SSL_do_handshake() failed (SSL: error:0A000438:SSL routines::tlsv1 alert internal error:SSL alert number 80) while SSL handshaking to upstream, client: 10x.13x.5x.18x, server: example.com, request: \"GET / HTTP/1.1\", upstream: \"https://15x.8x.2xx.xx:443/\", host: \"example.com\"\n\n", "date_published": "2024-08-24T07:14:58+00:00", "title": "\u6c42\u6559\u5173\u4e8e\u53cd\u4ee3\u7684\u95ee\u9898", "id": "t/1067478" }, { "author": { "url": "member/xinzi", "name": "xinzi", "avatar": "https://cdn.v2ex.com/avatar/3e06/67c3/492586_large.png?m=1693106110" }, "url": "t/1066197", "date_modified": "2024-08-19T14:59:37+00:00", "content_html": "\u57df\u540d\u5df2\u7ecf\u5904\u7406\n\u4e0d\u589e\u52a0 http \u5757\uff0c\u53ef\u4ee5\u6b63\u5e38\u8bbf\u95ee\uff0c\u8bc1\u4e66\u6b63\u5e38\uff0c\u589e\u52a0\u4e86 http \u5757\u5c31\u62a5\u8bc1\u4e66\u9519\u8bef\uff0c\u8bf7\u6559\u4e00\u4e0b\u3002\u5168\u90e8\u90fd docker \u542f\u52a8\n\u6211\u7684 nginx \u914d\u7f6e \u5982\u4e0b
\nworker_processes auto; # \u81ea\u52a8\u8bbe\u7f6e\u4e3a CPU \u6838\u5fc3\u6570\nworker_rlimit_nofile 100000; # \u589e\u52a0\u6bcf\u4e2a worker \u8fdb\u7a0b\u53ef\u4ee5\u6253\u5f00\u7684\u6587\u4ef6\u6570\n\nevents {\n worker_connections 4096; # \u589e\u52a0\u6bcf\u4e2a worker \u8fdb\u7a0b\u7684\u6700\u5927\u8fde\u63a5\u6570\n multi_accept on; # \u5141\u8bb8\u6bcf\u4e2a worker \u8fdb\u7a0b\u540c\u65f6\u63a5\u53d7\u591a\u4e2a\u8fde\u63a5\n}\n\nhttp {\n include /etc/nginx/mime.types;\n default_type application/octet-stream;\n sendfile on;\n keepalive_timeout 65;\n gzip on;\n\n server {\n listen 80;\n server_name es.x.com.cn;\n return 301 https://$server_name$request_uri;\n }\n\n server {\n listen 443 ssl;\n server_name es.x.com.cn;\n\n # SSL \u8bc1\u4e66\u548c\u5bc6\u94a5\u914d\u7f6e\n ssl_certificate /usr/share/nginx/html/ssl-qianduan/es.x.com.cn_bundle.pem;\n ssl_certificate_key /usr/share/nginx/html/ssl-qianduan/es.x.com.cn.key;\n\n # SSL \u4f18\u5316\u914d\u7f6e\n ssl_protocols TLSv1.2 TLSv1.3;\n ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';\n ssl_prefer_server_ciphers on;\n ssl_session_cache shared:SSL:10m;\n ssl_session_timeout 10m;\n add_header Strict-Transport-Security \"max-age=31536000; includeSubDomains\" always;\n ssl_stapling on;\n ssl_stapling_verify on;\n\n location / {\n root /usr/share/nginx/html; # \u8def\u5f84\u6539\u6210\u81ea\u5df1\u7684 dist \u8def\u5f84\n index index.html index.htm;\n try_files $uri $uri/ /index.html; #\u89e3\u51b3\u5237\u65b0\u9875\u9762\u53d8\u6210 404 \u95ee\u9898\u7684\u4ee3\u7801\n }\n\n location /prod-api/ {\n proxy_set_header Host $http_host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header REMOTE-HOST $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_pass http://172.16.238.13:8089/;\n }\n }\n\n server {\n listen 80;\n server_name esb.x.com.cn;\n return 301 https://$server_name$request_uri;\n }\n\n server {\n listen 443 ssl;\n server_name esb.x.com.cn;\n\n # SSL \u8bc1\u4e66\u548c\u5bc6\u94a5\u914d\u7f6e\n ssl_certificate /usr/share/nginx/html/ssl-houduan/esb.x.com.cn_bundle.pem;\n ssl_certificate_key /usr/share/nginx/html/ssl-houduan/esb.x.com.cn.key;\n\n location / {\n proxy_set_header Host $http_host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header REMOTE-HOST $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_pass http://172.16.238.13:8089/;\n }\n }\n\n # \u963b\u6b62\u901a\u8fc7 IP \u5730\u5740\u6216\u672a\u77e5\u7684\u57df\u540d\u8bbf\u95ee\n server {\n listen 80 default_server;\n listen 443 default_server ssl;\n\n # SSL \u8bc1\u4e66\u548c\u5bc6\u94a5\u914d\u7f6e\n ssl_certificate /usr/share/nginx/html/ssl-houduan/esb.x.com.cn_bundle.pem;\n ssl_certificate_key /usr/share/nginx/html/ssl-houduan/esb.x.com.cn.key;\n\n server_name es.x.com.cn;\n return 444; # \u8fd4\u56de\u4e00\u4e2a\u975e\u6807\u51c6\u7684\u72b6\u6001\u7801\uff0c\u901a\u5e38\u7528\u4e8e\u963b\u6b62\u5ba2\u6237\u7aef\u7684\u8bbf\u95ee\n }\n}\n\n", "date_published": "2024-08-19T09:01:23+00:00", "title": "nginx \u589e\u52a0 http \u5757 \u5c31\u62a5\u8bc1\u4e66\u9519\u8bef\uff0c\u8bf7\u95ee\u662f\u4ec0\u4e48\u539f\u56e0,\u7b2c\u4e00\u6b21\u89c1", "id": "t/1066197" }, { "author": { "url": "member/drymonfidelia", "name": "drymonfidelia", "avatar": "https://cdn.v2ex.com/gravatar/017bcef6e642dbf067e17838a9cd447a?s=73&d=retro" }, "url": "t/1065205", "date_modified": "2024-08-15T05:22:30+00:00", "content_html": "\u6bcf\u5929\u539f\u56e0\u90fd\u4e0d\u4e00\u6837\uff0c\u8fd9\u662f\u4eca\u5929\u7684\u65e5\u5fd7
\nAug 15 13:07:32 hostname nginx[3297853]: nginx: [emerg] host not found in upstream \"backend.example.com\" in /etc/nginx/sites-enabled/app1:25\nAug 15 13:07:32 hostname nginx[3297853]: nginx: configuration file /etc/nginx/nginx.conf test failed\nAug 15 13:07:32 hostname systemd[1]: nginx.service: Control process exited, code=exited, status=1/FAILURE\nAug 15 13:07:32 hostname systemd[1]: nginx.service: Failed with result 'exit-code'.\nAug 15 13:07:32 hostname systemd[1]: Failed to start A high performance web server and a reverse proxy server.\n\n\u5728\u8fd9\u51e0\u79d2\u524d\u5d29\u4e86\u6ca1\u5199\u65e5\u5fd7\uff0c\u8fd9\u4e2a\u65e5\u5fd7\u662f\u521a\u81ea\u52a8\u91cd\u542f\u540e\u53c8\u5d29\u4e86\u7684\u3002\u6ca1\u6539\u914d\u7f6e\uff0c10 \u79d2\u540e\u7b2c\u4e09\u6b21\u81ea\u52a8\u91cd\u542f\u5c31\u6210\u529f\u4e86\u3002backend \u5728\u522b\u7684\u670d\u52a1\u5668\u4e0a\uff0c\u5185\u7f51 DNS \u4e5f\u4e00\u76f4\u6b63\u5e38
\n", "date_published": "2024-08-15T05:19:10+00:00", "title": "\u6709\u53f0\u751f\u4ea7\u670d\u52a1\u5668\uff0c Nginx \u6bcf\u5929\u90fd\u4f1a\u56e0\u4e3a\u4e0d\u540c\u539f\u56e0 exit \u4e00\u6b21\uff0c\u867d\u7136\u914d\u4e86\u81ea\u52a8\u91cd\u542f\uff0c\u6709\u6ca1\u529e\u6cd5\u6392\u67e5\u662f\u4ec0\u4e48\u539f\u56e0\uff1f\u5e73\u5747\u4e00\u5929 1820 \u4e07\u8bf7\u6c42", "id": "t/1065205" }, { "author": { "url": "member/kaf", "name": "kaf", "avatar": "https://cdn.v2ex.com/gravatar/b27d0a8a407a1268454fd29288c69d94?s=73&d=retro" }, "url": "t/1064581", "title": "openresty \u600e\u4e48\u4fee\u6539\u4ee3\u7406\u7ad9\u7684\u6587\u4ef6\u8fd4\u56de\u7ed9\u5ba2\u6237\u7aef", "id": "t/1064581", "date_published": "2024-08-13T03:27:17+00:00", "content_html": "\u6e90\u7ad9\u6709\u5f88\u591a\u9759\u6001\u8d44\u6e90\u4e0b\u8f7d\uff0copenresty \u4f5c\u4e3a\u7f51\u5173\u52a0\u4e86\u9274\u6743\uff0c\u5e0c\u671b\u80fd\u89e3\u6790\u7279\u5b9a\u7684\u6587\u672c\u6587\u4ef6\uff0c\u628a\u9274\u6743\u53c2\u6570\u8ffd\u52a0\u5230\u6587\u672c\u6587\u4ef6\u7684\u6bcf\u4e00\u884c\uff0c\u82b1\u4e86\u534a\u5929\u65f6\u95f4\u6ca1\u641c\u7d22\u5230\u4ec0\u4e48\u8d44\u6599\u3002\u4eca\u5929\u6709\u770b\u5230\u53ef\u4ee5\u76f4\u63a5\u901a\u8fc7 lua \u811a\u672c\u76f4\u63a5\u8bf7\u6c42\u6e90\u7ad9\u83b7\u53d6 body \u4e4b\u540e\u4fee\u6539\u540e\u8fd4\u56de\uff0copenresty \u4e3b\u9898\u4eba\u592a\u5c11\u4e86\uff0c\u6765\u8fd9\u8fb9\u5e0c\u671b\u6709\u5927\u4f6c\u6307\u5bfc\u4e0b
\n" }, { "author": { "url": "member/EthZhang", "name": "EthZhang", "avatar": "https://cdn.v2ex.com/avatar/970d/38be/672098_large.png?m=1776678756" }, "url": "t/1064164", "title": "\u6709\u5565\u5e73\u66ff resend\u3001ZeptoMail \u7684\u56fd\u5185\u89e3\u51b3\u65b9\u6848\u561b\uff1f", "id": "t/1064164", "date_published": "2024-08-11T11:02:25+00:00", "content_html": "\u6700\u8fd1\u60f3\u5728\u9879\u76ee\u91cc\u52a0\u4e0a\u90ae\u4ef6\u63a8\u9001\u529f\u80fd\uff0c\u91cd\u8981\u7684\u662f\u60f3\u80fd\u591f\u81ea\u5b9a\u4e49\u53d1\u4ef6\u57df\u540d\u7684\u8fd9\u79cd\u3002\u50cf\u5927\u5382\u63d0\u4f9b\u7684\u670d\u52a1\u4ef7\u683c\u4e5f\u5fd2\u9ed1\u4e86\uff0c\u6d77\u5916\u7684 API \u670d\u52a1\u6211\u5728\u56fd\u5185\u670d\u52a1\u5668\u8fd8 ping \u4e0d\u5230\uff0c\u641e nginx \u53cd\u4ee3\u4e5f\u5f97\u5355\u72ec\u518d\u4e70\u53f0\u670d\u52a1\u5668\uff0c\u7ea0\u7ed3\u4e2d...
\n" }, { "author": { "url": "member/cokyhe", "name": "cokyhe", "avatar": "https://cdn.v2ex.com/gravatar/6d12c606f4ec41400c00a0e946d1bd87?s=73&d=retro" }, "url": "t/1062404", "title": "\u6c42\u6551\uff1a\u5c4f\u853d\u722c\u866b\u8bd5\u4e86 2 \u5929\uff0c\u6ca1\u6210\u529f", "id": "t/1062404", "date_published": "2024-08-04T09:16:28+00:00", "content_html": "\u4e00\u53f0 10 \u5e74\u7684\u8001\u670d\u52a1\u5668\uff0c\u6700\u8fd1 bingbot \u75af\u72c2\u5237\u6d41\u91cf\uff0c\u7528$http_user_agent \u4e3a\u5565\u5c4f\u853d\u4e0d\u4e86...\nnginx \u65e5\u5fd7\u91cc N \u591a\u7c7b\u4f3c\u8fd9\u6837\u7684\u8bb0\u5f55:
\n172.68.244.177 - - [04/Aug/2024:04:04:10 -0400] \"GET /find-app/%E0%B8%AD%E0%B8%B2%E0%B8%8A%E0%B8%B5%E0%B8%9E%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%8A%E0%B8%B2%E0%B8%A7%E0%B8%AB%E0%B8%A7%E0%B8%B9%E0%B9%88%E0%B8%AB%E0%B8%A5%E0%B8%B4%E0%B8%87%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%95%E0%B8%81%E0%B8%9B%E0%B8%A5%E0%B8%B2%E3%80%90ta777.me%E3%80%91%E0%B8%AD%E0%B8%B2%E0%B8%8A%E0%B8%B5%E0%B8%9E%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%8A%E0%B8%B2%E0%B8%A7%E0%B8%AB%E0%B8%A7%E0%B8%B9%E0%B9%88%E0%B8%AB%E0%B8%A5%E0%B8%B4%E0%B8%87%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%95%E0%B8%81%E0%B8%9B%E0%B8%A5%E0%B8%B2%E3%80%90ta777.me%E3%80%91w7t?page=2 HTTP/1.1\" 403 571 \"-\" \"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/116.0.1938.76 Safari/537.36\" 52.167.144.211\n172.71.222.36 - - [04/Aug/2024:04:04:10 -0400] \"GET /find-app/%E6%B9%96%E5%8D%97%E6%B0%B4%E5%88%A9%E6%B0%B4%E7%94%B5%E8%81%8C%E4%B8%9A%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2%E6%AF%95%E4%B8%9A%E8%AF%81%E6%A0%B7%E6%9C%AC%E5%9B%BE%E7%89%87%E2%8F%A9%E5%8A%9E%E7%90%86%E7%BD%91zhengjian.shop%E2%8F%AA-%E5%93%AA%E9%87%8C%E4%B9%B0%E6%B9%96%E5%8D%97%E6%B0%B4%E5%88%A9%E6%B0%B4%E7%94%B5%E8%81%8C%E4%B8%9A%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2%E6%AF%95%E4%B8%9A%E8%AF%81%E6%A0%B7%E6%9C%AC%E5%9B%BE%E7%89%87%F0%9F%8C%9F%E5%8A%9E%E8%AF%81%E7%BD%91zhengjian.shop%F0%9F%8C%9F-%E5%BC%A0%E5%AE%B6%E6%B8%AF%E6%B9%96%E5%8D%97%E6%B0%B4%E5%88%A9%E6%B0%B4%E7%94%B5%E8%81%8C%E4%B8%9A%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2%E6%AF%95%E4%B8%9A%E8%AF%81%E6%A0%B7%E6%9C%AC%E5%9B%BE%E7%89%87%E5%93%AA%E9%87%8C%E6%9C%89-%E5%93%AA%E9%87%8C%E5%8A%9E%E6%B9%96%E5%8D%97%E6%B0%B4%E5%88%A9%E6%B0%B4%E7%94%B5%E8%81%8C%E4%B8%9A%E6%8A%80%E6%9C%AF%E5%AD%A6%E9%99%A2%E6%AF%95%E4%B8%9A%E8%AF%81%E6%A0%B7%E6%9C%AC%E5%9B%BE%E7%89%87Q5?page=3 HTTP/1.1\" 403 571 \"-\" \"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm) Chrome/116.0.1938.76 Safari/537.36\" 52.167.144.211\n\n\u4ee5\u4e0b\u662f\u5b8c\u6574\u914d\u7f6e
\nserver\n {\n \tlisten 80;\n \tlisten 443 ssl;\n \t#\n ssl_certificate /etc/letsencrypt/live/domain.com/fullchain.pem;\n ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem;\n ## ssl_session_timeout 5m;\n ssl_protocols TLSv1 TLSv1.1 TLSv1.2;\n ssl_prefer_server_ciphers on;\n ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;\n\n ## enable HSTS including subdomains\n add_header Strict-Transport-Security \"max-age=31536000; includeSubdomains\";\n\n \tserver_name domain.com www.domain.com;\n \tindex index.html index.htm index.php;\n \troot /opt/htdocs/www.domain.com/public;\n\n \t#301\n\n \tif ($host = 'domain.com') {\n \t\trewrite ^/(.*)$ https://www.domain.com/$1 permanent;\n \t}\n\n#location ~ /find-app {\n\tif ($http_user_agent ~* \"bingbot|AhrefsBot\") {\nreturn 403;\n}\n#}\n \tlocation / {\n try_files $uri $uri/ /index.php?$query_string;\n }\n #\u7533\u8bf7 let\u2019s Encrypt SSL \u7528\n location ~ /.well-known {\n allow all;\n }\n\n\n \tif (!-e $request_filename) {\n \t}\n\n \tlocation ~ .*\\.(php|php5)?$\n \t{\n \t #fastcgi_pass unix:/tmp/php-cgi.sock;\n \t fastcgi_pass 127.0.0.1:9000;\n \t fastcgi_index index.php;\n \t include fcgi.conf;\n \t}\n\n \tlocation ~ .*\\.(gif|jpg|jpeg|png|bmp|swf)$\n \t{\n \t expires 30d;\n \t}\n\n \tlocation ~ .*\\.(js|css)?$\n \t{\n \t expires 15d;\n \t}\n \taccess_log /data0/logs/domain.log access;\n }\n\n" }, { "author": { "url": "member/Raymondx", "name": "Raymondx", "avatar": "https://cdn.v2ex.com/avatar/b085/5af5/669799_large.png?m=1722155482" }, "url": "t/1060674", "title": "[\u6c42\u52a9\u5927\u4f6c] Nginx \u53cd\u4ee3\u591a\u4e2a\u7f51\u7ad9\u51fa\u73b0\u4e32\u7ad9\u95ee\u9898", "id": "t/1060674", "date_published": "2024-07-28T08:51:12+00:00", "content_html": "\u4f7f\u7528\u5b9d\u5854\u9762\u677f 8.2.0 \u3001Nginx1.22.1 \uff0c\u7cfb\u7edf\u4e3a Ubuntu 20.04LTS
\n\u64cd\u4f5c\uff1a\u4f7f\u7528 Nginx \u53cd\u4ee3\u4e86\u4e09\u4e2a\u7f51\u7ad9
\n\u7f51\u7ad9\u4e00\u4e3a\uff1amap.~.com \u2192 81 \u7aef\u53e3\uff0c\u5f00\u542f https
\n\u7f51\u7ad9\u4e8c\u4e3a\uff1afrp.~.com \u2192 7800 \u7aef\u53e3\uff0c\u672a\u5f00\u542f https
\n\u7f51\u7ad9\u4e09\u4e3a\uff1ar730test.~.com \u2192 81 \u7aef\u53e3\uff0c\u672a\u5f00\u542f https
\n\u5176\u4e2d 81 \u7aef\u53e3\u4e3a frps \u7684 http \u7aef\u53e3\uff0cmap.~.com \u548c r730test.~.com \u90fd\u662f\u90e8\u7f72\u5728\u5185\u7f51\uff0c\u7528 frp \u7a7f\u900f\u51fa\u6765\u7684\uff0c7800 \u662f frp \u7684\u76d1\u63a7\u9762\u677f\u7aef\u53e3
\n\u95ee\u9898\uff1a\u73b0\u5728\u8bbf\u95ee map.~.com \u662f\u6b63\u5e38\u7684\uff0c\u4f46\u662f\u8bbf\u95ee frp.~.com \u548c r730test.~.com \u4f1a\u88ab\u8df3\u8f6c\u5230 https://frp.~.com/\u548c https://r730test.~.com/ \uff0c\u800c\u4e14\u663e\u793a\u7684\u662f map.~.com \u7684\u5185\u5bb9
\n\u5728\u6dfb\u52a0 map.~.com \u7684\u53cd\u4ee3\u4e4b\u524d\u90fd\u662f\u6b63\u5e38\u7684\uff0c\u6dfb\u52a0\u4e86 map.~.com \u7684\u53cd\u4ee3\u4e4b\u540e\u5c31\u51fa\u95ee\u9898\u4e86
\n
Nginx \u914d\u7f6e\u6587\u4ef6\u5982\u4e0b
\nhttps://pastecode.io/s/uni4h5f6
\nhttps://pastecode.io/s/80nxwxhx
\nhttps://pastecode.io/s/0j74wdcn
\n" }, { "author": { "url": "member/wzdc", "name": "wzdc", "avatar": "https://cdn.v2ex.com/gravatar/4783716584813dc2fd65e5b8caf1aa65?s=73&d=retro" }, "url": "t/1060477", "date_modified": "2024-07-27T03:42:10+00:00", "content_html": "\u53cd\u4ee3\u672c\u673a 5000 \u7aef\u53e3\u5e76\u7f13\u5b58\u54cd\u5e94\u7801\u4e3a 302 \u7684\u5185\u5bb9