NGINX

nginx的安装

建议使用源码包安装

■源码包安装步骤:解包;配置;编译;安装

■前提:提前安装源码包安装所依赖的内容(gcc,make,openssl-devel,pcre-devel)

●解包:建议解包之前查看一下压缩包的内容,是否为完整的目录,如果不是目录,直接解压缩,压缩包内容会充斥目录的各个角落

●配置:./configure --prefix=安装路径 --user=nginx --group=nginx --with-http_ssl_module 指定安装路径,指定用户,组,开启ssl加密功能,此项配置完毕后会出现makefile文件;如果没有定义安装位置则默认安装在/usr/local/nginx下

●编译:make(如果没有安装此软件包需提前安装)

●安装:make install

nginx启动

○未配置systemctl启动方式

■启动:/usr/local/nginx/sbin/nginx

■更新配置:/usr/local/nginx/sbin/nginx -s reload

■关闭:/usr/local/nginx/sbin/nginx -s stop

■查看nginx软件信息:/usr/local/nginx/sbin/nginx -V(v是大写的)

○配置systemctl启动方式

复制代码
   [root@proxy nginx]#cd	/usr/lib/systemd/system
   [root@proxy nginx]#cp	httpd.service		nginx.service
[root@proxy nginx]#vim		nginx.service
   [Unit]
Description=The Nginx HTTP Server       #描述信息
After=network.target remote-fs.target nss-lookup.target     #在网络程序,网络文件系统,域名解析等服务启动之后,再启动nginx   
[Service]
Type=forking     #forking多进程类型服务
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID        #kill给程序发送QUIT退出信号,关闭nginx
[Install]
   WantedBy=multi-user.target
   按照以上内容配置,配置完毕后即可使用systemctl控制nginx的启动,停止及加载配置
[root@proxy nginx]#systemctl start nginx    #可以控制nginx开启了,这里如果无效可以尝试重启服务器

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

○使用ss -antlp命令查看系统中启动的端口信息

■-a显示所有端口的信息

■-n以数字格式显示端口号

■-t显示TCP连接的端口

■-u显示UDP连接的端口

■-l显示服务正在监听的端口信息,如httpd启动后,会一直监听80端口

■-p显示监听端口的服务名称是什么(也就是程序名称)

●nginx服务默认首页文档存储目录为/usr/local/nginx/html/,此目录下默认有一个index.html文件(默认读取)

虚拟主机

基于域名的虚拟主机(端口相同,域名不同,location内根目录不同)

○修改nginx配置文件,添加相关虚拟主机配置,配置文件如下

