返回顶部

Nginx初步学习

程序与进程、线程的理解:

程序:在磁盘里面的时候。

进程:在内存里面的运行的时候,进程有自己的独立空间,进程与进程之间相互隔离,互不干预。

线程:是进程的子集,进程下边起线程,线程没有自己的独立的空间,线程共享进程的内存空间。

Nginx:不起线程:多进程工作模式

   

Web服务器对比:

适用于UnixLinux平台下

  • httpd——>Apache
  • Nginx
  • Tengine——>淘宝
  • Tomcat——>Java
  • WebSphere——>IBM
  • Jboss——>红帽

   

Nginx简介:

Nginx("engine x")

是俄罗斯人编写的十分轻量级的HTTP服务器

是一个高性能的HTTP和反向代理,同时也是一个IMAP/POP3/SMTP 代理服务器

官网:http://nginx.org/

   

   

源码安装Nginx

安装依赖包: yum -y install gccpcre-developenssl-devel

创建普通用户:useradd -s /sbin/nologin nginx

解压Nginx源码包: tar -xf nginx-1.10.3.tar.gz

进入源码包路径:cd nginx-1.10.3

检测环境,指定安装功能与安装位置:

./configure --prefix=/usr/local/nignx --user=nginx --group=nginx --with-http_ssl_module

./configure

--prefix=/usr/local/nginx #指定安装路径

--user=nginx #指定用户

--group=nginx #指定组

--with-http_ssl_module #指定模块名

编译源码:make

安装:make install

   

控制服务

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

查看服务状态:ss -anptul | grep nginx

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

重启服务:/usr/local/nginx/sbin/nginx -s reload

查看软件信息:/usr/local/nginx/sbin/nginx -V

$PATH #查看环境变量目录

ln -s 绝对路径 环境变量目录 #设置环境变量,使得Nginx可以在任何界面调用启动

   

查看服务状态命令:

netstat|ss查看系统中启动的端口信息

  • -a 显示所有端口信息
  • -n 以数字格式显示端口号
  • -t 显示TCP连接的端口
  • -u 显示UDP连接的端口
  • -l 显示服务正在监听的端口信息
  • -p 显示监听端口的服务名称是什么(也就是程序名)

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

[root@servernginx]# ss -anptul | grep nginx

   

Nginx配置文件及目录/usr/local/nignx

  • /usr/local/nginx/ //默认安装目录
  • conf/nginx.conf //主配置文件
  • html //网页目录
  • logs //日志文件
  • sbin/nginx //启动脚本

   

平滑升级Nginx版本

  • l编译新版本: tar -xf nginx-1.12.2.tar.gz
  • l进到新版本路径: cd nginx-1.12.2
  • l检查环境:./configure --user=nginx --group=nginx --with-http_ssl_module #因为之前已经确认过文件位置(/usr/local/nginx/)
  • l编译新版本:make
  • l备份旧版本Nginx主程序,并使用make好的新版本替换旧版本
  • l mv /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginxold
  • l杀死旧版本进程:killallnginx #如果服务已经关闭不需要执行此步骤
  • l拷贝新版本:cp objs/nginx /usr/local/nginx/sbin/
  • l启动新版本:/usr/local/nginx/sbin/nginx

   

检测新版本

  • 查看版本信息:/usr/local/nginx/sbin/nginx –V
  • [root@qmtest ~]# nginx version: nginx/1.12.2
  • l查看新版本状态: ss -anptul | grep nginx
  • l访问服务:http://IP地址

   

Nginx配置文件解析

  • 全局配置文件: /usr/local/nginx/conf/nginx.conf

[root@client nginx]# vim /usr/local/nginx/conf/nginx.conf
http {
.. ..
server {                                                                //定义虚拟主机
        listen 80;                                                //默认监听端口号
         server_name localhost;                        //网站域名
        location / {
         root html;                                                //网页根目录
        index index.html index.htm;                //网页默认配置文件
}
}
}

  • 错误日志文件:/usr/local/nginx/logs/error.log
  • 访问日志文件:/usr/local/nginx/logs/access.log

   

阿帕奇hpptd

