一、Nginx简介
- Nginx
- 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP代理服务器
- 是一个模块化软件
【1】、安装nginx
-
使用源码包编译安装
cd /opt # 获取nginx的源码包 wget https://nginx.org/download/nginx-1.24.0.tar.gz
-
安装源码编译安装的依赖
yum install -y gcc make pcre-devel openssl-devel
-
编译安装
cd nginx-1.24.0/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module # with-http_ssl_module:安全模块 make && make install
-
安装完成
root@proxy[00:32:33]:/opt/nginx-1.24.0 $ cd /usr/local/nginx/ root@proxy[00:32:42]:/usr/local/nginx $ ls conf html logs sbin # 创建nginx的执行用户 root@proxy[00:32:43]:/usr/local/nginx $ useradd nginx -s /sbin/nologin
-
启动测试
root@proxy[00:33:21]:/usr/local/nginx $ ./sbin/nginx root@proxy[00:33:32]:/usr/local/nginx $ netstat -tunple | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 0 45415 8939/nginx: master
【2】、nginx目录解析
- conf:存放nginx的配置文件
- html:存放网页文件
- sbin:主程序目录
- logs:日志
root@proxy[00:41:29]:/usr/local/nginx
$ ./sbin/nginx -s stop
root@proxy[00:41:41]:/usr/local/nginx
$ ./sbin/nginx -V
nginx version: nginx/1.24.0
built by gcc 8.5.0 20210514 (Red Hat 8.5.0-20) (GCC)
built with OpenSSL 1.1.1k FIPS 25 Mar 2021
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_ssl_module
重新加载配置
sbin/nginx -s reload
【3】、nginx配置文件
nginx配置文件分为3部分
指令 参数 ;
指令是在nginx中定义好的,参数可以有也可以没有
./conf/nginx.conf.default:是nginx的配置文件的原始模板,不要修改
# 第39行,取消注释,将原本的编码改为utf-8,网页即可支持中文
charset utf-8;
实现认证功能
在配置认证功能后,别人就不能随便访问了
在虚拟主机的范围中输入如下两行:
auth_basic "password"; 开启认证功能
auth_basic_user_file "/usr/local/nginx/pass"; 谁能访问都在这个文件中,一会新建这个文件
nginx要求:
pass文件中的密码必须是加密的形式,不能是明文。因此我们不能通过vim创建并写入内容
我们下载一个新的工具
yum install -y httpd-tools
这个工具提供了可以进行加密的方式:htpasswd命令
root@proxy[01:27:32]:/usr/local/nginx
$ htpasswd -c /usr/local/nginx/pass tim
New password:
Re-type new password:
Adding password for user tim
root@proxy[01:28:49]:/usr/local/nginx
$ cat /usr/local/nginx/pass
tim:$apr1$pgY4Cs/n$isLfKsG9OPy33UmyhB0hY0
$ htpasswd /usr/local/nginx/pass tom
New password:
Re-type new password:
Adding password for user tom
【4】、nginx实现虚拟主机
和httpd一样
nginx也可以设置虚拟主机
修改nginx的配置文件
# 基于域名的虚拟机主机
server{
listen 80;
server_name www.a.com;
root html_a;
index index.html;
}
# 基于端口的虚拟主机
server{
listen 8080;
server_name www.a.com;
root html_a;
index index.html;
}