Nginx简介
–俄罗斯人编写的轻量级HTTP服务器
–是一个高性能的http和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器。
–官网:http://nginx.org/
Nginx配置文件及目录
安装目录 /usr/local/nginx
主配置文件 /usr/local/nginx/conf/nginx.conf
网页根目录 /usr/local/nginx/html
日志文件 /usr/local/nginx/logs
启动脚本 /usr/local/nginx/sbin/nginx
Nginx进程管理
启动服务 /usr/local/nginx/sbin/nginx
常用选项:
-V:查看编译参数
-t:测试默认配置文件
-c:制定配置文件,启动服务
Nginx配置文件结构
全局配置
http{
……
server{
……
location /{
……
}
}
}
全局选项
user nginx; #进程所有者
worker_processes 1; #启动进程数量
error_log /var/log/nginx/error.log; #日志文件
pid /var/run/nginx.pid #PID文件
events {
worker_connections 1024; #单个进程最大并发量
}
配置容器
http {
……
server { #定义虚拟主机
listen 80;
server_name localhost;
location / { #发布目录
root html;
index index.html index.html;
}
}
}
用户认证
location / {
root html;
index index.html;
auth_basic "auth-domain";
auth_basic_user_file /user/local/nginx/pass;
}
##yum -y install httpd-tools
##htpasswd -c /usr/local/nginx/pass amin //创建用户
三种虚拟主机(域名、IP地址、端口)
基于域名的虚拟主机
server {
listen 80;
server_name www.1.com; #域名A
...
}
server {
listen 80;
server_name www.2.com; #域名B
...
}
……
基于端口的虚拟主机
server {
listen 8080; #端口
server_name www.1.com; #域名
...
}
server {
listen 8000; #不同的端口号
server_name www.1.com; #相同的域名
...
}
基于IP的虚拟主机
server {
listen 192.168.0.1:80; #ip与端口
server_name www.1.com; #域名
……
location / {
root www; #访问192.168.0.1时的根目录
index index.html index.html;
}
}
server {
listen 192.168.0.2:80;
server_name www.1.com;
……
location / {
root aaa; #访问192.168.0.2时的根目录
index index.html index.html;
}
}
nginx的HTTPS加密网站
秘钥:(RAR、ZIP压缩等单机加密)
AES
DES
非对称秘钥:(https、ssh等网络加密)
RSA
DSA
Hash值:(数据完整性校验、文件秒传)
MD5
SHA256
SHA512
搭建Nginx服务
1、编译安装nginx
yum -y install gcc pcre-devel openssl-devel #安装编译所需依赖包
useradd nginx #添加名为nginx的用户
./configure \
> --prefix=/usr/local/nginx \ #指定安装目录
> --user=nginx \ #指定账户名称
> --group=nginx \ #指定组名称
> --with-http_ssl_module \ #支持加密功能(添加模组模组)
> --with-stream #支持tcp/udp代理功能
2、安装
make && make install
升级Nginx
1、解压新版本,进入目录后
./configure \
> --prefix=/usr/local/nginx \
> --user=nginx \
> --group=nginx \
> --with-http_ssl_module
2、make(先不要make install安装覆盖!)
make
3、将旧启动文件作为备份
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/oldnginx
4、添加新版本启动脚本
cp objs/nginx /usr/local/nginx/sbin/
5、升级Nginx
make upgrade
/usr/local/nginx/sbin/nginx -v #查看版本```
步骤一:配置SSL虚拟主机
1)生成私钥与证书
[root@proxy ~]# cd /usr/local/nginx/conf
[root@proxy ~]# openssl genrsa > cert.key //生成私钥
[root@proxy ~]# openssl req -new -x509 -key cert.key > cert.pem //生成证书
2)修改Nginx配置文件,设置加密网站的虚拟主机
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
… …
server {
listen 443 ssl;
server_name www.c.com;
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;
}
}
步骤二:客户端验证
1)修改客户端主机192.168.4.100的/etc/hosts文件,进行域名解析
[root@client ~]# vim /etc/hosts
192.168.4.5 www.c.com www.a.com www.b.com
2)登录192.168.4.100客户端主机进行测试
[root@client ~]# firefox https://www.c.com //信任证书后可以访问