复制代码
[root@proxy nginx]#vim	/usr/local/nginx/conf/nginx.conf
http {
.. ..
    server {
        listen       80;                           #端口
        server_name  www.panda.com;                    #定义虚拟主机域名
        location / {
            root   html_b;                         #指定网站根路径
            index  index.html index.htm;           #默认页面
        }
}
    server {
    listen  80;                                 #端口
    server_name  www.panda1.com;                     #定义虚拟主机域名
...    
    location / { 
        root   html;                            #指定网站根路径
        index  index.html index.htm;
    }
}
...
[root@proxy nginx]#/usr/local/nginx/sbin/nginx  -s  reload   #重新加载配置文件
如果需要测试的话,可以操作以下步骤
[root@proxy nginx]#curl	www.panda.com
[root@proxy nginx]#curl	www.panda1.com
[root@proxy nginx]#echo		IP地址	 www.panda.com www.panda1.com  >>	/etc/hosts  #可以通过修改host文件测试通信(linux环境)
windows环境配置hosts文件
C:\Windows\System32\drivers\etc\hosts
然后用文本打开hosts,在最后添加
192.168.88.5 www.a.com www.b.com
如果hosts文件是只读,可以
右击hosts文件---属性---安全---编辑---users---完全控制打钩

基于端口的虚拟主机(端口相同,域名不同,location内根目录不同)

○修改nginx配置文件,添加相关虚拟主机配置,配置文件如下

复制代码
[root@proxy nginx]#vim	/usr/local/nginx/conf/nginx.conf
...
    server {
        listen       8080;               #端口
        server_name  www.panda.com;          #域名
        ......
}
    server {
        listen       8000;                #端口
        server_name  www.panda.com;           #域名
      .......

[root@proxy nginx]# systemctl	reload	nginx  #重新加载配置文件

基于IP的虚拟主机

○修改nginx配置文件,添加相关虚拟主机配置,配置文件如下

复制代码
[root@proxy nginx]#vim	/usr/local/nginx/conf/nginx.conf
...
   server {
        listen       192.168.88.5:80;    #IP地址与端口
        server_name  www.a.com;          #域名
  ... ...
}
    server {
        listen       192.168.99.5:80;     #IP地址与端口
        server_name  www.a.com;
... ...
}
...
[root@proxy nginx]# systemctl	reload	nginx  #重新加载配置文件

配置SSL虚拟主机

加密算法说明

●源码安装Nginx时必须使用--with-http_ssl_module参数,启用加密模块,对于需要进行SSL加密处理的站点添加ssl相关指令(设置网站需要的私钥和证书)

●加密算法一般分为对称算法、非对称算法、信息摘要

○对称算法有:AES、DES,主要应用在单机数据加密

○非对称算法有:RSA、DSA,主要应用在网络数据加密

○信息摘要:MD5、sha256,主要应用在数据完整性校验

复制代码
[root@proxy nginx]# echo 123 > /root/test
[root@proxy nginx]# md5sum/sha256sum/sha512sum  /root/test	#查看加密后的内容,如果文件改动加密内容会发生变化,再次修改为原来的内容则不变

生成公私钥(公钥加密,私钥解密)

复制代码
[root@proxy nginx]# openssl genrsa > conf/cert.key            #生成私钥,放到cert.key文件
[root@proxy nginx]# openssl req -x509 -key conf/cert.key > conf/cert.pem    #-x509格式,生成证书,生成过程会询问诸如你在哪个国家之类的问题
Country Name (2 letter code) [XX]:        #国家名
State or Province Name (full name) []:    #省份
Locality Name (eg, city) [Default City]:  #城市
Organization Name (eg, company) [Default Company Ltd]:		#公司
Organizational Unit Name (eg, section) []:               #部门
Common Name (eg, your name or your server's hostname) []:dc #服务器名称
Email Address []:          #电子邮件,符合邮件格式
[root@proxy nginx]# systemctl  reload 	nginx  #重新加载配置文件
[root@proxy nginx]# mkdir https    #创建安全网站的目录
[root@proxy nginx]# echo "nginx-https~"  > https/index.html     #创建安全网站的页面
root@client ~]# curl  -k  https://192.168.88.5     #检验,-k是忽略安全风险
nginx-https~      #看到这个内容就说明成功
相关推荐
鬼手点金17 小时前
ReAct 循环
linux·服务器·前端·javascript·react.js·前端框架
l1t18 小时前
修改两处,让SQLite求解数独SQL在datafusion上运行
服务器·数据库·sql
派小心.19 小时前
DAU和MAU怎么计算?先确定活跃事件、用户键和统计窗口
大数据·服务器·前端·人工智能·数据分析
data analyse 45620 小时前
Session数怎么计算?明确会话切分、超时与跨页规则
java·服务器·数据库
先知后行。20 小时前
各种文件系统
linux·服务器·数据库
修船大队长21 小时前
启动阶段 KL15 未接通时触发报文超时监控
运维·服务器·网络
xiaoye-duck21 小时前
《C++ 项目:手写大模型接入 SDK》项目背景、目标及名词解释
服务器·网络·c++·语言模型
RD_daoyi21 小时前
外贸独立站从0到1:平台选择 + 建站流程 + 新手避坑
大数据·服务器·网络·人工智能·搜索引擎·职场和发展
Source.Liu21 小时前
【A11】服务器底层权限表笔记
运维·服务器·笔记