nginx介绍 -下载安装以及如何实现http和https服务
·
简介
- Nginx (engine x) 是一个高性能的HTTP和反向代理WEB服务器。同时也提供了IMAP/POP3/SMTP服务。具有响应快、高扩展(丰富的第三方模块支持)、高可靠、低内存消耗、高并发、热部署等优势。
安装
- 安装Nginx之前需要先安装以下三个依赖包:
- Nginx
- 解压后进入目录依次执行以下命令
./configure
make
make install
- 解压后进入目录依次执行以下命令
目录介绍
- Nginx会默认安装到/usr/local/nginx目录下
- conf :主要存放nginx的配置文件(nginx.conf)
- sbin :存放nginx程序
- html :存放网页资源
- logs :日志目录
Nginx操作指令
- 启动
sudo ./nginx
- 停止
马上终止web服务器 : sudo ./nginx -s stop
等待当前操作处理完成之后再停止 : sudo ./nginx -s quit - 重新加载
sudo ./nginx -s reload
Nginx配置文件介绍
- 路径:/usr/local/nginx/conf/nginx.conf
- 配置文件结构
-
-main |--http | |--server | |--location |--mail- main:代表整个配置文件
- http:处理web请求
- server:代表一个web服务器
- location:web服务器要处理的一个指令
- mail:处理邮件相关协议
-
- 配置文件介绍(截取了一部分)
-
#user nobody; # 工作进程 worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { # 可以连接到worker的数量 worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; #tcp_nopush on; #keepalive_timeout 0; # 保持连接超时 keepalive_timeout 65; #gzip on; server { listen 80; # 监听端口 server_name localhost; # 域名,对应本地ip # / 代表资源根目录 location / { # html目录,在/usr/local/nginx下。 # 你在浏览器输入http://ip:port # Nginx会去/usr/local/nginx下找html目录,并加载html目录对应的index.html文件 root html; index index.html index.htm; } } # HTTPS server # #server { # listen 443 ssl; # server_name localhost; # ssl_certificate cert.pem; # ssl_certificate_key cert.key; # ssl_session_cache shared:SSL:1m; # ssl_session_timeout 5m; # ssl_ciphers HIGH:!aNULL:!MD5; # ssl_prefer_server_ciphers on; # location / { # root html; # index index.html index.htm; # } #} }
Nginx实现http服务
- 我们直接使用Nginx默认配置,启动Nginx服务。然后在浏览器中输入本地ip和端口,就可以访问到Nginx,Nginx就实现了一个简单的http服务。


- 看到这个页面,就说明访问成功了。
- 如果要访问自己实现的html页面,直接替换/usr/local/nginx/html下面的index.html文件,并把你的依赖文件和资源文件一起拷贝到该目录下,就可以通过Nginx实现自己的http服务。
Nginx处理多个指令
- Nginx可以处理多个不同的指令
- 在原有配置文件基础上,再新增一个location,在/usr/local/nginx目录下创建一个新目录 html.csdn,拷贝一份index.html文件,做简单修改。放到该目录下。
-
location /csdn { # html.csdn目录,在/usr/local/nginx下 # 在浏览器输入http://ip:port/csdn # Nginx 会去/usr/local/nginx目录下查找html.csdn目录,并加载index.html文件 alias html.csdn; index index.html index.htm; # html目录下的文件 } - 我们先直接访问 http://127.0.0.1:80

- 再访问 http://127.0.0.1:80/csdn, 加载的就是另一个界面了。

实现https服务
- 默认Nginx的https服务是关闭的。如果想要实现https服务,把配置文件中关于https模块的配置注释打开就可以。
-
# HTTPS server server { listen 443 ssl; server_name localhost; # 双向认证时配置(用CA证书校验客户端证书) #ssl_verify_client on; #ssl_client_certificate ca.pem; # 指定服务端证书和私钥 ssl_certificate cert.pem; ssl_certificate_key cert.key; # 指定DH参数文件(需要使用密钥协商算法为DH时指定) # 可通过openssl命令行生成参数文件:openssl dhparam -out dhparam.pem 2048 ssl_dhparam /etc/nginx/dhparam.pem; # 指定SSL协议版本 ssl_protocols TLSv1.2 TLSv1.3; # 配置SSL会话缓存的类型和大小,用于复用SSL会话,从而避免重复进行完整的握手。 # shared:表示缓存将在所有Nginx工作进程之间共享。 # 如果不用shared而用built-in,则每个进程拥有自己的独立缓存,客户端如果被分配到不同进程,就无法复用缓存,导致效率下降。 # SSL:这是缓存存储空间的名称(标签),可以自定义,但通常写SSL。 # 1m:表示分配 1兆字节(MB) 的内存空间用于缓存会话。 ssl_session_cache shared:SSL:1m; # 指定SSL会话缓存在内存中的有效期或生存时间。(5分钟) ssl_session_timeout 5m; # 加密套件(服务端自动选择算法更优的加密套件,且身份验证和加密算法不能为空,摘要算法不能为MD5) ssl_ciphers HIGH:!aNULL:!MD5; # 密钥协商算法为RSA # ssl_ciphers AES128-GCM-SHA256; # 密钥协商算法为DH # ssl_ciphers DHE-RSA-AES256-GCM-SHA384; # 服务端选择加密套件的优先级 # on:Nginx会忽略客户端的排序,强行从列表中选择自己 ssl_ciphers 配置中排在最前面且客户端也支持的那个套件。 # off:Nginx通常会选择客户端列表中第一个双方都支持的套件。 ssl_prefer_server_ciphers on; location / { root html; index index.html index.htm; } } - 默认https服务是443端口,也可以改成别的端口。
- 搭建https服务,需要一个证书文件和私钥文件。这两个文件在Nginx安装包里是没有的。如果是正式的生产环境,需要向专业的证书颁发机构去申请证书,如果是自己测试,可以使用openssl命令行工具去生成一个。把证书和私钥文件拷贝到/usr/local/nginx/conf下,文件名和配置文件中的保持一致,然后重新启动Nginx就可以实现https服务了。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)