<virtualhost*:80>
servername 网站域名:www.xxx.com
documentroot 定义网站根目录 /var/www/html
<virtualhost>

   

用户认证

[root@client nginx]# vim /usr/local/nginx/conf/nginx.conf
http {
.. ..
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;
}
}
}

创建认证密码文件
[root@client nginx]# touch /usr/local/nginx/pass
安装软件包
[root@client nginx]# yum -y install httpd-tools
添加认证用户
[root@client nginx]# htpasswd -c /usr/local/nginx/pass haha \\只在第一次生成的时候加-c 选项
添加用户
[root@client nginx]# htpasswd /usr/local/nginx/pass laowang
重启服务
[root@client nginx]# nginx -s reload
访问测试:192.168.0.x

   

   

Nginx虚拟主机

   

Nginx三种模式虚拟主机

— 基于域名的虚拟主机

— 基于端口的虚拟主机

— 基于IP的虚拟主机

   

基于域名的虚拟主机

基于域名的虚拟主机
[root@client nginx]# vim /usr/local/nginx/conf/nginx.conf
.. ..
第一个:
server {
listen 80;                                        //端口
server_name www.xxoo.com;        //域名

location / {
root html;                                //网站根目录
index index.html index.htm;
}
}

第二个大概83行有模板:
server {
listen 80;                                        //端口
server_name www.xxxx.com;        //域名

location / {
root xxxx;                                        //网站根目录
index index.html index.htm;
}
}

创建网站目录
[root@client nginx]# mkdir /usr/local/nginx/xxxx
编写www.xxxx.com测试页面
[root@client nginx]# echo xxxx > /usr/local/nginx/xxxx/index.html
编写www.xxoo.com测试页面
[root@client nginx]# echo xxoo > /usr/local/nginx/html/index.html
加载配置
[root@client nginx]# nginx -s reload
创建本地解析
[root@client nginx]# vim /etc/hosts
.. ..
192.168.0.x www.xxoo.com
192.168.0.x www.xxxx.com
访问测试
[root@client nginx]# curl http://www.xxoo.com
[root@client nginx]# curl http://www.xxxx.com

   

   

基于端口的虚拟主机

域名相同但端口不同
基于端口的虚拟主机(了解内容)
server {
listen 8080;                                        //端口
server_name www.xxoo.com;        //域名
        root html;                                                //网站根目录
}
server {
listen 8000;                                        //端口
server_name www.xxoo.com;        //域名
         root www;                                        //网站根目录

}

   

   

   

基于IP的虚拟主机

域名无所谓了,ip不同
ip指定端口
server {
listen 192.168.0.x:80;                        //IP 端口
server_name www.xxoo.com;                //域名
        root html;                                                        //网站根目录
}
server {
listen 192.168.0.x 80;                        //IP 端口
server_name www.xxoo.com;                //域名
         root www;                                                //网站根目录
}

   

   

部署加密网站:

部署HTTPS加密网站,加密模块 –with-http_ssl_module

   

  • 加密算法一般分为:对称加密算法、非对称加密算法、信息摘要
  • 对称加密算法:AES、DES 主要用于单机数据加密
  • 非对称加密算法:RSA、DSA 主要用于网路数据加密
  • 信息摘要:MD5、sha256 、sha512主要用于对数据的完整校验

   

部署私钥|证书

SSL加密网站的核心技术是非对称生成密钥

  • [root@client ~]# cd /usr/local/nginx/conf/
  • [root@client conf]# opensslgenrsa > cert.key //生成私钥
  • [root@client conf]# openssl req -new -x509 -key cert.key > cert.pem //生成证书

回答问题:
1:国家的名字必须是2个字母的:CN
2:省份:
3:城市:
4;公司:
5:部门:
6:名字服务器或者自己姓名:
7:邮箱地址:

vim /usr/local/nginx/conf/nginx.conf
"100行附近"
server {
listen 443 ssl;
server_name localhost;

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;
}
}
[root@client conf]# nginx -s reload                //重启服务

posted @ 2021-08-05 16:34  天下何人不通共  阅读(357)  评论(0)    收藏  举报
HTML
1411558182