什么是Nginx?
Nginx是一个http服务器(web服务器)。是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。cpu、内存等资源消耗却非常低,运行非常稳定。nginx常用做静态内容服务和反向代理服务器,直面外来请求转发给后面的应用服务(tomcat,django什么的),tomcat更多用来做做一个应用容器,让java web app跑在里面的东西,对应同级别的有jboss,jetty等东西。
1、 http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
2、 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
基于端口的,不同的端口
基于域名的,不同域名
3、 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
平常开发要求比较低, 依然在用 HTTP, 但到了微信小程序就不行了, 腾讯和苹果都对 API 提出了 HTTPS 的要求 尤其是苹果, 不仅要求 HTTPS, 还要求 TLS 协议版本要在 12 以上, 这又被称为 App Transport Security(ATS)
关于自己的标准是否满足 ATS, 可以使用此工具检测: ATS(App Transport Security)检测 https://mysslcom/atshtmldomain=&port=443

服务器配置#
使用 Nginx 进行 HTTPS 配置, 服务器几乎不用做改动, 依旧是祖传的 8080 端口, 以我所使用的 Spring Boot 为例, 仅仅是在 applicationyml 中增加了两行配置而已
证书申请/购买#
在域名的基本信息页, 点击免费开启 SSL 证书, 输入相应的域名, 点击「申请」即可申请免费的 DV SSL 证书, 还需要做一些简单的信息补全等, 即可提交申请 如果备案信息都齐全的话, 很快就可以验证成功, 在证书管理页面即可查看证书


选择下载证书for Nginx, 证书一式两份, 后缀分别为 pem 和 key, 下载完上传到服务器
域名映射#
我选择为两个子域名申请证书, 同时将这两个域名映射到同一个IP

