简介
- 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; 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; } }
- 默认https服务是443端口,也可以改成别的端口。
- 搭建https服务,需要一个证书文件和私钥文件。这两个文件在Nginx安装包里是没有的。如果是正式的生产环境,需要向专业的证书颁发机构去申请证书,如果是自己测试,可以使用openssl命令行工具去生成一个。把证书和私钥文件拷贝到/usr/local/nginx/conf下,文件名和配置文件中的保持一致,然后重新启动Nginx就可以实现https服务了。