摘要:\u003C\u002Fp\u003E\u003Cp\u003Enginx.conf 配置如下:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fec930de5afe04498a9c20e84fbe2fd07\" img_width=\"608\" img_height=\"233\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002Fa1aaf2a4e8ee4a798b53034a1fdfea20\" img_width=\"614\" img_height=\"505\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Ch1\u003E负载均衡策略\u003C\u002Fh1\u003E\u003Cp\u003ENginx 提供了多种负载均衡策略,让我们来一一了解一下:\u003C\u002Fp\u003E\u003Cp\u003E负载均衡策略在各种分布式系统中基本上原理一致,对于原理有兴趣,不妨参考:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003Ehttps:\u002F\u002Fdunwu.github.io\u002Fjavaweb\u002F#\u002Ftheory\u002Fload-balance\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E轮询\u003C\u002Fp\u003E\u003Cpre\u003Eupstream bck_testing_01 {\u003Cbr\u003E # 默认所有服务器权重为 1\u003Cbr\u003E server 192.168.250.220:8080\u003Cbr\u003E server 192.168.250.221:8080\u003Cbr\u003E server 192.168.250.222:8080\u003Cbr\u003E}\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E加权轮询\u003C\u002Fp\u003E\u003Cpre\u003Eupstream bck_testing_01 {\u003Cbr\u003E server 192.168.250.220:8080 weight=3\u003Cbr\u003E server 192.168.250.221:8080 # default weight=1\u003Cbr\u003E server 192.168.250.222:8080 # default weight=1\u003Cbr\u003E}\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E最少连接\u003C\u002Fp\u003E\u003Cpre\u003Eupstream bck_testing_01 {\u003Cbr\u003E least_conn。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F5003820e93a1430ebc32c9258fcd0904\" img_width=\"1080\" img_height=\"764\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003ENginx 入门\u003C\u002Fp\u003E\u003Cp\u003E详细安装方法请参考:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003Ehttps:\u002F\u002Fgithub.com\u002Fdunwu\u002Fnginx-tutorial\u002Fblob\u002Fmaster\u002Finstall-nginx.md\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003Enginx 的使用比较简单,就是几条命令。