Nginx 配置#
首先, 需要把 http 都转发到 https, 需要使用 rewrite, 这样, 当访问 http://examplecn 会自动转发到 https://examplecn
然后就是真正的 https 不分了, 虽然域名不同, 但都监听 443 端口, 但有着不同的 server_name, 这样当收到请求时就可以根据请求的 server_name 不同来转发到不同的服务
而服务自身像往常一样只要继续监听 8090、8091 即可
配置修改好之后, 需要重启 Nginx
参考#
Nginx 配置 HTTPS 服务器 | Aotuio「凹凸实验室」
阿里云+Https+Nginx+SpringBoot | tt_study
作者:质子
出处:https://wwwcnblogscom/imzhizi/p/https-server-using-nginxhtml
本站使用「CC BY 40」创作共享协议,转载请在文章明显位置注明作者及出处。
windows系统下的教程如下所示:
SSL部署前特别说明
1 陕西CA SSL服务器证书部署指南(以下简称“本部署指南”)主要描述如何通过第三方系统产生密钥对和如何将SSL服务器证书部署到Apache服务器
2 本部署指南适用于linux、windows系统下Apache 2X版本;
获取服务器SSL证书
获取SSL证书
在您完成申请SNCA服务器证书的流程后,SNCA将会在返回给您的邮件中附上根证书issuercrt和相应的CA证书。CA证书就是文件就是youdomaincrt和私钥文件youdomainkey,请确认所收到的证书文件是您需要的CA证书。
安装服务器SSL证书
1、打开 apache 安装目录下 conf 目录中的 httpdconf 文件,
找到 #LoadModule ssl_module modules/mod_sslso
(如果找不到请确认是否编译过 openssl 插件)
#Include conf/extra/httpd_sslconf 删除行首的配置语句注释符号“#” 保存退出。
2、打开 apache 安装目录下 conf/extra 目录中的 httpd-sslconf 文件
a打开Apache22/conf/extra/目录下的httpd-sslconf文件,将
”ServerName wwwexamplecom:443”改成您的主机域名,
DocumentRoot指定网页文件路径;
(此处的配置和http的80端口配置文件保持一致 )
b添加SSL协议支持语句,关闭不安全的协议和加密套件
SSLProtocol all -SSLv2 -SSLv3
c修改加密套件如下
SSLCipherSuite
ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!3DES:!MD5:!ADH:!RC4:!DH:!DHE
d找到如下三个选项SSLCertificateFile、SSLCertificateKeyFile和SSLCertificateChainFile这三个配置项,将youdomaincrt和youdomainkey 及证书链
issuercrt文件上传到该目录(这里是/usr/local/apache/conf/sslcert,windows路径自己指定)下:
完整的配置文件如下:
保存退出,并重启Apache,
访问测试
服务器若部署了SSL证书,浏览器访问时将出现安全锁标志;
SSL备份和恢复
在您完成服务器证书的安装与配置后,请务必要备份好您的服务器证书,避免证书遗失给您造成不便:
备份服务器证书
备份服务器证书私钥文youdomainkey,服务器证书文件youdomaincrt。
2恢复服务器证书
参照步骤“三、安装服务器证书”即可完成恢复操作。
证书遗失处理
若您的证书文件损坏或者丢失且没有证书的备份文件,请联系SNCA办理遗失补办业务,重新签发服务器证书。
方法如下:
1、安装SQLServer软件并在两台电脑上创建一个WindowsServerFailoverClustering群集。
2、安装NginxWeb服务器,从官方网站下载最新版本的Nginx并安装。
3、使用curl或telnet等工具验证SQLServer与Nginx正确通信。
大家对Nginx服务器有了解吗如果想要了解网站服务器的朋友,那么就需要学习一下在电脑中搭建Nginx WEB服务器的基础,Nginx主要是用在Linux的主机上,不过它也可以运行在Windows上,下面就让小编为大家介绍下,如何在Winxp系统中搭建Nginx WEB服务器。Winxp系统的电脑怎么搭建Nginx WEB服务器具体方法如下:1、下载Nginx程序包,仅有1M左右大小,相当小巧功能强大!2、将下载好的zip压缩包的文件全部解压,双击运行nginxexe,你会看到一个黑色窗口一闪而过就没了,这就说明Nginx服务器已经正式启动(没有程序界面的)。3、在浏览器输入访问 127001 回车,如果看到“Welcome to nginx!”则说明你在本机搭建的服务器已经成功运行。如果没有,请检查你的电脑的80端口是否被占用,或者打开任务管理器查看一下是否有两个“nginxexe”进程在运行。4、完成以上简单的三步后,我们的Nginx网页服务器就搭建完成了,但是呢到这里只能支持html的纯网页,如果想让它支持php脚本还需要进一步安装php的运行环境。以上方法操作起来十分便捷,想要在XP系统上免费搭建Nginx服务器的小伙伴们快来看看吧。如有更多疑问,欢迎访问安下软件站。
一般linux中使用utf-8编码,niginx中也是如此,如果不是则都配置为utf-8编码,然后在你的代码逻辑中设置下载文件名称时进行编码即可,java代码类似:
responsesetHeader("Content-Disposition", "attachment; filename=" + URLEncoderencode("文件名", "utf-8"));
responsesetHeader("X-Accel-Redirect", "/down/" + URLEncoderencode("文件名路径", "utf-8"));
如何实现Nginx的反向代理?
这句话什么意思?
意思是说当客户机来访问服务器的时候,服务器本身并不出面接待,而是将客户的请求转高给手下的子服务器(小弟)负责接待。
比如:你访问wwwbaiducom,其实并不时百度总服务器接待的你,而是百度的代理服务器接待的你,不过他们的服务是一样的,提供同样的页面;
如是搭建Nginx服务才能实现这样的效果呢?
搭建一个最简单,最基础nginx代理服务器,需要一台代理服务,两台子服务器,XX台客户机来作验证;
操作流程如下:
第一步、服务器和客户机配好IP地址,其中Nginx代理服务器需要配置两张网卡,两个IP地址,一个和客户机通信,一个和子服务器通信;
代理服务器与客户机和子服务器都分别配置同网段IP地址;
例如:
代理服务器:19216845 19216825
子服务器 :1921682100 1921682200
客户机 :192168410
这样配置的好处是: 可以负载均衡,保障用户的访问体验,保障上网速度,同时也保障了,即便有一台服务器坏掉了,另一台服务可以接待用户访问;
第二步、代理服务器上安装Nginx服务软件,两台子服务器上安装HTTPD服务并写入相应的网页,然后启动服务;
yum -y install httpd ##安装httpd服务;
echo "罗贵" > /var/www/html/indexhtml ##写一个简单的网页
/configure --user=nginx --group=nginx --with-http_ssl_module
make && make install ##编译安装Nginx
第三步、修改Nginx的配置文件;
vim /usr /local /nginx /conf /nginxconf
http { ##在文件中找到http开头的行,并在http下面随意找两行添加下面两行的内容;
upstream luogui { ##luogui是集群名字,可以自由定义,upstream 上游的意思;翻译过来就是在上游建立一个名字为luogui的集群,集群中包含下述IP地址;
server 1921682100:80;
server 1921682200:80;
}
server {
listen 80;
server_name wwwluoguicom; ##域名,可以自由定义;
location ^/php$ { ##匹配网页地址的意思,匹配以 / 开头php结尾的网页文件;
proxy_pass http://luogui; ##通过proxy代理服务器将用户的请求转发给luogui集群服务器;(注:优先级最高,系统会优先处理这条命令)
}
}
第四步、测试效果;
firefox http://19216845 或者 本地测试 curl http://19216845
结果应该是暂停任何一台子服务器,客户机访问网页都没有问题;
以上
(EDN)
祝:开心!
罗贵
2019-04-05于深圳
0条评论