web:nginx基础及搭建

Nginx简介

  • Nginx(“engine X”)
    – 是俄罗斯人编写的十分轻量级的HTTP服务器
    – 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器
  • 官方网站:http://nginx.org/

Nginx软件安装

yum -y install gcc pcre-devel openssl-devel #安装依赖
tar -xf nginx-1.10.3.tar.gz
useradd nginx -s /sbin/nologin
cd nginx-1.10.3 \
>./configure -->prefix=/user/local/nginx \  #默认安装就是这个
>--user=nginx \ #默认启动用户是Nobody
>--group=nginx \
>--with-http_ssl_module   #支撑剂加密功能
make && make install

nginx查看默认安装模块

cat nginx-1.10.3/auto/options | grep YES #筛选出默认安装模块

Nginx进程管理

  • 启动Nginx服务
/usr/local/nginx/sbin/nginx 
  • 常用选项
    – -V:查看编译参数
    – -c:指定配置文件,启动服务
    – -s stop:关闭服务
    – -s reload :重新加载配置文件
  • 日志管理
ls /usr/local/nginx/logs/
access.log  error.log  nginx.pid
  • 查看服务相关进程及端口信息
 ps aux | grep nginx
root     31661  0.0  0.0  25004   776 ?        Ss   20:29   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx    31662  0.0  0.1  25420  1736 ?        S    20:29   0:00 nginx: worker process
root     31897  0.0  0.0 112704   972 ttyS0    S+   20:34   0:00 grep --color=auto nginx

ss -pantu  | grep nginx
tcp    LISTEN     0      128       *:80                    *:*                   users:(("nginx",pid=31662,fd=6),("nginx",pid=31661,fd=6))

Nginx配置分析

  • 配置文件结构
全局配置:/usr/local/nginx/conf/nginx.conf
http{
	.....
	server{
			......
			location/{
					......
			          }
		   }
     } 
  • 配置容器
http{
.....
server{
	listen	80;
	server_name	localhost:
	localtion/{
		root html;
		index index.html index.htm;
      }
    }
 }		    

用户认证

在这里插入图片描述
默认安装模块:ngx_http_auth_basic_module

  • 编辑配置文件
.. ..
server {
        listen       80;
        server_name  localhost;
        auth_basic "Input Password:";     #认证提示符信息
        auth_basic_user_file  "/usr/local/nginx/pass";   #认证的密码文件
 		#也可以加载某个location{}里面
        location / {
            root   html;
            index  index.html index.htm;
        }
  }	
  • 生成密码文件,创建用户及密码
    使用htpasswd命令创建账户文件,需要确保系统中已经安装了httpd-tools。
yum -y install  httpd-tools
htpasswd -c /usr/local/nginx/pass   tom     #创建密码文件
New password: 
Re-type new password: 
Adding password for user tom

htpasswd  /usr/local/nginx/pass   jerry      //追加用户,不使用-c选项
New password: 
Re-type new password: 
Adding password for user jerry

cat /usr/local/nginx/pass
  • 重新加载配置
/usr/local/nginx/sbin/nginx -s reload    //重新加载配置文件    
#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)

Nginx虚拟主机

三种模式虚拟主机

  • 基于域名的虚拟主机
  • 基于端口的虚拟主机
  • 基于IP的虚拟主机

基于域名的虚拟主机

  • 大致结构
server{	
		listen 80;
		server_name web1.lg.com;#域名1
		.....  
	   } 
server{
		listen 80:
		server_name web2.lg.com;#域名2
		....
      }
  • 详细修改配置文件
vim /usr/local/nginx/conf/nginx.conf
.. ..
server {
        listen       80;                                      //端口
        server_name  www.a.com;                                //域名
auth_basic "Input Password:";                        //认证提示符
        auth_basic_user_file "/usr/local/nginx/pass";        //认证密码文件
location / {
            root   html;                                    //指定网站根路径
            index  index.html index.htm;
       }     
}
… …
    server {
        listen  80;                                        //端口
        server_name  www.b.com;                                //域名
location / { 
root   www;                                 //指定网站根路径
index  index.html index.htm;
}
}
  • 创建网站根目录及对应首页文件
mkdir /usr/local/nginx/www
echo "www" > /usr/local/nginx/www/index.html
  • 客户端测试
修改客户端主机的/etc/hosts文件,进行域名解析
vim /etc/hosts
192.168.4.5    www.a.com  www.b.com
登录客户端主机进行测试
firefox http://www.a.com    #输入密码后可以访问
firefox http://www.b.com    #直接访问

基于端口的虚拟主机

server{
		listen 8080; #端口1
		server_name web1.lg.com; #域名
		......
	   }
server{
		listen  8000; #端口2
		server_name web1.lg.com;
		....
		}

基于IP的虚拟主机

server{
		listen 192.168.0.1:80; #端口
		server_name web1.lg.com; #域名
		.....
		}
server{
		listen 192.168.0.2:80;
		server_name web1.lg:com;
		.....
		} 

SSL虚拟主机

源码安装Nginx时必须使用–with-http_ssl_module参数,启用加密模块,对于需要进行SSL加密处理的站点添加ssl相关指令(设置网站需要的私钥和证书)。
加密算法一般分为对称算法、非对称算法、信息摘要。
对称算法有:AES、DES,主要应用在单机数据加密。
非对称算法有:RSA、DSA,主要应用在网络数据加密。
信息摘要:MD5、sha256,主要应用在数据完整性校验。

  • 生成私钥与证书
cd /usr/local/nginx/conf
openssl genrsa > cert.key #生成私钥
openssl req -new -x509 -key cert.key > cert.pem      #生成证书
  • 修改Nginx配置文件,设置加密网站的虚拟主机
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;
        }
    }
  • 重新加载配置
/usr/local/nginx/sbin/nginx -t #检测配置文件是否正确
/usr/local/nginx/sbin/nginx -s reload
#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章