<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Nginx on 月盾的博客</title>
    <link>https://blog.hopefly.top/tags/nginx/</link>
    <description>Recent content in Nginx on 月盾的博客</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Tue, 12 Sep 2023 14:18:30 +0800</lastBuildDate>
    <atom:link href="https://blog.hopefly.top/tags/nginx/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>https证书生成</title>
      <link>https://blog.hopefly.top/2023/09/https-ca/</link>
      <pubDate>Tue, 12 Sep 2023 14:18:30 +0800</pubDate>
      <guid>https://blog.hopefly.top/2023/09/https-ca/</guid>
      <description>&lt;p&gt;生成crt证书&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;openssl req -new -x509 -key domain.key -out domain.crt -days 365&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;将CRT转换为CSR：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;openssl req -new -key domain.key -out domain.csr&lt;/p&gt;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>gRPC负载均衡</title>
      <link>https://blog.hopefly.top/blogdetail/5bc1bd1bf846d21847dc3014/</link>
      <pubDate>Sat, 13 Oct 2018 09:38:35 +0000</pubDate>
      <guid>https://blog.hopefly.top/blogdetail/5bc1bd1bf846d21847dc3014/</guid>
      <description>&lt;p&gt;gRPC是谷歌开发的跨语言（C, C++, Python, PHP, Nodejs, C#, Objective-C、Golang、Java）RPC框架，跨语言是指可以使用gRPC进行个语言之间的通信，例如：PHP可以对java进行远程调用。&lt;/p&gt;&#xA;&lt;p&gt;在系统架构中，我们会把多个系统公共的模块拆分出来做成单独的服务，可以提供RESTful接口，也可以为了低延迟快速响应而提供RPC接口。如果选择的是gRPC，上线后发现多个系统都请求这个RPC服务提供者，而且流量很大的时候负载过高导致崩溃。为了降低负载和提高可用性，理所当然的要做集群，用nginx作为代理服务器，幸运的是nginx版本为1.13及以上支持了gRPC的负载均衡。那么请看以下配置：&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;upstream grpcservice {&#xA;    server localhost:50051;&#xA;    server localhost:50052;&#xA;}&#xA;server {&#xA;    listen       8080  http2;#需要加http2&#xA;    server_name  localhost;&#xA;&#xA;    location / {&#xA;        grpc_pass grpc://grpcservice;#以grpc为前缀&#xA;    }&#xA;&#xA;    grpc_connect_timeout 10;&#xA;}&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;配置好nginx以后，客户端需要连接到localhost:8080来调用远程服务。&#xA;效果图：&#xA;&lt;img src=&#34;https://qn-img.hopefly.top/grpc_nginx.gif&#34; alt=&#34;grpc-nginx&#34; title=&#34;grpc-nginx&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;可以看到，一次任务的多个请求两个RPC服务器都有输出，证明请求被分配到了两台服务器上。&lt;/p&gt;&#xA;&lt;p&gt;虽然我们使用了两台服务器来保证性能和可用性，但是当其中一台服务器挂掉以后发现部分请求响应非常慢。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://qn-img.hopefly.top/grpc_nginx2.gif&#34; alt=&#34;grpc_nginx2&#34; title=&#34;grpc_nginx2&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;原因是服务器虽然宕机，但是请求还会发送到挂掉的服务器上，然后等待超时（默认1分钟），超时后再请求另外的服务器，重新请求以后可能还会再次分配到这台宕机的服务器。为了能加快响应，配置了&lt;code&gt;grpc_connect_timeout&lt;/code&gt;选项，把时间设为5秒，再次测试，大概5秒后就能返回。如果设置更小的时间响应时间会更短。&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://qn-img.hopefly.top/grpc_nginx3.gif&#34; alt=&#34;grpc_nginx3&#34; title=&#34;grpc_nginx3&#34;&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>新阿里云服务器一些基本设置</title>
      <link>https://blog.hopefly.top/blogdetail/5b21fc996699964267f5e168/</link>
      <pubDate>Thu, 14 Jun 2018 05:26:49 +0000</pubDate>
      <guid>https://blog.hopefly.top/blogdetail/5b21fc996699964267f5e168/</guid>
      <description>&lt;p&gt;&lt;strong&gt;修改terminal&lt;/strong&gt;&#xA;&lt;code&gt;apt-get update&lt;/code&gt;更新软件源，安装&lt;code&gt;zsh&lt;/code&gt;，设置默认terminal为zsh，&lt;code&gt;chsh -s /usr/bin/zsh&lt;/code&gt;。非root用户需要在root权限下修改&lt;code&gt;/etc/passwd&lt;/code&gt;文件才能实现。&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;安装git&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;apt-get install git&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;nginx设置：&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;sudo /etc/init.d/nginx restart # or start, stop&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;或&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;sudo service nginx restart # or start, stop&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;有时候我们改了配置文件只是要让配置生效，这个时候不必重启，只要重新加载配置文件即可。&lt;code&gt;sudo nginx -s reload&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;目录&lt;code&gt;/etc/nginx/sites-available/&lt;/code&gt;下增加文件配置反向代理，并软链接到&lt;code&gt;/etc/nginx/sites-enabled/&lt;/code&gt;下&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;mongodb导入数据&lt;/strong&gt;&#xA;启动：&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;/usr/local/mongodb/bin/mongod &amp;ndash;dbpath=/usr/local/mongodb/data &amp;ndash;logpath=/usr/local/mongodb/logs &amp;ndash;logappend &amp;ndash;auth &amp;ndash;fork&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;如需外网客户端连接加参数&lt;code&gt;--bind_ip_all&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;导入单个collection&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;./mongorestore -v -h ip -u xxxx -p xxxx &amp;ndash;db=blogs -c blogs /home/yuedun/download/xxxx.bson/xxxx/blogs.bson&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;或导入整个目录&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;./mongorestore -v -h ip -u xxxx -p xxxx &amp;ndash;db=blogs &amp;ndash;drop /home/yuedun/download/xxxx.bson/xxxx&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;没有指定&lt;code&gt;-h&lt;/code&gt;参数会报错：Failed: error connecting to db server: no reachable servers&#xA;阿里云上&lt;code&gt;-h&lt;/code&gt;参数需要内网ip，localhost不行。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
