nginx: download
wget https://nginx.org/download/nginx-1.21.6.tar.gz
2、安装依赖软件与源码安装3、启动Nginx服务#gcc //编译器 #pcre-devel //pcre来解析正则表达式,所以需要在linux上安装pcre库 #openssl-devel //openssl的库文件依赖包 yum -y install gcc pcre-devel openssl-devel #安装依赖软件包 自行使用wget或者网页下载包 mkdir /opt/nginx cd /opt/nginx tar -xf nginx-1.21.6.tar.gz #以1.21.6为例 cd nginx-1.21.6 ./configure --prefix=/usr/bin/nginx #指定安装目录 --user=nginx #指定账户名称 --group=nginx #指定组名称 --with-http_ssl_module #支持加密功能 --with-http_stub_status_module #支持状态查询
nginx配置文件位置 说明 /usr/local/nginx/ 安装目录 config/nginx.conf 主配置文件 html 网页目录 logs 日志文件 sbin/nginx 启动脚本
常用选项 释义 -V 查看编译参数 -c 指定配置文件,启动服务 -t 测试配置文件语法是否有错误
/usr/bin/nginx/sbin/nginx #启动nginx /usr/bin/nginx/sbin/nginx -s reload #重新加载配置 /usr/bin/nginx/sbin/nginx -s stop #关闭服务 curl 127.0.0.1 #访问测试,可正常显示欢迎界面4、查看服务相关进程及端口
ps aux | grep nginx #查看进程 netstat -tunalp | grep nginx #查看监听端口 ss -tunlp | grep nginx #查看监听端口 grep -w 80 /etc/services #通过端口查看那个服务产生的5、启动nginx排错
问题1:未创建指定用户
/usr/bin/nginx/sbin/nginx #启动nginx nginx: [emerg] getpwnam("nginx") failed #安装配置nignx,指定Nginx的系统用户,但是用户不存在出现的问题 useradd nginx #创建指定的用户即可解决 /usr/bin/nginx/sbin/nginx -t #再检测状态正常
二、Nginx配置解析 1、配置容器问题2:端口被占用
[root@localhost ~]# /usr/bin/nginx/sbin/nginx #80端口被占用,停掉http服务即可 nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use) systemctl stop httpd.service
vim /usr/bin/nginx/conf/nginx.conf #配置文件
server { #每一个server代表一个网站服务器
listen 80; #网站监听的端口
server_name localhost; #域名
auth_basic "auth-domain"; #代表输入密码和用户名提示框的信息
auth_basic_user_file "/usr/local/nginx/pass"; #密码文件存放的位置
location / {
root html; #代表网站根路径(此处相对路径是对应软件安装位置)
index index.html index.htm; #代表网站默认首页,可有多个,当第一个找不到依次往后面找,用户没有指定具体使用哪个界面,则使用默认首页内容
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
2、用户认证
yum-y install httpd-tools #安装并发测试工具 htpasswd -c /usr/bin/nginx/pass admin #创建认证用户(-c代表之前没有pass文件,所以第一次要加;之后再创建就不用再加-c;pass代表密码文件,admin代表用户) New password: #根据提示设置密码 Re-type new password: /usr/local/nginx/sbin/nginx -s reload #重新加载配置文件(必须要属于启动状态,-s不要关nginx,立刻生效)
三、Nginx虚拟主机的三种模式 1、基于域名的虚拟主机(域名有区别)验证测试:
vim /usr/bin/nginx/conf/nginx.conf #修改配置文件
server {
listen 80;
server_name web1.nginx.cn; #域名
auth_basic "auth-domain"; #认证提示符
auth_basic_user_file "/usr/local/nginx/pass"; #密码提示文件
location / {
root html;
index index.html index.htm;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
server {
listen 80; #端口
server_name web2.nginx.cn; #域名
location / {
root web; #指定网站根路径
index index.html index.htm;
}
}
mkdir /usr/bin/nginx/web
echo "web:hello world" > /usr/bin/nginx/web/index.html #新建索引文件
/usr/bin/nginx/sbin/nginx -s reload #重新加载配置
2、基于端口的虚拟主机(监听端口不一样)windows界面操作:
如果使用带图形的界面可以使用系统自带的火狐浏览器进行测试,修改将域名解析写入/etc/hosts文件中:
echo "192.168.2.105 web1.nginx.cn web2.nginx.cn" >> /etc/hosts
3、基于IP的虚拟主机 (IP不一样)
四、HTTPS加密网站 1、秘钥
| 常见秘钥算法 |
|---|
| 1.对称加密 :AES、DES |
| 2.非对称加密 :RSA、DSA |
| 3.Hash值:MD5、SHA256、SHA512 |
cd /usr/bin/nginx/conf/
openssl genrsa > cert.key #生成私钥
openssl req -new -x509 -key cert.key > cert.pem #生成证书
vim /usr/bin/nginx/conf/nginx.conf #修改配置文件开启SSL
server {
listen 443 ssl; #开启SSL
server_name web.test.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/bin/nginx/sbin/nginx -s reload #重新加载配置文件
echo "192.168.2.105 web.test.com" >> /etc/hosts #修改域名解析配置文件或者修改windos的文件
在图形界面中下使用浏览器访问:https://web.test.com进行测试



