Nginx

安装nginx,升级 	用户认证	auth_basic_user_file 	虚拟主机	加密 反向代理: 源码包安装nginx

yum –y install gcc pcre-devel(支持正则表达) openssl-devel(支持认证加密) #常见依赖包

useradd –s /sbin/nologin nginx #为程序创建用户

tar -xf nginx-1.8.0.tar.gz

cd nginx-1.8.0

./configure --help | grep with #查看功能

./configure \

--prefix=/usr/local/nginx \ #指定安装路径文件 --user=nginx \ #指定用户 --group=nginx \ #指定用户组 --with-http_ssl_module #SSL加密功能

make

make install

cp /usr/local/nginx/sbin/nginx /usr/sbin/ #添加快捷命令


首先编译安装

./configure......

make C语言源码编译成二进制可执行程序 库文件等 绿色的nginx

make install

注意:原来有则会覆盖掉原来数据


升级Nginx 编译新版本nginx # tar -zxvf nginx-1.9.0.tar.gz # cd nginx-1.9.0 [root@svr5 nginx-1.9.0]# ./configure
> --prefix=/usr/local/nginx \ > --user=nginx \ > --group=nginx \ > --with-http_ssl_module #会在目录下生成objs文件夹 这是编译文件 # make #会在objs里生成nginx程序文件着就是升级的程序

注意: 这里继续make install会覆盖安装 会删除软件下所有目录所有数据!

# mv /usr/local/nginx/sbin/nginx  \
>/usr/local/nginx/sbin/nginxold	#将旧版本备份起来以便升级失败后还原,重要
# cp objs/nginx  /usr/local/nginx/sbin/	#拷贝新版本	
# /usr/local/nginx/sbin/nginx -s stop	#停服务
# /usr/local/nginx/sbin/nginx		#启动   重启是 -s reload

nginx命令

/usr/local/nginx/sbin/nginx #启动服务

/usr/local/nginx/sbin/nginx -s stop #关闭服务

/usr/local/nginx/sbin/nginx -s reload #重新加载 配置文件

/usr/local/nginx/sbin/nginx –V #查看软件信息

...... configure arguments: --prefix=/usr/local/nginx --with-http_ssl_module #有软件安装配置 模块信息

nginx服务默认通过TCP 80端口监听客户端请求:

netstat -anptu | grep nginx

tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 10441/nginx


配置文件 注意: 每段后面都有;分号结尾,一个server代表一个网站; 配置文件中 / 根 代表/usr/local/nginx/下 虚拟主机不能完全一样

vim /usr/local/nginx/conf/nginx.conf #全局配置文件

注意: 每段后面都有;分号结尾 一个server{}代表一个网站 基于域名 基于IP 基于端口 相同条件由于多个虚拟网站第一个优先显示 #如果不想让人用IP访问可在第一个放一个空页面 用IP就无法访问了 http{

server {

listen 80; #等同于listen 192.168.4.5:80; #一个IP也就是一张网卡

server_name www.haha.com;

location / {

root html; #网站目录

index index.html index.htm;

}

}

server {
	listen       80;		#可写 listen 192.168.4.5:80;
	server_name  localhost;

	auth_basic "Input Password:";	#认证提示符

	auth_basic_user_file "/usr/local/nginx/pass";	#认证密码文件用户,是nginx独立创建的

	location / {
	    root   web;		#目录不要和上面的重复不然会一样 出去要创建
	    index  index.html index.htm;
	}
  }

}

#pid logs/nginx.pid; #记录nginx的进程pid文件 此文件可用于判断nginx是否启动

配置认证用户

#yum install -y httpd-tools #安装创建网站用户的工具

htpasswd -cm /usr/local/nginx/pass tom #-c是创建密码文件 以有可以不用加-c m是md5加密方式 可以不写默认也是md5

New password: Re-type new password: Adding password for user tom

htpasswd /usr/local/nginx/pass jarry

nginx -s reload

日志文件 logs


https 对称密钥:单机加密 AES,DES 加密解密同一个 比如RAR压缩密码(AES) 非对称密钥:网络加密 RSA,DSA 公钥 私钥 证书

扩展

md5sum a.txt #查看文加md5值 内容改变md5校验值就会变(数据安全)


SSL虚拟主机

源码安装Nginx时必须使用--with-http_ssl_module参数

1.生成私钥与证书

cd /usr/local/nginx/conf

openssl genrsa -out cert.key #生成私钥 也以这样写openssl genrsa > cert.key

openssl req -new -x509 -key cert.key -out cert.pem #生成证书 同样 -out 可 > 替换

2.修改Nginx配置文件,设置加密网站的虚拟主机

vim /usr/local/nginx/conf/nginx.conf #在尾部有模版

… …
server { listen 443 ssl; server_name www.cc.com; ssl_certificate cert.pem; # 公钥 注意在conf下 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反向代理

调度器 client----> proxy----->web1,web2,web3...(web高可用)

proxy: 调度 负载均衡 健康检查(自动感知 后台ping)

1.安装nginx

2.修改配置

vim /usr/local/nginx/conf/nginx.conf

http { ...... upstream webserver { #定义集群 可以定义多个集群 ip_hash; #会话保持 server 192.168.2.100; #web服务器的ip server 192.168.2.200 weight=2 max_fails=3 fail_timeout=30; server 192.168.1.1 down; #weight默认1会在此会连续调用两次数 #max_fails错误连接次数 #fail_timeout连接失败后(ping)等待时间 #down 停用服务器(维修) #ip_hash 会话保持,根据客户端(同一IP)只会访问同一后端服务器防止账号重复登陆的问题 } server { listen 80; server_name www.test.com;

location / { proxy_pass http://webserver; #调用集群 写在location里,下面的配置就无效拉 root html; index index.html index.htm; } ...... }

3.起服务

nginx -s reload

看完以后有何感想 评论留下你的感想 有赞更帅