安装1.10.3
yum -y install gcc pcre-devel openssl-devel # 安装相关依赖包
useradd -s /sbin/nologin nginx #创建程序用户
tar -xf /root/lnmp_soft/nginx-1.10.3.tar.gz
cd nginx-1.10.3
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-stream --with-http_stub_status_module
make && make install #编译并安装
其中
–prefix=/usr/local/nginx 指定安装路径
–user=nginx 指定用户
–group=nginx 指定基本组
–with-http_ssl_module 开启SSL加密功能
–with-stream 开启ngx_stream_core_module模块
–with-http_stub_status_module 开启状态页面模块
相关指令
/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 #查看软件信息
为了程序调用方便,建立软连接,创建快捷方式
ln -s /usr/local/nginx/sbin/nginx /sbin/
后面就可以直接调用nginx
(1)编译新版本nginx软件
tar -zxvf nginx-1.12.2.tar.gz
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module --with-stream --with-http_stub_status_module
make #编译源码文件,编译成可执行文件
(2)备份老的nginx主程序,并使用编译好的新版本nginx替换老版本
mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginxold
cp objs/nginx /usr/local/nginx/sbin/ #拷贝新版本
make upgrade #升级
nginx -t #测试
nginx –v #查看版本
(3)客户端访问测试
curl url
访问Web页面需要进行用户认证
(1)修改配置文件
vim /usr/local/nginx/conf/nginx.conf
往server模块中添加两句配置
auth_basic
auth_basic_user_file
http{
... ...
server_tokens off; #关闭nginx版本显示
... ...
server {
listen 80;
server_name localhost;
auth_basic "Input Password:"; #认证提示符,可随意填写任何提示语
auth_basic_user_file "/usr/local/nginx/pass"; #认证密码文件
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
(2)装包
yum -y install httpd-tools
#创建密码文件,创建一个登录用户,回车输入两次密码,追加第二个用户的话,去掉-c即可
htpasswd -c /usr/local/nginx/pass tom
(3)重启服务
nginx -s reload
#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
(1)修改配置文件,更改server_name以及location–>root
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模块
server {
listen 80;
server_name www.b.com;
charset utf-8; #支持显示中文
location / {
root www;
index index.html index.htm;
}
}
mkdir /usr/local/nginx/www #创建b网站web访问根目录
echo "www.b.com" > /usr/local/nginx/www/index.html #创建一个测试的首页文件
nginx -s reload
上面配置的作用就是配置了两个基于域名的虚拟主机,www.a.com 跟 www.b.com,其中 www.a.com 配置了用户认证
server {
listen 8080; #端口
server_name web1.example.com; #域名
......
}
server {
listen 8000; #端口
server_name web1.example.com; #域名
.......
}
server {
listen 192.168.0.1:80; #IP地址与端口
server_name web1.example.com; #域名
... ...
}
server {
listen 192.168.0.2:80; #IP地址与端口
server_name web1.example.com;
... ...
}
(1)生成私钥与证书
cd /usr/local/nginx/conf
openssl genrsa > cert.key #生成私钥
openssl req -new -x509 -key cert.key > cert.pem #生成证书
(2)修改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;
}
}
(3)重启nginx服务
nginx -s reload
(4)客户端验证
firefox https://www.c.com //信任证书后可以访问
Github