1import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,g as e,o as i}from"./app-6RIE0gzA.js";const l="/assets/662652-20231101191634640-1926230649-Bv4rU5gA.png",p="/assets/662652-20231101191634617-224049270-CC3fRPz1.png",d="/assets/662652-20231101191634540-1060068344-BXIe0yr1.png",r="/assets/662652-20231101191634517-1520098231-DHL2JD0C.png",c="/assets/662652-20231101191634524-851084188-0LKI2GCs.png",t="/assets/662652-20231101191634574-1810896466-C0QjhnpJ.png",o="/assets/662652-20231101191634646-121914024-OH6noi0i.png",v="/assets/662652-20231101191634521-1619701347-BNzsjeB-.png",h="/assets/662652-20231101191634516-634155082-CMMEfaAo.png",m="/assets/662652-20231101191634453-1642657879-B5CMyHPx.png",u={};function b(g,s){return i(),a("div",null,s[0]||(s[0]=[e(`<h2 id="åè¨" tabindex="-1"><a class="header-anchor" href="#åè¨"><span>åè¨</span></a></h2><blockquote><p>nginx æ¯ä¸ä¸ªé«æ§è½ç弿ºåå代çæå¡å¨å web æå¡å¨ï¼ä¸è¬ç¨æ¥æå»ºéæèµæºæå¡å¨ãè´è½½åè¡¡å¨ãåå代çï¼æ¬æå°å享å
¶å¨ Windows/docker ä¸ç使ç¨,ä½¿ç¨ nssm é¨ç½²ææå¡çæ¹æ¡èæ¬ï¼å±åç½ä¸èªå®ä¹ååè§£å³httpsæç¤ºä¸å®å
¨çè§£å³æ¹æ¡ï¼ä»¥åä¸è·¯è¸©è¿çåã</p></blockquote><h3 id="ç¹ç¹" tabindex="-1"><a class="header-anchor" href="#ç¹ç¹"><span>ç¹ç¹</span></a></h3><ul><li>髿§è½ï¼äºä»¶é©±å¨ç弿¥æ¶æï¼è½å¤å¤ç大éå¹¶åè¿æ¥</li><li>éæèµæºæå¡å¨ï¼é¨ç½²å端éæé¡µé¢åéæèµæº</li><li>åå代çæå¡å¨ï¼æ¥æ¶å®¢æ·ç«¯è¯·æ±ï¼å¹¶å°è¯·æ±è½¬åå°å端æå¡ï¼å¯ä»¥å®ç°è´è½½åè¡¡ã请æ±åååç¼åçåè½</li><li>æ¯æ HTTPS</li></ul><h3 id="ä½¿ç¨æ
åµ" tabindex="-1"><a class="header-anchor" href="#ä½¿ç¨æ
åµ"><span>ä½¿ç¨æ
åµ</span></a></h3><ul><li><p>é
ç½®åå转åå°é¡¹ç®æå¡</p></li><li><p>å¤ç½ç©¿é请æ±è½¬åå°å±åç½æå¡å¨</p></li><li><p>æµè¯ç¯å¢é¡¹ç®ç https é
ç½®</p></li><li><p>éè¦æç½ nginx é»è®¤å¯å¨åä¼åçä»ä¹ï¼</p><ul><li>ç嬿å®ç«¯å£ï¼é»è®¤ 80ï¼</li><li>æ¦æªæ¬æºè®¿é® 80 端å£ç请æ±å° nginx æ¥è¿è¡å¤ç</li><li>å¯ä»¥æ·»å é
ç½®çå¬ä¸åç端å£</li><li>åæ ·çå¬ 80ï¼ä½æ¯å¯ä»¥éè¿ server_name æ¥æå®ä¸åçåå使ç¨ä¸åçè§å</li><li>æ¬å°æµè¯å¯ä»¥éè¿ä¿®æ¹ hosts æä»¶ï¼C:\\Windows\\System32\\drivers\\etc\\hostsï¼æ¥å°åå请æ±è½¬åå°æ¬æº</li><li>
1æå¡å¨éè¦è§£æååå°æå¡å¨ IPï¼ä¸åçäºåè¿éè¦æ³¨æå ¶å®å ¨ç»ï¼é²ç«å¢æ¯å¦å¼å¯æéè¦è®¾ç½®è§å</li></ul></li><li><p>Windows ä¸è·¯å¾éè¦ä½¿ç¨ / æè \\ï¼å¦è·¯å¾ <code>D:\\Software\\nginx-1.24.0\\ssl</code> nginx.conf éè¦é 置为 <code>D:/Software/nginx-1.24.0/ssl/</code> æ <code>D:\\Software\\nginx-1.24.0\\ssl\\</code></p></li></ul><h2 id="å®è·µ" tabindex="-1"><a class="header-anchor" href="#å®è·µ"><span>å®è·µ</span></a></h2><h3 id="åå¤" tabindex="-1"><a class="header-anchor" href="#åå¤"><span>åå¤</span></a></h3><ul><li><p>æ¬æçæ¬ï¼v1.24.0</p></li><li><p>使ç¨ç«¯å£ï¼80 443</p></li><li><p>æåºæ¬ç»æï¼ä¸ä¸ª server èç¹ä¸ä¸ªååé ç½®ï¼è¦æ·»å å ¶ä»é 置添å server èç¹å³å¯</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> worker_processes 1;</span></span> 2<span class="line"><span> events {</span></span> 3<span class="line"><span> worker_connections 1024;</span></span> 4<span class="line"><span> }</span></span> 5<span class="line"><span> http {</span></span> 6<span class="line"><span> server {</span></span> 7<span class="line"><span> listen 80;</span></span> 8<span class="line"><span> server_name localhost;</span></span> 9<span class="line"><span> error_page 500 502 503 504 /50x.html;</span></span> 10<span class="line"><span> location = /50x.html {</span></span> 11<span class="line"><span> root html;</span></span> 12<span class="line"><span> }</span></span> 13<span class="line"><span> }</span></span> 14<span class="line"><span> }</span></span> 15<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li></ul><h3 id="windows-å®è£ 使ç¨-nginx" tabindex="-1"><a class="header-anchor" href="#windows-å®è£ 使ç¨-nginx"><span>Windows å®è£ ä½¿ç¨ nginx</span></a></h3><h4 id="å®è£ è¿è¡" tabindex="-1"><a class="header-anchor" href="#å®è£ è¿è¡"><span>å®è£ è¿è¡</span></a></h4><ul><li><p>ç´æ¥å®ç½ä¸è½½å³å¯ <a href="http://nginx.org/download/nginx-1.24.0.zip" target="_blank" rel="noopener noreferrer">v1.24.0</a></p></li><li><p>ä¸è½½åè§£åå°ï¼D:\\Software\\nginx-1.24.0</p></li><li><p>å¨ç®å½è¾å ¥æ¡æå¼ cmd å¹¶è¿è¡ï¼<code>start nginx</code>è¿è¡ nginxï¼å¦æç«¯å£æ²¡æè¢«å ç¨çè¯è®¿é® localhost å³å¯åºç° welcome 页é¢</p><p><img src="`+l+'" alt="" loading="lazy"><img src="'+p+'" alt="" loading="lazy"></p></li><li><p>å°è¯ä¿®æ¹é ç½®ï¼D:\\Software\\nginx-1.24.0\\confi\\nginx.conf æ·»å ä¸ä¸ªææ¬è¿å</p><figure><img src="'+d+`" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure></li><li><p>æ·»å çææ¬å json è¿å</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> #server{....</span></span> 16<span class="line"><span> #è¿åææ¬</span></span> 17<span class="line"><span> location /text {</span></span> 18<span class="line"><span> add_header Content-Type text/plain;</span></span> 19<span class="line"><span> return 200 'This is a plain text response.';</span></span> 20<span class="line"><span> } </span></span> 21<span class="line"><span> #è¿åjson </span></span> 22<span class="line"><span> location /json {</span></span> 23<span class="line"><span> add_header Content-Type application/json;</span></span> 24<span class="line"><span> return 200 '{"message": "This is a JSON response.233"}';</span></span> 25<span class="line"><span> }</span></span> 26<span class="line"><span></span></span> 27<span class="line"><span> #é»è®¤é ç½®</span></span> 28<span class="line"><span> location / {</span></span> 29<span class="line"><span> root html;</span></span> 30<span class="line"><span> index index.html index.htm;</span></span> 31<span class="line"><span> }</span></span> 32<span class="line"><span> #...}</span></span> 33<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li></ul><h4 id="ååé ç½®" tabindex="-1"><a class="header-anchor" href="#ååé ç½®"><span>ååé ç½®</span></a></h4><ul><li><p>å 卿¬å°æµè¯ï¼æä»¥éè¦ä½¿ç¨åå访é®å° nginxï¼éè¦é ç½® hostsï¼æå¡å¨å¤ç½ååé 置就å°ååè§£æ
33å°æå¡å¨ï¼</p></li><li><p>æ·»å 䏿¡è®°å½ï¼<code> 127.0.0.1 \`\`nginx.devops.test.com</code> ç°å¨é»è®¤å°±è®¿é®<code>nginx.devops.test.com</code> çæ¶å就请æ±å°äº nginx çé»è®¤é ç½®äºï¼nginx é»è®¤çå¬äº localhost:80 ä½¿å ¶è¿åæä»¬æå®çå 容</p><figure><img src="`+r+`" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure></li><li><p>æ·»å server é ç½®èç¹ï¼éè½½é ç½®å访é®ï¼å³å¯çå°è®¿é®æ¾ç¤ºäºé ç½®ä¸çå 容</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> server {</span></span> 34<span class="line"><span> listen 80;</span></span> 35<span class="line"><span> server_name nginx.devops.test.com;</span></span> 36<span class="line"><span> location / {</span></span> 37<span class="line"><span> add_header Content-Type text/plain;</span></span> 38<span class="line"><span> return 200 'nginx.devops.test.com';</span></span> 39<span class="line"><span> }</span></span> 40<span class="line"><span> }</span></span> 41<span class="line"><span> \`\`\`</span></span> 42<span class="line"><span> </span></span> 43<span class="line"><span></span></span> 44<span class="line"><span> </span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>å 为æµè§å¨çä¸äºæºå¶ï¼å¯è½ä¼èªå·±é»è®¤è·³è½¬å° httpsï¼ç¶åè¿çä¸å°åè®®ï¼æ¤æ¶å°±éè¦æå¨æ¹ä¸</p></li></ul><h4 id="ssl-è¯ä¹¦ç³è¯·" tabindex="-1"><a class="header-anchor" href="#ssl-è¯ä¹¦ç³è¯·"><span>SSL è¯ä¹¦ç³è¯·</span></a></h4><p>为äºç»ç½ç«å æéï¼æ°æ®ä¼ è¾çç§å¯æ§ï¼ï¼ä¸è¬ä¸ªäººé¡¹ç®ç¨å è´¹çå°±è¡ï¼ä¸è¿æéå¶ï¼æ¯å¦éé ç¬¦ãæææãå®å ¨æ§çï¼ä¼ä¸ä¸è¬ä¼ä½¿ç¨ä»è´¹è¯ä¹¦ï¼èªè¡è´ä¹°å³å¯ï¼ä¸è¬äºåä¹ä¼æä¾å è´¹è¯ä¹¦ï¼å ¶ä»å è´¹çç®å使ç¨è¿çå°±ä¸é¢ä¸¤ç§</p><ul><li>å¨çº¿ç½ç«ç³è¯·ï¼å¯ä»¥å¨ <a href="https://freessl.cn/" target="_blank" rel="noopener noreferrer">freessl</a> æ ¹æ®éè¦ç³è¯·å è´¹/ä»è´¹è¯ä¹¦ï¼å ¶è¿å 嫿è¯ä¹¦ç®¡çåå°ææéçæå¡</li><li>win-acmeï¼ä¸ä¸ªå è´¹ç弿ºå·¥å ·ï¼ç¨äº Windows ä¸ç Let's Encrypt è¯ä¹¦çèªå¨åè·ååç»è®¢</li></ul><p>妿æ¬å°ä¹éè¦ä½¿ç¨ https çè¯ï¼ä¹å¯ä»¥éè¿ nginx æ¥é ç½®è¯ä¹¦ï¼ä¸ºåºç¨å æéãæå¡å¨çè¯ä¹¦é 置使ç¨ä¸é¢ä¸¤ç§çæï¼åèä¸é¢é ç½®å³å¯</p><h4 id="nginx-æ¬å°é ç½®-https" tabindex="-1"><a class="header-anchor" href="#nginx-æ¬å°é ç½®-https"><span>nginx æ¬å°é ç½® https</span></a></h4><ul><li>ä½¿ç¨ openssl çæèªç¾è¯ä¹¦ï¼ä¼æç¤ºä¸å®å ¨ï¼ä¸ä¸æ¥è§£å³ï¼</li></ul><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span>#便¬¡æ§è¡ï¼è¾å ¥ä¿¡æ¯ï¼æè¿éé½è¾å ¥äº ym</span></span> 45<span class="line"><span>openssl genrsa -out server.key 1024</span></span> 46<span class="line"><span>openssl req -new -key server.key -out server.csr</span></span> 47<span class="line"><span>openssl genrsa -out ca.key 1024</span></span> 48<span class="line"><span>openssl req -new -key ca.key -out ca.csr</span></span> 49<span class="line"><span>openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt</span></span> 50<span class="line"><span>openssl x509 -req -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt</sp
50an></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><figure><img src="`+c+'" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure><ul><li>ä»å¾éé¢å¯ä»¥çå°é½å ä¸ https äºï¼æä¹è¿æ¯ä¸å®å ¨ï¼çè³ç¬¬ä¸æ¬¡è¿è¢«æ¦æªäºï¼è¿ä¸ªæ¯æµè§å¨æºå¶é®é¢ï¼æ¾äºä¸æä¸ï¼ç»äºæ¾å°äº<a href="https://deliciousbrains.com/ssl-certificate-authority-for-local-https-development/" target="_blank" rel="noopener noreferrer">è§£å³æ¹æ¡</a> æè·¯æ¥æº <a href="https://stackoverflow.com/questions/7580508/getting-chrome-to-accept-self-signed-localhost-certificate#answer-60516812" target="_blank" rel="noopener noreferrer">stackoverflow</a>ï¼ä¸é¢è¯¦ç»è¯´ææ¥éª¤</li></ul><ol><li><p>çæ CA è¯ä¹¦ï¼æå¨ç®å½ï¼D:/Software/nginx-1.24.0/sslï¼</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> winpty openssl genrsa -des3 -out myCA.key 2048</span></span>\n<span class="line"><span> winpty openssl req -x509 -new -nodes -key myCA.key -sha256 -days 1825 -out myCA.pem</span></span>\n<span class="line"><span> ```</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>å¯¼å ¥ myCA.pem è¯ä¹¦å°åä¿¡ä»»çæ ¹è¯ä¹¦é¢åæºæï¼Win+R æå¼ï¼<code>certlm.msc</code>ï¼</p><figure><img src="'+t+`" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure></li><li><p>å建 CA ç¾åè¯ä¹¦ï¼ä¸åååå建ä¸åçè¯ä¹¦ï¼</p></li></ol><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span>winpty openssl genrsa -out nginx.devops.test.com.key 2048</span></span> 51<span class="line"><span>winpty openssl req -new -key nginx.devops.test.com.key -out nginx.devops.test.com.csr</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><ol start="4"><li><p>å建 X509 V3 è¯ä¹¦æ©å±é ç½®æä»¶ nginx.devops.test.comãext</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> authorityKeyIdentifier=keyid,issuer</span></span> 52<span class="line"><span> basicConstraints=CA:FALSE</span></span> 53<span class="line"><span> keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment</span></span> 54<span class="line"><span> subjectAltName = @alt_names</span></span> 55<span class="line"><span></span></span> 56<span class="line"><span> [alt_names]</span></span> 57<span class="line"><span> DNS.1 = nginx.devops.test.com</span></span> 58<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>çæè¯ä¹¦</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> winpty openssl x509 -req -in nginx.devops.test.com.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out nginx.devops.test.com.crt -days 825 -sha256 -extfile nginx.devops.test.com.ext</span></span> 59<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>é ç½® nginx</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> server {</span></span> 60<span class="line"><span> listen 80;</span></span> 61<span class="line"><span> listen 443 ssl;</span></span> 62<span class="line"><span> server_name nginx.devops.test.com;</span></span> 63<span class="line"><span></span></span> 64<span class="line"><span> ssl_certificate D:/Software/nginx-1.24.0/ssl/nginx.devops.test.com.crt;</span></span> 65<span class="line"><span> ssl_certificate_key D:/Software/nginx-1.24.0/ssl/nginx.devops.test.com.key;
65</span></span> 66<span class="line"><span></span></span> 67<span class="line"><span> ssl_session_cache shared:SSL:1m;</span></span> 68<span class="line"><span> ssl_session_timeout 5m;</span></span> 69<span class="line"><span></span></span> 70<span class="line"><span> ssl_ciphers HIGH:!aNULL:!MD5;</span></span> 71<span class="line"><span> ssl_prefer_server_ciphers on;</span></span> 72<span class="line"><span> location / {</span></span> 73<span class="line"><span> add_header Content-Type text/plain;</span></span> 74<span class="line"><span> return 200 'nginx.devops.test.com666';</span></span> 75<span class="line"><span> }</span></span> 76<span class="line"><span> }</span></span> 77<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>æåï¼æ²¡æä¸å®å ¨åæ ·äº</p><figure><img src="`+o+`" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure></li><li><p>妿è¦å¨å±åç½å ¶ä»æºå¨è®¿é®ï¼ä¹éè¦æ§è¡ç¬¬ 2 æ¥æä½å¯¼å ¥ myCA.pem è¯ä¹¦ï¼å¹¶é 置对åºç hosts</p></li></ol><h4 id="使ç¨-nssm-å建-nginx-æå¡" tabindex="-1"><a class="header-anchor" href="#使ç¨-nssm-å建-nginx-æå¡"><span>ä½¿ç¨ nssm å建 nginx æå¡</span></a></h4><ul><li><p>æ¯æ¬¡æ¹å®é ç½®è¿è¦æ²å½ä»¤éå¯ï¼å¼æºè¿è¦å¯å¨ï¼é£å¾ææ¾æ¯ä¸å¤ªæ¹ä¾¿çï¼æä»¥é¨ç½² nginx æå¡å°±å¾æå¿ è¦äº</p></li><li><p>å Windows 计åä»»å¡è®¾ç½®å¼æºå¯å¨ç¸æ¯ï¼ææ´å¾ååä¹ æ¯äºä½¿ç¨ <a href="https://nssm.cc/download" target="_blank" rel="noopener noreferrer">nssm </a>ï¼ä¸ä¸ªæå¡å°è£ ç¨åºï¼å®å¯ä»¥æ¹ä¾¿çå°ç¨åºå°è£ æ windows æå¡è¿è¡ï¼æ¥ä¸ºåºç¨å建ä¸ä¸ªæå¡è¿è¡ç®¡çã</p></li><li><p>ä¸é¢å享两个快éå建æå¡çèæ¬å使ç¨ãéè¿è¿ä¸¤ä¸ªèæ¬ï¼åªéä¿®æ¹å¯¹åºè·¯å¾ï¼å°±å¯ä»¥ä¸ºåºç¨å建æå¡å¹¶åå°å¼æºèªå¯äº</p></li><li><p>æ·»å ä¸ä¸ªå¯å¨ nginx çèæ¬ start.bat</p><ul><li>æ¾å¨ nginx ç®å½ä¸ï¼D:\\Software\\nginx-1.24.0\\start.bat ï¼ ï¼ä»¥<strong>管çå</strong> <strong>身份è¿è¡</strong>å³å¯å é¤ nginx è¿ç¨å¹¶éæ°å¯å¨</li><li>å é¤è¿ç¨å¹¶éå¯ï¼<strong>æµè¯ç¯å¢ä½¿ç¨ï¼ç产ç¯å¢ä¸å»ºè®®ç´æ¥ä½¿ç¨</strong></li><li><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span>@echo off</span></span> 78<span class="line"><span>cd /d %~dp0</span></span> 79<span class="line"><span>echo kill nginx</span></span> 80<span class="line"><span>taskkill /fi "imagename eq nginx.EXE" /f</span></span> 81<span class="line"><span>echo start nginx</span></span> 82<span class="line"><span>start nginx</span></span> 83<span class="line"><span>echo start nginx success</span></span> 84<span class="line"><span>pause</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li></ul></li><li><p>å° start.bat èæ¬ä½¿ç¨ nssm çæ¹å¼è®¾ç½®ä¸ºæå¡ <a href="https://nssm.cc/release/nssm-2.24.zip" target="_blank" rel="noopener noreferrer">nssm v2.24 ä¸è½½</a></p><ul><li><p>ä¸è½½åè§£åï¼D:\\Software\\nssm\\nssm-2.24\\win64</p></li><li><p>å¨ç®å½æ·»å Nginx-service.batï¼ä»¥å¿«éå建并å¯å¨ nginx æå¡ï¼æ ¹æ®éè¦ä¿®æ¹æå¡åå nginx å¯å¨èæ¬çè·¯å¾å³å¯</p><ul><li><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span>@echo off</span></span> 85<span class="line"><span>cd /d %~dp0</span></span> 86<span class="line"><span>nssm stop Nginx-service</span></span> 87<span class="line"><span>nssm remove Nginx-service confirm</span></span> 88<span class="line"><span>nssm install Nginx-service D:\\Software\\nginx-1.24.0\\start.bat</span></span> 89<span class="line"><span>sc start Nginx-service</span></span> 90<span class="line"><span>pause</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li></ul></li><li><p>以<strong>管çå</strong> <strong>身份è¿è¡</strong>ï¼å³å¯å建并å¯å¨æå¡ï¼</p><ul><li><img src="`+v+'" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></li></ul></li><li><p>è³æ¤ï¼çµèé坿å¡ä¹å°èªå¯ï¼å¹¶ä¸è¿å¯ä»¥éè¿æå¡çéæ°å¯å¨æ¥éå¯åºç¨</p></li></ul></li></ul><h4 id="常ç¨å½ä»¤" tabindex="-1"><a class="header-anchor" href="#常ç¨å½ä»¤"><span>常ç¨å½ä»¤</span></a></h4><ul><li><p>å¯å¨ï¼<code>start nginx</code></p></li><li><p>éè½½é ç½®ï¼<code>nginx -s reload</code>
90 妿åºéä¼åæ»å°ä¸ä¸æ¬¡æ£ç¡®é ç½®æä»¶ä¿ææ£å¸¸è¿è¡ï¼å¯è½ä¼åå¨ç¼åï¼Ctrl+F5 å·æ°æµè§å¨</p></li><li><p>忢 nginxï¼å é¤ nginx è¿ç¨ï¼ï¼<code>taskkill /fi "imagename eq nginx.EXE" /f</code></p><ul><li>windows ä¸ä½¿ç¨ nginx ä¸ç´æä¸ªé®é¢å°±æ¯éè½½é ç½®åï¼ä¸ç®¡ææ²¡æé®é¢é½å¯è½ä¼å¯å¨å¤ä¸ª nginx è¿ç¨ï¼æåéè½½é ç½®æ æï¼å°±åªè½å é¤è¿ç¨ååå¯å¨äº</li></ul></li></ul><h3 id="使ç¨-docker-compose-å®è£ -nginx" tabindex="-1"><a class="header-anchor" href="#使ç¨-docker-compose-å®è£ -nginx"><span>ä½¿ç¨ Docker Compose å®è£ nginx</span></a></h3><blockquote><p>æ¬ç¯æç« åºäº Docker V24 å Docker Compose V2ï¼å®è£ å¯ä»¥åèä¹åç<a href="https://juejin.cn/post/7283873796977197108" target="_blank" rel="noopener noreferrer">æç« </a></p></blockquote><h4 id="é 置说æ" tabindex="-1"><a class="header-anchor" href="#é 置说æ"><span>é 置说æ</span></a></h4><ul><li><p>éåçæ¬ï¼<code>nginx:1.24.0</code></p></li><li><p>æå®ç«¯å£ï¼80 443</p></li><li><p>æå®æ¶åºï¼<code>TZ : 'Asia/Shanghai'</code>ï¼è®©æ¥å¿æä»¶æ¾ç¤ºå京æ¶é´</p></li><li><p>æå®æè½½ç®å½</p><ul><li><code>./config/nginx.conf:/etc/nginx/nginx.conf</code>ï¼é»è®¤é ç½®æä»¶ï¼ä¼å è½½ conf.d ä¸çææé ç½®</li><li><code>./config/conf.d:/etc/nginx/conf.d</code>ï¼èªå®ä¹é ç½®æä»¶</li><li><code>./html:/usr/share/nginx/html</code>ï¼é»è®¤çéææä»¶ç®å½</li><li><code>./logs:/var/log/nginx</code>ï¼é»è®¤çæ¥å¿ç®å½</li><li><code>./ssl:/ssl</code>ï¼è¯ä¹¦ç®å½ï¼é ç½®ä¸ä½¿ç¨ /ssl/xxx æå®</li></ul></li><li><p>é ç½®éè½½ï¼<code>docker exec nginx_1_24 nginx -s reload</code></p></li><li><p>æå®ç½ç»ï¼devopsnetwork ï¼<code>docker network create devopsnetwork</code>ï¼</p></li><li><p>ç®å½ç»æ</p><figure><img src="'+h+`" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure></li></ul><h4 id="é ç½®æä»¶-compose-yml" tabindex="-1"><a class="header-anchor" href="#é ç½®æä»¶-compose-yml"><span>é ç½®æä»¶ compose.yml</span></a></h4><ul><li>å°åå¤å¥½ç compose.yml config ssl html æ·è´å°æå¡å¨</li><li>ç¶åè¿è¡<code>docker compose up -d</code>å³å¯</li></ul><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span>version: '3.1'</span></span> 91<span class="line"><span>services:</span></span> 92<span class="line"><span> nginx:</span></span> 93<span class="line"><span> image: nginx:1.24.0</span></span> 94<span class="line"><span> container_name: nginx_1_24</span></span> 95<span class="line"><span> restart: always</span></span> 96<span class="line"><span> environment:</span></span> 97<span class="line"><span> TZ : 'Asia/Shanghai'</span></span> 98<span class="line"><span> ports:</span></span> 99<span class="line"><span> - "80:80"</span></span> 100<span class="line"><span> - "443:443"</span></span> 101<span class="line"><span> volumes:</span></span> 102<span class="line"><span> - ./config/nginx.conf:/etc/nginx/nginx.conf</span></span> 103<span class="line"><span> - ./config/conf.d:/etc/nginx/conf.d</span></span> 104<span class="line"><span> - ./html:/usr/share/nginx/html</span></span> 105<span class="line"><span> - ./logs:/var/log/nginx</span></span> 106<span class="line"><span> - ./ssl:/ssl</span></span> 107<span class="line"><span> </span></span> 108<span class="line"><span> networks:</span></span> 109<span class="line"><span> - devopsnetwork</span></span> 110<span class="line"><span></span></span> 111<span class="line"><span>networks:</span></span> 112<span class="line"><span> devopsnetwork:</span></span> 113<span class="line"><span> external: true</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="é»è®¤ç-nginx-conf-v1-24" tabindex="-1"><a class="header-anchor" href="#é»è®¤ç-nginx-conf-v1-24"><span>é»è®¤ç nginx.conf v1.24</span></a></h4><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span>user nginx;</span></span> 114<span class="line"><span>worker_processes auto;</span></span> 115<span class="line"><span></span></span> 116<span class="line"><span>error_log /var/log/nginx/error.log notice;</span></span> 117<span class="line"><span>pid /var/run/nginx.pid;</span></span> 118<span class="line"><span></span></span> 119<span class="line"><span>events {</span></span> 120<span class="line"><span> worker_connections 1024;</span></span> 121<span class="line"><span>}</span></span> 122<span class="line"><span></span></span> 123<span class="line"><span>http {</span></span> 124<span class="line"><span> include /etc/nginx/mime.types;</span></span> 125<span class="line"><span>
125 default_type application/octet-stream;</span></span> 126<span class="line"><span></span></span> 127<span class="line"><span> log_format main '$remote_addr - $remote_user [$time_local] "$request" '</span></span> 128<span class="line"><span> '$status $body_bytes_sent "$http_referer" '</span></span> 129<span class="line"><span> '"$http_user_agent" "$http_x_forwarded_for"';</span></span> 130<span class="line"><span></span></span> 131<span class="line"><span> access_log /var/log/nginx/access.log main;</span></span> 132<span class="line"><span></span></span> 133<span class="line"><span> sendfile on;</span></span> 134<span class="line"><span> #tcp_nopush on;</span></span> 135<span class="line"><span></span></span> 136<span class="line"><span> keepalive_timeout 65;</span></span> 137<span class="line"><span></span></span> 138<span class="line"><span> #gzip on;</span></span> 139<span class="line"><span></span></span> 140<span class="line"><span> include /etc/nginx/conf.d/*.conf;</span></span> 141<span class="line"><span>}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="èªå®ä¹é ç½®-conf-d-default-conf" tabindex="-1"><a class="header-anchor" href="#èªå®ä¹é ç½®-conf-d-default-conf"><span>èªå®ä¹é ç½® conf.d/default.conf</span></a></h4><p>å°åæ Windows çé ç½®é¨åä¿®æ¹å° default.conf å¦ä¸æç¤º</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span>server {</span></span> 142<span class="line"><span> listen 80;</span></span> 143<span class="line"><span> listen 443 ssl;</span></span> 144<span class="line"><span> server_name nginx.devops.test.com;</span></span> 145<span class="line"><span></span></span> 146<span class="line"><span> ssl_certificate /ssl/nginx.devops.test.com.crt;</span></span> 147<span class="line"><span> ssl_certificate_key /ssl/nginx.devops.test.com.key;</span></span> 148<span class="line"><span></span></span> 149<span class="line"><span> ssl_session_cache shared:SSL:1m;</span></span> 150<span class="line"><span> ssl_session_timeout 5m;</span></span> 151<span class="line"><span></span></span> 152<span class="line"><span> ssl_ciphers HIGH:!aNULL:!MD5;</span></span> 153<span class="line"><span> ssl_prefer_server_ciphers on;</span></span> 154<span class="line"><span> location / {</span></span> 155<span class="line"><span> add_header Content-Type text/plain;</span></span> 156<span class="line"><span> return 200 'nginx.devops.test.com 001';</span></span> 157<span class="line"><span> }</span></span> 158<span class="line"><span>}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h4 id="å建è¯ä¹¦-ssl-ç®å½" tabindex="-1"><a class="header-anchor" href="#å建è¯ä¹¦-ssl-ç®å½"><span>å建è¯ä¹¦ ssl ç®å½</span></a></h4><p>ä¸ä¼ çæç ssl è¯ä¹¦æè å¨ linux ä¸ä½¿ç¨ä¸é¢ openssl çæ¹å¼éæ°çæååè¯ä¹¦ï¼ç¶åæ¬å°æ·»å pem è¯ä¹¦ï¼å³å¯ä½¿ç¨ https</p><h3 id="nginx-çåºç¨" tabindex="-1"><a class="header-anchor" href="#nginx-çåºç¨"><span>Nginx çåºç¨</span></a></h3><ul><li>åé¢æç« æä»¬å®è£ äº Apolloï¼RabbitMQ ååç§å¸¸ç¨æ°æ®åºï¼ä¸é¢å°éè¿ nginx ç»ä¹åæç« ä¸çåºç¨é ç½®åå转å</li><li>éè¿åå访é®å°åèªåºç¨ä¸ï¼èæ éåä½¿ç¨ IP+ç«¯å£æ¥è®¿é®åºç¨ï¼è¿æ ·å°±ç®åé¢é¨ç½²æ¹å¼/IPã端å£åéååï¼åªéè¦ä¿®æ¹ nginx ç转åé ç½®å³å¯</li></ul><h4 id="æ¬å°ä½¿ç¨åååçé ç½®" tabindex="-1"><a class="header-anchor" href="#æ¬å°ä½¿ç¨åååçé ç½®"><span>æ¬å°ä½¿ç¨åååçé ç½®</span></a></h4><p>è¦æ³å¨å±åç½ä½¿ç¨èªå®ä¹çåå访é®åºç¨ï¼éè¦å é ç½® hosts æä»¶ï¼è¿éä½¿ç¨ hosts å°ååè¯·æ±æåç®æ æå¡å¨ 192.168.123.214</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span>192.168.123.214 apollo.devops.test.com</span></span> 159<span class="line"><span>192.168.123.214 rabbitmq.devops.test.com</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>è¿å¯ä»¥æå»ºä¸ä¸ª dns æå¡ï¼è®¾ç½®æ¬æºç dnsï¼å³å¯å°åå请æ±äº¤å dns è§£æå°å¯¹åºæå¡ï¼å¹¶ä¸è½å¤å®ç°æ³è§£æ</p><h4 id="apollo-ç转åé ç½®" tabindex="-1"><a class="header-anchor" href="#apollo-ç转åé ç½®"><span>Apollo ç转åé ç½®</span></a></h4><ul><li><p>Apollo 颿¿å°åï¼http://192.168.123.214:8070/</p></li><li><p>设å®ååï¼apollo.devops.test.com</p></li><li><p>å¯¹åº server é ç½®ï¼å 为åå±ä¸ä¸ªç½ç»ï¼æä»¥ä½¿ç¨å®¹å¨åå 端å£è®¿é®å³å¯</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> server {</span></span> 160<span class="line"><span> listen 80;</span></span> 161<span class="line"><span> server_name apollo.devops.test.com;</span></span> 162<span class="line"><span> location / {</span></span> 163<span class="line"><span> proxy_pass http://apollo_portal_2_1:8070/;</span></span> 164<span class="line"><span> #䏿¸¸ä¸»æºå</span></span> 165<span class="line"><span> proxy_set_header Host $host;</span></span> 166<span class="line"><span> # 客æ·ç«¯åéçåå§ä¸»æºå</span></span> 167<span class="line"><span> #proxy_set_header host $http_host; </span></span> 168<span class="line"><span> proxy_set_header X-Real-IP $remote_addr;</span></span> 169<span class="line"><span> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</span></span> 170<span class="line"><span> proxy_set_header X-Forwarded-Proto $scheme;</span></span> 171<span class="line"><span> }</span></span> 172<span class="line"><span> }</span></span> 173<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>Apollo é ç½® httpsï¼å¹¶éå®å http å° https</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> server {</span></span> 174<span class="line"><span> listen 80;</span></span> 175<span class="line"><span> server_name apollo.devops.test.com;</span></span> 176<span class="line"><span> return 301 https://$host$request_uri;
176</span></span> 177<span class="line"><span> }</span></span> 178<span class="line"><span> server {</span></span> 179<span class="line"><span> listen 443 ssl;</span></span> 180<span class="line"><span> server_name apollo.devops.test.com;</span></span> 181<span class="line"><span></span></span> 182<span class="line"><span> ssl_certificate /certs/apollo.devops.test.com/server.crt;</span></span> 183<span class="line"><span> ssl_certificate_key /certs/apollo.devops.test.com/server.key;</span></span> 184<span class="line"><span> ssl_session_cache shared:SSL:1m;</span></span> 185<span class="line"><span> ssl_session_timeout 5m;</span></span> 186<span class="line"><span> ssl_ciphers HIGH:!aNULL:!MD5;</span></span> 187<span class="line"><span> ssl_prefer_server_ciphers on;</span></span> 188<span class="line"><span></span></span> 189<span class="line"><span> location / {</span></span> 190<span class="line"><span> proxy_pass http://apollo_portal_2_1:8070/;</span></span> 191<span class="line"><span> proxy_set_header host $http_host;</span></span> 192<span class="line"><span> proxy_set_header x-real-ip $remote_addr;</span></span> 193<span class="line"><span> proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;</span></span> 194<span class="line"><span> proxy_set_header x-forwarded-proto $scheme;</span></span> 195<span class="line"><span> }</span></span> 196<span class="line"><span> }</span></span> 197<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li></ul><h4 id="rabbitmq-ç转åé ç½®" tabindex="-1"><a class="header-anchor" href="#rabbitmq-ç转åé ç½®"><span>RabbitMQ ç转åé ç½®</span></a></h4><ul><li><p>RabbitMQ 颿¿å°åï¼http://192.168.123.214:15672/#/</p></li><li><p>设å®ååï¼rabbitmq.devops.test.com</p></li><li><p>å¯¹åº server é ç½®ï¼å 为åå±ä¸ä¸ªç½ç»ï¼æä»¥ä½¿ç¨å®¹å¨åå 端å£è®¿é®å³å¯</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> server {</span></span> 198<span class="line"><span> listen 80;</span></span> 199<span class="line"><span> server_name rabbitmq.devops.test.com;</span></span> 200<span class="line"><span></span></span> 201<span class="line"><span> location / {</span></span> 202<span class="line"><span> proxy_pass http://rabbitmq_3_12:15672/;</span></span> 203<span class="line"><span> proxy_set_header Host $host;</span></span> 204<span class="line"><span> proxy_set_header X-Real-IP $remote_addr;</span></span> 205<span class="line"><span> proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;</span></span> 206<span class="line"><span> proxy_set_header X-Forwarded-Proto $scheme;</span></span> 207<span class="line"><span> }</span></span> 208<span class="line"><span> }</span></span> 209<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>RabbitMQ é ç½® httpsï¼å¹¶éå®å http å° https</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> server {</span></span> 210<span class="line"><span> listen 80;</span></span> 211<span class="line"><span> server_name rabbitmq.devops.test.com;</span></span> 212<span class="line"><span> return 301 https://$host$request_uri;
212</span></span> 213<span class="line"><span> }</span></span> 214<span class="line"><span> server {</span></span> 215<span class="line"><span> listen 443 ssl;</span></span> 216<span class="line"><span> server_name apollo.devops.test.com;</span></span> 217<span class="line"><span></span></span> 218<span class="line"><span> ssl_certificate /certs/apollo.devops.test.com/server.crt;</span></span> 219<span class="line"><span> ssl_certificate_key /certs/apollo.devops.test.com/server.key;</span></span> 220<span class="line"><span> ssl_session_cache shared:SSL:1m;</span></span> 221<span class="line"><span> ssl_session_timeout 5m;</span></span> 222<span class="line"><span> ssl_ciphers HIGH:!aNULL:!MD5;</span></span> 223<span class="line"><span> ssl_prefer_server_ciphers on;</span></span> 224<span class="line"><span></span></span> 225<span class="line"><span> location / {</span></span> 226<span class="line"><span> proxy_pass http://apollo_portal_2_1:8070/;</span></span> 227<span class="line"><span> proxy_set_header host $http_host;</span></span> 228<span class="line"><span> proxy_set_header x-real-ip $remote_addr;</span></span> 229<span class="line"><span> proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;</span></span> 230<span class="line"><span> proxy_set_header x-forwarded-proto $scheme;</span></span> 231<span class="line"><span> }</span></span> 232<span class="line"><span> }</span></span> 233<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li></ul><h4 id="ç¸å ³èæ¬æ±æ»" tabindex="-1"><a class="header-anchor" href="#ç¸å ³èæ¬æ±æ»"><span>ç¸å ³èæ¬æ±æ»</span></a></h4><ul><li><p>èæ¬æ¬å°ç®å½é¢è§ï¼æ·»å äºç³»ç»å¤æ linuxï¼æ§è¡éè¦ç»è¦æ§è¡çèæ¬æ·»å æ§è¡æéï¼<code>chmod +x ./01.build-pem.sh</code></p><figure><img src="`+m+`" alt="" tabindex="0" loading="lazy"><figcaption></figcaption></figure></li><li><p>nginx-start.bat :å é¤ nginx è¿ç¨å¹¶å¯å¨ nginx æå¡</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> @echo off</span></span> 234<span class="line"><span> cd /d %~dp0</span></span> 235<span class="line"><span> echo kill nginx</span></span> 236<span class="line"><span> taskkill /fi "imagename eq nginx.EXE" /f</span></span> 237<span class="line"><span> echo start nginx</span></span> 238<span class="line"><span> start nginx</span></span> 239<span class="line"><span> echo start nginx success</span></span> 240<span class="line"><span> pause</span></span> 241<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>nginx-nssm-service.bat å建 nginx æå¡èæ¬</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> @echo off</span></span> 242<span class="line"><span> cd /d %~dp0</span></span> 243<span class="line"><span> nssm stop Nginx-service</span></span> 244<span class="line"><span> nssm remove Nginx-service confirm</span></span> 245<span class="line"><span> nssm install Nginx-service D:\\Software\\nginx-1.24.0\\start.bat</span></span> 246<span class="line"><span> sc start Nginx-service</span></span> 247<span class="line"><span> pause</span></span> 248<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>01.build-pem.sh å建èªç¾è¯ä¹¦</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> #!/bin/sh</span></span> 249<span class="line"><span> # çææ ¹è¯ä¹¦,访é®å®¢æ·ç«¯éè¦å®è£ å¯¼å ¥ myCA.pemï¼æ ¹æ®myCA.key,myCA.pemåçænginxéè¦çè¯ä¹¦</sp
249an></span> 250<span class="line"><span> if uname | grep -q "MINGW"; then</span></span> 251<span class="line"><span> winpty openssl genrsa -out myCA.key 2048</span></span> 252<span class="line"><span> winpty openssl req -x509 -new -nodes -key myCA.key -days 1825 -out myCA.pem</span></span> 253<span class="line"><span> else</span></span> 254<span class="line"><span> openssl genrsa -out myCA.key 2048</span></span> 255<span class="line"><span> openssl req -x509 -new -nodes -key myCA.key -days 1825 -out myCA.pem</span></span> 256<span class="line"><span> fi</span></span> 257<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>02.build-ssl.sh å建ååè¯ä¹¦</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span> #!/bin/bash</span></span> 258<span class="line"><span></span></span> 259<span class="line"><span> if [ "$#" -ne 1 ]; then</span></span> 260<span class="line"><span> echo "Usage: Must supply a domain"</span></span> 261<span class="line"><span> exit 1</span></span> 262<span class="line"><span> fi</span></span> 263<span class="line"><span></span></span> 264<span class="line"><span> DOMAIN=$1</span></span> 265<span class="line"><span></span></span> 266<span class="line"><span> mkdir $DOMAIN</span></span> 267<span class="line"><span> #!/bin/sh</span></span> 268<span class="line"><span> if uname | grep -q "MINGW"; then</span></span> 269<span class="line"><span> winpty openssl genrsa -out $DOMAIN/server.key 2048</span></span> 270<span class="line"><span> winpty openssl req -new -key $DOMAIN/server.key -out $DOMAIN/server.csr</span></span> 271<span class="line"><span> else</span></span> 272<span class="line"><span> openssl genrsa -out $DOMAIN/server.key 2048</span></span> 273<span class="line"><span> openssl req -new -key $DOMAIN/server.key -out $DOMAIN/server.csr</span></span> 274<span class="line"><span> fi</span></span> 275<span class="line"><span></span></span> 276<span class="line"><span> cat >$DOMAIN/server.ext <<EOF</span></span> 277<span class="line"><span> authorityKeyIdentifier=keyid,issuer</span></span> 278<span class="line"><span> basicConstraints=CA:FALSE</span></span> 279<span class="line"><span> keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment</span></span> 280<span class="line"><span> subjectAltName = @alt_names</span></span> 281<span class="line"><span> [alt_names]</span></span> 282<span class="line"><span> DNS.1 = $DOMAIN</span></span> 283<span class="line"><span> EOF</span></span> 284<span class="line"><span></span></span> 285<span class="line"><span> if uname | grep -q "MINGW"; then</span></span> 286<span class="line"><span> winpty openssl x509 -req -in $DOMAIN/server.csr -CA ./myCA.pem -CAkey ./myCA.key -CAcreateserial -out $DOMAIN/server.crt -days 36500 -extfile $DOMAIN/server.ext</span></span> 287<span class="line"><span> else</span></span> 288<span class="line"><span> openssl x509 -req -in $DOMAIN/server.csr -CA ./myCA.pem -CAkey ./myCA.key -CAcreateserial -out $DOMAIN/server.crt -days 36500 -extfile $DOMAIN/server.ext</span></span> 289<span class="line"><span> fi</span></span> 290<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li><li><p>03.gen.sh å å建èªç¾è¯ä¹¦ï¼åæ§è¡ gen.sh çæéè¦çååè¯ä¹¦ï¼é ç½®å° nginx å³å¯</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span></span></span> 291<span class="line"><span> #!/bin/bash</span></span> 292<span class="line"><span> # è·åå½åèæ¬æå¨ç®å½</span></span> 293<span class="line"><span> script_dir=$(dirname "$0")</span></span> 294<span class="line"><span></span></span> 295<span class="line"><span> sh $script_dir/02.build-ssl.sh nginx.devops.test.com</span></span> 296<span class="line"><span></span></span> 297<span class="line"><span> sh $script_dir/02.build-ssl.sh apollo.devops.test.com</span></span> 298<span class="line"><span></span></span> 299<span class="line"><span> sh $script_dir/02.build-ssl.sh rabbitmq.devops.test.com</span></span> 300<span class="line"><span> \`\`\`</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div></li></ul><h3 id="踩è¿çå" tabindex="-1"><a class="header-anchor" href="#踩è¿çå"><span>
300踩è¿çå</span></a></h3><h4 id="windows-ç¯å¢-nginx-s-reload-åå¤ä¸ª-nginx-è¿ç¨" tabindex="-1"><a class="header-anchor" href="#windows-ç¯å¢-nginx-s-reload-åå¤ä¸ª-nginx-è¿ç¨"><span>Windows ç¯å¢ nginx -s reload åå¤ä¸ª nginx è¿ç¨</span></a></h4><p>ç®ååªè½éè¿<code>taskkill /fi "imagename eq nginx.EXE" /f</code>å é¤è¿ç¨åå¯å¨</p><h4 id="windows-ä¸ä½¿ç¨-openssl-éè¦æ·»å åç¼-winpty-openssl" tabindex="-1"><a class="header-anchor" href="#windows-ä¸ä½¿ç¨-openssl-éè¦æ·»å åç¼-winpty-openssl"><span>Windows ä¸ä½¿ç¨ openssl éè¦æ·»å åç¼ <code>winpty openssl</code></span></a></h4><p>ä¸å¼å§æ¯æ§è¡ <code>openssl genrsa -out server.key 2048</code>å½ä»¤å¡æ»</p><p>å颿¾å°ä¸ç¯<a href="https://xautshuanglong.github.io/2019/02/22/Libraries/OpenSSL%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/" target="_blank" rel="noopener noreferrer">æç« </a>è¯´æ¯ git bash å¯ç çé®é¢ï¼å äºå¯ç åæ°ç¡®å®å¯ä»¥äºï¼<code>openssl genrsa -des3 -out myCA.key -passout pass:mima 2048</code>使¯åç»ä½¿ç¨ <code>openssl req</code>è¿æ¯å¡æ»ï¼</p><p>æåè§£å³èªç¾è¯ä¹¦æä¿¡çæ¶åæåç°æ¯éè¦å ä¸ winpty ä½¿ç¨ææ¯æ£è§£</p><h4 id="æ¬å°èªç¾è¯ä¹¦é
ç½®-https-æµè§å¨ä¾æ§æç¤ºä¸å®å
¨" tabindex="-1"><a class="header-anchor" href="#æ¬å°èªç¾è¯ä¹¦é
ç½®-https-æµè§å¨ä¾æ§æç¤ºä¸å®å
¨"><span>æ¬å°èªç¾è¯ä¹¦é
ç½® https æµè§å¨ä¾æ§æç¤ºä¸å®å
¨</span></a></h4><p>ç产对åºååçè¯ä¹¦ï¼å¹¶å¨å®¢æ·ç«¯å®è£
è¯ä¹¦ï¼æ¾å°ç <a href="https://deliciousbrains.com/ssl-certificate-authority-for-local-https-development/" target="_blank" rel="noopener noreferrer">è§£å³æ¹æ¡</a> ï¼ä»¥åæè·¯æ¥æº <a href="https://stackoverflow.com/questions/7580508/getting-chrome-to-accept-self-signed-localhost-certificate#answer-60516812" target="_blank" rel="noopener noreferrer">stackoverflow</a></p><h4 id="容å¨ä¸-nginx-conf-é»è®¤é
ç½®é®é¢" tabindex="-1"><a class="header-anchor" href="#容å¨ä¸-nginx-conf-é»è®¤é
ç½®é®é¢"><span>容å¨ä¸ nginx.conf é»è®¤é
ç½®é®é¢</span></a></h4><p>ä¸åççæ¬å¯è½é»è®¤é
ç½®ä¸ä¸æ ·ï¼å¯ä»¥å
ä¸æè½½é
ç½®æå®¹å¨çé»è®¤é
ç½®æä»¶å¤å¶åºæ¥ï¼å¨é»è®¤é
ç½®åºç¡ä¸è¿è¡ä¿®æ¹ï¼å¯å°èµ°å¼¯è·¯ãå°¤å
¶å¦ææ¯å° Windows ä¸é¢ çé
置修æ¹å°å®¹å¨ä¸ï¼éè¦æ³¨æè·¯å¾é®é¢ã</p><p>æ¯å¦ windows ä¸é
ç½®éæç«ç¹æ ¹ç®å½ï¼<code>root html;</code>ï¼å¨å®¹å¨ä¸åéè¦é
置为<code>root /usr/share/nginx/html;</code>æçæ</p><h4 id="容å¨ä¸éè½½é
ç½®" tabindex="-1"><a class="header-anchor" href="#容å¨ä¸éè½½é
ç½®"><span>容å¨ä¸éè½½é
ç½®</span></a></h4><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" data-title="" style="--shiki-light:#383A42;--shiki-dark:#abb2bf;--shiki-light-bg:#FAFAFA;--shiki-dark-bg:#282c34;"><pre class="shiki shiki-themes one-light one-dark-pro vp-code"><code><span class="line"><span>docker exec nginx_1_24 nginx -s reload</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><h3 id="ç¸å
³ææ¡£" tabindex="-1"><a class="header-anchor" href="#ç¸å
³ææ¡£"><span>ç¸å
³ææ¡£</span></a></h3><ul><li><a href="https://nginx.org/en/download.html" target="_blank" rel="noopener noreferrer">Nginx ä¸è½½é¡µ</a></li><li><a href="https://nssm.cc/download" target="_blank" rel="noopener noreferrer">nssm ä¸è½½é¡µ</a></li><li><a href="https://deliciousbrains.com/ssl-certificate-authority-for-local-https-development/" target="_blank" rel="noopener noreferrer">å±åç½é
ç½® https åè</a></li></ul><h2 id="åè¯" tabindex="-1"><a class="header-anchor" href="#åè¯"><span>åè¯</span></a></h2><blockquote><p>ä¸ç´é½æ¯ç¨å°äºå°±æç´¢ï¼æ¤çªæ´çï¼å 深使ç¨ï¼ä»¥å¤åç¨ ææ·±å»çæ¯æ¬ç¯å¯¹å±åç½èªå®ä¹ååä¸å®å
¨httpsæç¤ºé®é¢çè§£å³ï¼ç®ç´èµå¿æ¦ç®ã</p></blockquote>`,74)]))}const f=n(u,[["render",b],["__file","devops_nginx_install_use.html.vue"]]),y=JSON.parse('{"path":"/posts/web/devops_nginx_install_use.html","title":"åå端é½ç¨å¾ä¸ç Nginx æ¥å¸¸ä½¿ç¨ç»éª","lang":"zh-CN","frontmatter":{"title":"åå端é½ç¨å¾ä¸ç Nginx æ¥å¸¸ä½¿ç¨ç»éª","date":"2023-11-03T08:31:00.000Z","category":["Web"],"tag":["devops","docker","nginx"],"description":"åè¨ nginx æ¯ä¸ä¸ªé«æ§è½ç弿ºåå代çæå¡å¨å web æå¡å¨ï¼ä¸è¬ç¨æ¥æå»ºéæèµæºæå¡å¨ãè´è½½åè¡¡å¨ãåå代çï¼æ¬æå°å享å
¶å¨ Windows/docker ä¸ç使ç¨,ä½¿ç¨ nssm é¨ç½²ææå¡çæ¹æ¡èæ¬ï¼
300å±åç½ä¸èªå®ä¹ååè§£å³httpsæç¤ºä¸å®å
¨çè§£å³æ¹æ¡ï¼ä»¥åä¸è·¯è¸©è¿çåã ç¹ç¹ 髿§è½ï¼äºä»¶é©±å¨ç弿¥æ¶æï¼è½å¤å¤ç大éå¹¶åè¿æ¥ éæèµæºæ...","head":[["meta",{"property":"og:url","content":"https://www.yimo.link/posts/web/devops_nginx_install_use.html"}],["meta",{"property":"og:site_name","content":"æå¢¨ç½"}],["meta",{"property":"og:title","content":"åå端é½ç¨å¾ä¸ç Nginx æ¥å¸¸ä½¿ç¨ç»éª"}],["meta",{"property":"og:description","content":"åè¨ nginx æ¯ä¸ä¸ªé«æ§è½ç弿ºåå代çæå¡å¨å web æå¡å¨ï¼ä¸è¬ç¨æ¥æå»ºéæèµæºæå¡å¨ãè´è½½åè¡¡å¨ãåå代çï¼æ¬æå°å享å
¶å¨ Windows/docker ä¸ç使ç¨,ä½¿ç¨ nssm é¨ç½²ææå¡çæ¹æ¡èæ¬ï¼å±åç½ä¸èªå®ä¹ååè§£å³httpsæç¤ºä¸å®å
¨çè§£å³æ¹æ¡ï¼ä»¥åä¸è·¯è¸©è¿çåã ç¹ç¹ 髿§è½ï¼äºä»¶é©±å¨ç弿¥æ¶æï¼è½å¤å¤ç大éå¹¶åè¿æ¥ éæèµæºæ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e62a40257ae548b29b9fab8389027ad5~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=359&h=23&s=1371&e=png&b=0c0c0c"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-11-08T03:32:14.000Z"}],["meta",{"property":"article:tag","content":"devops"}],["meta",{"property":"article:tag","content":"docker"}],["meta",{"property":"article:tag","content":"nginx"}],["meta",{"property":"article:published_time","content":"2023-11-03T08:31:00.000Z"}],["meta",{"property":"article:modified_time","content":"2024-11-08T03:32:14.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"åå端é½ç¨å¾ä¸ç Nginx æ¥å¸¸ä½¿ç¨ç»éª\\",\\"image\\":[\\"https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e62a40257ae548b29b9fab8389027ad5~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=359&h=23&s=1371&e=png&b=0c0c0c\\",\\"https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/d33c2a30c4e14bd68faacd92ac8330d8~tplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=410&h=122&s=6676&e=png&b=fcfcfc\\"],\\"datePublished\\":\\"2023-11-03T08:31:00.000Z\\",\\"dateModified\\":\\"2024-11-08T03:32:14.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"æå¢¨\\",\\"url\\":\\"https://www.yimo.link\\"}]}"]]},"headers":[{"level":2,"title":"åè¨","slug":"åè¨","link":"#åè¨","children":[{"level":3,"title":"ç¹ç¹","slug":"ç¹ç¹","link":"#ç¹ç¹","children":[]},{"level":3,"title":"ä½¿ç¨æ
åµ","slug":"ä½¿ç¨æ
åµ","link":"#ä½¿ç¨æ
åµ","children":[]}]},{"level":2,"title":"å®è·µ","slug":"å®è·µ","link":"#å®è·µ","children":[{"level":3,"title":"åå¤","slug":"åå¤","link":"#åå¤","children":[]},{"level":3,"title":"Windows å®è£
ä½¿ç¨ nginx","slug":"windows-å®è£
使ç¨-nginx","link":"#windows-å®è£
使ç¨-nginx","children":[{"level":4,"title":"å®è£
è¿è¡","slug":"å®è£
è¿è¡","link":"#å®è£
è¿è¡","children":[]},{"level":4,"title":"ååé
ç½®","slug":"ååé
ç½®","link":"#ååé
ç½®","children":[]},{"level":4,"title":"SSL è¯ä¹¦ç³è¯·","slug":"ssl-è¯ä¹¦ç³è¯·","link":"#ssl-è¯ä¹¦ç³è¯·","children":[]},{"level":4,"title":"nginx æ¬å°é
ç½® https","slug":"nginx-æ¬å°é
ç½®-https","link":"#nginx-æ¬å°é
ç½®-https","children":[]},{"level":4,"title":"ä½¿ç¨ nssm å建 nginx æå¡","slug":"使ç¨-nssm-å建-nginx-æå¡","link":"#使ç¨-nssm-å建-nginx-æå¡","children":[]},{"level":4,"title":"常ç¨å½ä»¤","slug":"常ç¨å½ä»¤","link":"#常ç¨å½ä»¤","children":[]}]},{"level":3,"title":"ä½¿ç¨ Docker Compose å®è£
nginx","slug":"使ç¨-docker-compose-å®è£
-nginx","link":"#使ç¨-docker-compose-å®è£
-nginx","children":[{"level":4,"title":"é
置说æ","slug":"é
置说æ","link":"#é
置说æ","children":[]},{"level":4,"title":"é
ç½®æä»¶ compose.yml","slug":"é
ç½®æä»¶-compose-yml","link":"#é
ç½®æä»¶-compose-yml","children":[]},{"level":4,"title":"é»è®¤ç nginx.conf v1.24","slug":"é»è®¤ç-nginx-conf-v1-24","link":"#é»è®¤ç-nginx-conf-v1-24","children":[]},{"level":4,"title":"èªå®ä¹é
ç½® conf.d/default.conf","slug":"èªå®ä¹é
ç½®-conf-d-default-conf","link":"#èªå®ä¹é
ç½®-conf-d-default-conf","children":[]},{"level":4,"title":"å建è¯ä¹¦ ssl ç®å½","slug":"å建è¯ä¹¦-ssl-ç®å½","link":"#å建è¯ä¹¦-ssl-ç®å½","children":[]}]},{"level":3,"title":"Nginx çåºç¨","slug":"nginx-çåºç¨","link":"#nginx-çåºç¨","children":[{"level":4,"title":"æ¬å°ä½¿ç¨åååçé
ç½®","slug":"æ¬å°ä½¿ç¨åååçé
ç½®","link":"#æ¬å°ä½¿ç¨åååçé
ç½®","children":[]},{"level":4,"title":"Apollo ç转åé
ç½®","slug":"apollo-ç转åé
ç½®","link":"#apollo-ç转åé
ç½®","children":[]},{"level":4,"title":"RabbitMQ ç转åé
ç½®","slug":"rabbitmq-ç转åé
ç½®","link":"#rabbitmq-ç转åé
ç½®","children":[]},{"level":4,"title":"ç¸å
³èæ¬æ±æ»","slug":"ç¸å
³èæ¬æ±æ»","link":"#ç¸å
³èæ¬æ±æ»","children":[]}]},{"level":3,"title":"踩è¿çå","slug":"踩è¿çå","link":"#踩è¿çå","children":[{"level":4,"title":"Windows ç¯å¢ nginx -s reload åå¤ä¸ª nginx è¿ç¨","slug":"windows-ç¯å¢-nginx-s-reload-åå¤ä¸ª-nginx-è¿ç¨","link":"#windows-ç¯å¢-nginx-s-reload-åå¤ä¸ª-nginx-è¿ç¨","children":[]},{"level":4,"title":"Windows ä¸ä½¿ç¨ openssl éè¦æ·»å åç¼ winpty openssl","slug":"windows-ä¸ä½¿ç¨-openssl-éè¦æ·»å åç¼-winpty-openssl","link":"#windows-ä¸ä½¿ç¨-openssl-éè¦æ·»å åç¼-winpty-openssl","children":[]},{"level":4,"title":"æ¬å°èªç¾è¯ä¹¦é
ç½® https æµè§å¨ä¾æ§æç¤ºä¸å®å
¨","slug":"æ¬å°èªç¾è¯ä¹¦é
ç½®-https-æµè§å¨ä¾æ§æç¤ºä¸å®å
¨","link":"#æ¬å°èªç¾è¯ä¹¦é
ç½®-https-æµè§å¨ä¾æ§æç¤ºä¸å®å
¨","children":[]},{"level":4,"title":"容å¨ä¸ nginx.conf é»è®¤é
ç½®é®é¢","slug":"容å¨ä¸-nginx-conf-é»è®¤é
ç½®é®é¢","link":"#容å¨ä¸-nginx-conf-é»è®¤é
ç½®é®é¢","children":[]},{"level":4,"title":"容å¨ä¸éè½½é
ç½®","slug":"容å¨ä¸éè½½é
ç½®","link":"#容å¨ä¸éè½½é
ç½®","children":[]}]},{"level":3,"title":"ç¸å
³ææ¡£","slug":"ç¸å
³ææ¡£","link":"#ç¸å
³ææ¡£","children":[]}]},{"level":2,"title":"åè¯","slug":"åè¯","link":"#åè¯","children":[]}
300],"git":{"createdTime":1731036734000,"updatedTime":1731036734000,"contributors":[{"name":"yimo","email":"[email protected]","commits":1}]},"readingTime":{"minutes":12.57,"words":3771},"filePathRelative":"posts/web/devops_nginx_install_use.md","localizedDate":"2023å¹´11æ3æ¥","excerpt":"<h2>åè¨</h2>\\n<blockquote>\\n<p>nginx æ¯ä¸ä¸ªé«æ§è½ç弿ºåå代çæå¡å¨å web æå¡å¨ï¼ä¸è¬ç¨æ¥æå»ºéæèµæºæå¡å¨ãè´è½½åè¡¡å¨ãåå代çï¼æ¬æå°å享å
¶å¨ Windows/docker ä¸ç使ç¨,ä½¿ç¨ nssm é¨ç½²ææå¡çæ¹æ¡èæ¬ï¼å±åç½ä¸èªå®ä¹ååè§£å³httpsæç¤ºä¸å®å
¨çè§£å³æ¹æ¡ï¼ä»¥åä¸è·¯è¸©è¿çåã</p>\\n</blockquote>\\n<h3>ç¹ç¹</h3>\\n<ul>\\n<li>髿§è½ï¼äºä»¶é©±å¨ç弿¥æ¶æï¼è½å¤å¤ç大éå¹¶åè¿æ¥</li>\\n<li>éæèµæºæå¡å¨ï¼é¨ç½²å端éæé¡µé¢åéæèµæº</li>\\n<li>åå代çæå¡å¨ï¼æ¥æ¶å®¢æ·ç«¯è¯·æ±ï¼å¹¶å°è¯·æ±è½¬åå°å端æå¡ï¼å¯ä»¥å®ç°è´è½½åè¡¡ã请æ±åååç¼åçåè½</li>\\n<li>æ¯æ HTTPS</li>\\n</ul>","autoDesc":true}');export{f as comp,y as data};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.