"\u003Cdiv\u003E\u003Ch1\u003ENginx 极简教程\u003C\u002Fh1\u003E\u003Cblockquote\u003E\u003Cp\u003E本项目是一个 Nginx 极简教程,目的在于帮助新手快速入门 Nginx。\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E示例Demo:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003Ehttps:\u002F\u002Fgithub.com\u002Fdunwu\u002Fnginx-tutorial\u002Ftree\u002Fmaster\u002Fdemos\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003EDemo目录中的示例模拟了工作中的一些常用实战场景,并且都可以通过脚本一键式启动,让您可以快速看到演示效果。\u003C\u002Fp\u003E\u003Cp\u003E简介\u003C\u002Fp\u003E\u003Cp\u003E\u003Cstrong\u003E什么是 Nginx?\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cstrong\u003ENginx (engine x)\u003C\u002Fstrong\u003E 是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP\u002FPOP3)代理服务器。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F73598b5e750b4ee5b35dd27da6e98f7d\" img_width=\"638\" img_height=\"359\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-center\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E\u003Cstrong\u003E什么是反向代理?\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cp\u003E反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。\u003C\u002Fp\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F5003820e93a1430ebc32c9258fcd0904\" img_width=\"1080\" img_height=\"764\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003ENginx 入门\u003C\u002Fp\u003E\u003Cp\u003E详细安装方法请参考:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003Ehttps:\u002F\u002Fgithub.com\u002Fdunwu\u002Fnginx-tutorial\u002Fblob\u002Fmaster\u002Finstall-nginx.md\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003Enginx 的使用比较简单,就是几条命令。\u003C\u002Fp\u003E\u003Cp\u003E常用到的命令如下:\u003C\u002Fp\u003E\u003Cpre\u003Enginx -s stop 快速关闭Nginx,可能不保存相关信息,并迅速终止web服务。\u003Cbr\u003Enginx -s quit 平稳关闭Nginx,保存相关信息,有安排的结束web服务。\u003Cbr\u003Enginx -s reload 因改变了Nginx相关配置,需要重新加载配置而重载。\u003Cbr\u003Enginx -s reopen 重新打开日志文件。\u003Cbr\u003Enginx -c filename 为 Nginx 指定一个配置文件,来代替缺省的。\u003Cbr\u003Enginx -t 不运行,仅仅测试配置文件。nginx 将检查配置文件的语法的正确性,并尝试打开配置文件中所引用到的文件。\u003Cbr\u003Enginx -v 显示 nginx 的版本。\u003Cbr\u003Enginx -V 显示 nginx 的版本,编译器版本和配置参数。\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E如果不想每次都敲命令,可以在 nginx 安装目录下新添一个启动批处理文件\u003Cstrong\u003Estartup.bat\u003C\u002Fstrong\u003E,双击即可运行。内容如下:\u003C\u002Fp\u003E\u003Cpre\u003E@echo off\u003Cbr\u003Erem 如果启动前已经启动nginx并记录下pid文件,会kill指定进程\u003Cbr\u003Enginx.exe -s stop\u003Cbr\u003Erem 测试配置文件语法正确性\u003Cbr\u003Enginx.exe -t -c conf\u002Fnginx.conf\u003Cbr\u003Erem 显示版本信息\u003Cbr\u003Enginx.exe -v\u003Cbr\u003Erem 按照指定配置去启动nginx\u003Cbr\u003Enginx.exe -c conf\u002Fnginx.conf\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E如果是运行在 Linux 下,写一个 shell 脚本,大同小异。\u003C\u002Fp\u003E\u003Cp\u003ENginx 实战\u003C\u002Fp\u003E\u003Cp\u003E我始终认为,各种开发工具的配置还是结合实战来讲述,会让人更易理解。\u003C\u002Fp\u003E\u003Cp\u003EHttp 反向代理\u003C\u002Fp\u003E\u003Cp\u003E我们先实现一个小目标:不考虑复杂的配置,仅仅是完成一个 http 反向代理。\u003C\u002Fp\u003E\u003Cp\u003Enginx.conf 配置文件如下:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003E\u003Cstrong\u003E\u003Cem\u003E注:conf\u002Fnginx.conf 是 nginx 的默认配置文件。你也可以使用 nginx -c 指定你的配置文件\u003C\u002Fem\u003E\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F30dce5179b7d4d79af498e609e971530\" img_width=\"472\" img_height=\"280\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F03163f1f8c3846978b9d5a4c77c8133f\" img_width=\"679\" img_height=\"467\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002Fabf2908018934bf698a3ce4f9fe3d83d\" img_width=\"674\" img_height=\"533\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fea684d96acb3462eac12660c346cd861\" img_width=\"348\" img_height=\"332\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E好了,让我们来试试吧:\u003C\u002Fp\u003E\u003Col\u003E\u003Cli class=\"ql-align-justify\"\u003E启动 webapp,注意启动绑定的端口要和 nginx 中的 upstream 设置的端口保持一致。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E更改 host:在 C:\\Windows\\System32\\drivers\\etc 目录下的 host 文件中添加一条 DNS 记录127.0.0.1 www.helloworld.com\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E启动前文中 startup.bat 的命令\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E在浏览器中访问 www.helloworld.com,不出意外,已经可以访问了。\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Ch1\u003EHttps 反向代理\u003C\u002Fh1\u003E\u003Cp\u003E一些对安全性要求比较高的站点,可能会使用 HTTPS(一种使用 ssl 通信标准的安全 HTTP 协议)。\u003C\u002Fp\u003E\u003Cp\u003E这里不科普 HTTP 协议和 SSL 标准。但是,使用 nginx 配置 https 需要知道几点:\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003EHTTPS 的固定端口号是 443,不同于 HTTP 的 80 端口\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003ESSL 标准需要引入安全证书,所以在 nginx.conf 中你需要指定证书和它对应的 key\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E其他和 http 反向代理基本一样,只是在 Server 部分配置有些不同。\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fa670f24175c348d79c8268b65653465e\" img_width=\"336\" img_height=\"378\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Ch1\u003E负载均衡\u003C\u002Fh1\u003E\u003Cp\u003E前面的例子中,代理仅仅指向一个服务器。\u003C\u002Fp\u003E\u003Cp\u003E但是,网站在实际运营过程中,大部分都是以集群的方式运行,这时需要使用负载均衡来分流。nginx 也可以实现简单的负载均衡功能。\u003C\u002Fp\u003E\u003Cp\u003E假设这样一个应用场景:将应用部署在 192.168.1.11:80、192.168.1.12:80、192.168.1.13:80 三台 linux 环境的服务器上。网站域名叫 www.helloworld.com,公网 IP 为 192.168.1.11。在公网 IP 所在的服务器上部署 nginx,对所有请求做负载均衡处理(下面例子中使用的是加权轮询策略)。\u003C\u002Fp\u003E\u003Cp\u003Enginx.conf 配置如下:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002Fec930de5afe04498a9c20e84fbe2fd07\" img_width=\"608\" img_height=\"233\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp9.pstatp.com\u002Flarge\u002Fpgc-image\u002Fa1aaf2a4e8ee4a798b53034a1fdfea20\" img_width=\"614\" img_height=\"505\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Ch1\u003E负载均衡策略\u003C\u002Fh1\u003E\u003Cp\u003ENginx 提供了多种负载均衡策略,让我们来一一了解一下:\u003C\u002Fp\u003E\u003Cp\u003E负载均衡策略在各种分布式系统中基本上原理一致,对于原理有兴趣,不妨参考:\u003C\u002Fp\u003E\u003Cblockquote\u003E\u003Cp\u003Ehttps:\u002F\u002Fdunwu.github.io\u002Fjavaweb\u002F#\u002Ftheory\u002Fload-balance\u003C\u002Fp\u003E\u003C\u002Fblockquote\u003E\u003Cp\u003E轮询\u003C\u002Fp\u003E\u003Cpre\u003Eupstream bck_testing_01 {\u003Cbr\u003E # 默认所有服务器权重为 1\u003Cbr\u003E server 192.168.250.220:8080\u003Cbr\u003E server 192.168.250.221:8080\u003Cbr\u003E server 192.168.250.222:8080\u003Cbr\u003E}\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E加权轮询\u003C\u002Fp\u003E\u003Cpre\u003Eupstream bck_testing_01 {\u003Cbr\u003E server 192.168.250.220:8080 weight=3\u003Cbr\u003E server 192.168.250.221:8080 # default weight=1\u003Cbr\u003E server 192.168.250.222:8080 # default weight=1\u003Cbr\u003E}\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E最少连接\u003C\u002Fp\u003E\u003Cpre\u003Eupstream bck_testing_01 {\u003Cbr\u003E least_conn;\u003Cbr\u003E # with default weight for all (weight=1)\u003Cbr\u003E server 192.168.250.220:8080\u003Cbr\u003E server 192.168.250.221:8080\u003Cbr\u003E server 192.168.250.222:8080\u003Cbr\u003E}\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E加权最少连接\u003C\u002Fp\u003E\u003Cpre\u003Eupstream bck_testing_01 {\u003Cbr\u003E least_conn;\u003Cbr\u003E server 192.168.250.220:8080 weight=3\u003Cbr\u003E server 192.168.250.221:8080 # default weight=1\u003Cbr\u003E server 192.168.250.222:8080 # default weight=1\u003Cbr\u003E}\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003EIP Hash\u003C\u002Fp\u003E\u003Cpre\u003Eupstream bck_testing_01 {\u003Cbr\u003E ip_hash;\u003Cbr\u003E # with default weight for all (weight=1)\u003Cbr\u003E server 192.168.250.220:8080\u003Cbr\u003E server 192.168.250.221:8080\u003Cbr\u003E server 192.168.250.222:8080\u003Cbr\u003E}\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E普通 Hash\u003C\u002Fp\u003E\u003Cpre\u003Eupstream bck_testing_01 {\u003Cbr\u003E hash $request_uri;\u003Cbr\u003E # with default weight for all (weight=1)\u003Cbr\u003E server 192.168.250.220:8080\u003Cbr\u003E server 192.168.250.221:8080\u003Cbr\u003E server 192.168.250.222:8080\u003Cbr\u003E}\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E网站有多个 webapp 的配置\u003C\u002Fp\u003E\u003Cp\u003E当一个网站功能越来越丰富时,往往需要将一些功能相对独立的模块剥离出来,独立维护。这样的话,通常,会有多个 webapp。\u003C\u002Fp\u003E\u003Cp\u003E举个例子:假如 www.helloworld.com 站点有好几个 webapp,finance(金融)、product(产品)、admin(用户中心)。访问这些应用的方式通过上下文(context)来进行区分:\u003C\u002Fp\u003E\u003Cp\u003Ewww.helloworld.com\u002Ffinance\u002F\u003C\u002Fp\u003E\u003Cp\u003Ewww.helloworld.com\u002Fproduct\u002F\u003C\u002Fp\u003E\u003Cp\u003Ewww.helloworld.com\u002Fadmin\u002F\u003C\u002Fp\u003E\u003Cp\u003E我们知道,http 的默认端口号是 80,如果在一台服务器上同时启动这 3 个 webapp 应用,都用 80 端口,肯定是不成的。所以,这三个应用需要分别绑定不同的端口号。\u003C\u002Fp\u003E\u003Cp\u003E那么,问题来了,用户在实际访问 www.helloworld.com 站点时,访问不同 webapp,总不会还带着对应的端口号去访问吧。所以,你再次需要用到反向代理来做处理。\u003C\u002Fp\u003E\u003Cp\u003E配置也不难,来看看怎么做吧:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F826638f4857b47669dc8e398069f7db6\" img_width=\"375\" img_height=\"531\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Ch1\u003E静态站点\u003C\u002Fh1\u003E\u003Cp\u003E有时候,我们需要配置静态站点(即 html 文件和一堆静态资源)。\u003C\u002Fp\u003E\u003Cp\u003E举例来说:如果所有的静态资源都放在了 \u002Fapp\u002Fdist 目录下,我们只需要在 nginx.conf 中指定首页以及这个站点的 host 即可。\u003C\u002Fp\u003E\u003Cp\u003E配置如下:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002Fb06a63d7ad144b64ad7875343ef5f844\" img_width=\"672\" img_height=\"411\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E然后,添加 HOST:\u003C\u002Fp\u003E\u003Cp\u003E127.0.0.1 static.zp.cn\u003C\u002Fp\u003E\u003Cp\u003E此时,在本地浏览器访问 static.zp.cn ,就可以访问静态站点了。\u003C\u002Fp\u003E\u003Cp\u003E搭建文件服务器\u003C\u002Fp\u003E\u003Cp\u003E有时候,团队需要归档一些数据或资料,那么文件服务器必不可少。使用 Nginx 可以非常快速便捷的搭建一个简易的文件服务。\u003C\u002Fp\u003E\u003Cp\u003E\u003Cstrong\u003ENginx 中的配置要点:\u003C\u002Fstrong\u003E\u003C\u002Fp\u003E\u003Cul\u003E\u003Cli class=\"ql-align-justify\"\u003E将 autoindex 开启可以显示目录,默认不开启。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E将 autoindex_exact_size 开启可以显示文件的大小。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003E将 autoindex_localtime 开启可以显示文件的修改时间。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003Eroot 用来设置开放为文件服务的根路径。\u003C\u002Fli\u003E\u003Cli class=\"ql-align-justify\"\u003Echarset 设置为 charset utf-8,gbk;,可以避免中文乱码问题(windows 服务器下设置后,依然乱码,本人暂时没有找到解决方法)。\u003C\u002Fli\u003E\u003C\u002Ful\u003E\u003Cp\u003E一个最简化的配置如下:\u003C\u002Fp\u003E\u003Cpre\u003Eautoindex on;# 显示目录\u003Cbr\u003Eautoindex_exact_size on;# 显示文件大小\u003Cbr\u003Eautoindex_localtime on;# 显示文件时间\u003Cbr\u003Eserver {\u003Cbr\u003E charset utf-8,gbk; # windows 服务器下设置后,依然乱码,暂时无解\u003Cbr\u003E listen 9050 default_server;\u003Cbr\u003E listen [::]:9050 default_server;\u003Cbr\u003E server_name _;\u003Cbr\u003E root \u002Fshare\u002Ffs;\u003Cbr\u003E}\u003Cbr\u003E\u003C\u002Fpre\u003E\u003Cp\u003E解决跨域\u003C\u002Fp\u003E\u003Cp\u003Eweb 领域开发中,经常采用前后端分离模式。这种模式下,前端和后端分别是独立的 web 应用程序,例如:后端是 Java 程序,前端是 React 或 Vue 应用。\u003C\u002Fp\u003E\u003Cp\u003E各自独立的 web app 在互相访问时,势必存在跨域问题。解决跨域问题一般有两种思路:\u003C\u002Fp\u003E\u003Col\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003ECORS\u003C\u002Fstrong\u003E\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E在后端服务器设置 HTTP 响应头,把你需要允许访问的域名加入 Access-Control-Allow-Origin 中。\u003C\u002Fp\u003E\u003Col\u003E\u003Cli class=\"ql-align-justify\"\u003E\u003Cstrong\u003Ejsonp\u003C\u002Fstrong\u003E\u003C\u002Fli\u003E\u003C\u002Fol\u003E\u003Cp class=\"ql-align-justify\"\u003E\u003Cbr\u003E\u003C\u002Fp\u003E\u003Cp\u003E把后端根据请求,构造 json 数据,并返回,前端用 jsonp 跨域。\u003C\u002Fp\u003E\u003Cp\u003E这两种思路,本文不展开讨论。\u003C\u002Fp\u003E\u003Cp\u003E需要说明的是,nginx 根据第一种思路,也提供了一种解决跨域的解决方案。\u003C\u002Fp\u003E\u003Cp\u003E举例:www.helloworld.com 网站是由一个前端 app ,一个后端 app 组成的。前端端口号为 9000, 后端端口号为 8080。\u003C\u002Fp\u003E\u003Cp\u003E前端和后端如果使用 http 进行交互时,请求会被拒绝,因为存在跨域问题。来看看,nginx 是怎么解决的吧:\u003C\u002Fp\u003E\u003Cp\u003E首先,在 enable-cors.conf 文件中设置 cors :\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp1.pstatp.com\u002Flarge\u002Fpgc-image\u002F2109d6ba0aee4f38bfd357fd1771c36a\" img_width=\"671\" img_height=\"396\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E接下来,在你的服务器中 include enable-cors.conf 来引入跨域配置:\u003C\u002Fp\u003E\u003Cdiv class=\"pgc-img\"\u003E\u003Cimg src=\"http:\u002F\u002Fp3.pstatp.com\u002Flarge\u002Fpgc-image\u002F5004ae4c74de435aa7f126d0889f8039\" img_width=\"393\" img_height=\"420\" alt=\"Nginx 极简教程(快速入门)\" inline=\"0\"\u003E\u003Cp class=\"pgc-img-caption\"\u003E\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E\u003Cp\u003E到此,就完成了。\u003C\u002Fp\u003E\u003Cp\u003E作者:dunwu\u003C\u002Fp\u003E\u003Cp\u003Egithub.com\u002Fdunwu\u002Fnginx-tutorial\u003C\u002Fp\u003E\u003C\u002Fdiv\u003E"'.slice(6, -6), groupId: '6718329823996936718
相关文章