Nginx专为性能优化而开发其中知名的有点是他的稳定性和低系统资源消耗,以及“httpd”并发连接的高处理能力

1. Nginx 1.26安装以及运行控制

        Nginx安装文件可以在官网http://www.nginx.org/下载。以下是Nginx1.26版本为例,介绍Nginx的安装和运行控制

1.1编译安装Nginx
  • 安装支持软件(在原openEuler系统上是没有tar解包这个命令需要手动下载)

#dnf install -y gcc make pcre-devel zlib-devel openssl-devel perl-ExtUtils-MakeMaker git wget tar

  • 创建运行用户,组和日志目录

#useradd -M -s /sbin/nologin nginx

#mkdir -p /var/log/nginx

#chown -R nginx:nginx /var/log/nginx

  •  编译安装Nginx(配置Nginx编译选项时将安装目录设置为/usr/local/nginx ,运行用户和组均为Nginx)

#tar zxvf nginx-1.26.tar.gz

#cd nginx-1.26.3                #只有进入这个目录下才可以进行配置Nginx

#./configure \
  --prefix=/usr/local/nginx \    #指定nginx安装路径 
  --user=nginx \  #指定运行 Nginx 工作进程的用户和组
  --group=nginx \
  --with-http_ssl_module \ #启用 HTTPS 支持(SSL/TLS 加密)
  --with-http_v2_module \   #启用 HTTP/2 协议支持
  --with-http_stub_status_module\      #状态统计模块
  --with-pcre \  #启用 PCRE库,支持正则表达式

  • 创建Nginx软连接,管理员就可以直接执行Nginx命令来调用Nginx的主程序

#ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

  • 检查下载好的Nginx文件

# ls /usr/local/nginx        #以下是对文件作用解释

conf:保存nginx所有配置文件

html:目录保存了nginx服务器web文件

logs:用来保存nginx服务器访问日志错误日志等日志

sbin:保存nginx二进制启动脚本

*_tmp:临时文件目录

1.2Nginx的运行控制

#nginx -t                #“-t”选项可以对配置文件进行检查

报出的ok就是配置成功

  • 添加Nginx系统服务

#vi /lib/systemd/system/nginx.service                #添加一下内容

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=network.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/sbin/nginx -t
ExecStart=/usr/local/sbin/nginx
ExecReload=/usr/local/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
User=root
Group=root

[Install]
WantedBy=multi-user.target

  • 这样一来就可以使用systemctl命令来启动,停止,重启,重载Nginx服务器了

#systemctl daemon-reload

#systemctl start nginx

#systemctl enable nginx

1.3访问状态统计
  • 要使用Nginx状态统计还需要对配置文件进行需改

#vi /usr/local/nginx/conf/nginx.conf

指定访问位置添加stub_status配置代码

#systemctl restart nginx #刷新Nginx服务

在浏览器访问Nginx服务的/status网站位置

1.4基于授权的访问控制步骤
  • 使用htpasswd生成用户认证文件,如果没有该命令,使用dnf安装httpd-tools软件包

#dnf install -y httpd-tools

#htpasswd -c /usr/local/nginx/passewd.db test                #其中test是你创建用户名

#cat /usr/local/nginx/passwd.db

  • 修改密码文件权限400,将所有者改为Nginx,设置Nginx运行用户能够读取

#chmod 400 /usr/local/nginx/passwd.db

#chown nginx /usr/local/nginx/passwd.db

#ll -d /usr/local/nginx/passwd.d

  • 修改主配置文件nginx.conf,添加相应认证配置选项

#vi /usr/local/nginx/conf/nginx.conf

#nginx -t                         #检查语法

#systemctl restart nginx                        #刷新配置

然后进行浏览器访问.

  1. 5Nginx虚拟主机
  • 利用虚拟主机,不用为每个要运行的网站提供一台单独的Nginx服务器或
    单独运行一组Nginx进程,虚拟主机提供了在同一台服务器,同一组Nginx进
    程上运行多个网站的功能。跟Apache一样,Nginx也可以配置多种类型的虚拟
    主机,分别是基于IP的虚拟主机、基于域名的虚拟主机、基于端口的虚拟主机。
    使用Nginx搭建虚拟主机服务器时,每个虚拟Web站点拥有独立的
    “server(”配置段,各自监听的IP地址、端口号可以单独指定,当然网站
    名称也是不同的。
  • 准备各个网络目录和测试首页

#mkdir -p /var/www/html/btcom

#mkdir -p /var/www/html/testcom

#echo "www.bt.com">> /var/www/html/btcom/index.html

#echo "www.test.com">>/var/www/html/testcom/index.html

  • 修改主配置文件把配置文件中的server{}代码段全部删掉加入2个新的server{}段

#vi /usr/local/nginx/conf/nginx.conf

server { 
listen 80; 
server_name www.bt.com; 
charset utf-8; 
access_log logs/www.bt.access.log; 
location / { 
root /var/www/html/btcom; 
index index.html index.htm; 

error_page 
500 502 503 504 /50x.html; 
location = 50x.html{ 
root html; 

server {   
listen 80;
server_name www.test.com;  
charset utf-8; 
access_log logs/www.test.access.log;
location / { 
root /var/www/html/testcom;
index index.html index.htm; 

error_page 
500 502 503 504 /50x.html; 
location = 50x.html{ 
root html; 

}

#nginx -t 

#systemctl restart nginx 

  • 我们要修改hosts文件才可以进行访问

#vi /etc/hosts

#cat /etc/hosts

  • 最后访问即可(域名)
  • 基于IP和端口我们只需要修改配置文件/usr/local/nginx/conf/nginx.conf 上述添加的文本找到listen修改自己想要访问IP和端口即可
Logo

鲲鹏昇腾开发者社区是面向全社会开放的“联接全球计算开发者,聚合华为+生态”的社区,内容涵盖鲲鹏、昇腾资源,帮助开发者快速获取所需的知识、经验、软件、工具、算力,支撑开发者易学、好用、成功,成为核心开发者。

更多推荐