自学内容网 自学内容网

麒麟操作系统服务架构保姆级教程(四)NGINX中间件

 如果你想拥有你从未拥有过的东西,那么你必须去做你从未做过的事情

想要在网页上访问到代码那么就需要用到应用服务类中间件,国外的有Nginx,Tomcat等,国内的有金蝶web,东方通的服务中间件(Tongweb)等等,今天就来介绍和安装一下Nginx~~~~

目录

一、查询我的公网出网IP

二、服务架构框架

三、Nginx服务安装

发现无法访问页面???

关闭防火墙

四、Nginx服务管理

五、部署一个好看的前端界面


💬欢迎交流:在学习过程中如果你有任何疑问或想法,欢迎在评论区留言,我们可以共同探讨学习的内容。你的支持是我持续创作的动力!

👍点赞、收藏与推荐:如果你觉得这篇文章对你有所帮助,请不要忘记点赞、收藏,并分享给更多的小伙伴!你们的鼓励是我不断进步的源泉!

🚀推广给更多人:如果你认为这篇文章对你有帮助,欢迎分享给更多对Linux感兴趣的朋友,让我们一起进步,共同提升!

一、查询我的公网出网IP

[root@web01 heavenly-music-master]#curl cip.cc
IP  : ***.**.**.***
地址  : 中国  北京
运营商 : 联通
​
数据二 : 中国北京北京 | 联通
​
数据三 : 中国北京北京市 | 联通
​
URL : http://www.cip.cc/ ***.**.**.***
[root@web01 heavenly-music-master]#
我们公司的出网IP我不方便透露,你们自己试试吧~~~~

二、服务架构框架

LNMP架构Linxu Nginx MySQL PHP
LNMT架构Linxu Nginx MySQL Tomcat
LAMP架构Linxu Apache MySQL PHP
LNMP架构Linxu Nginx MySQL Python

三、Nginx服务安装

方法1.编译安装
方法2.epel安装,版本较低,配置不易读,不建议使用默认为1.20
方法3.通过官网仓库安装
​
通过官网编译安装nginx(1.26版本)
下载网址
https://nginx.org/en/download.html
​
也可以使用wget命令
[root@web01 code]#wget https://nginx.org/download/nginx-1.26.2.tar.gz

[root@web01 ~]#ls
公共  视频  文档  音乐  anaconda-ks.cfg            initial-setup-ks.cfg
模板  图片  下载  桌面  heavenly-music-master.zip  nginx-1.26.2.tar.gz
​
新建目录
[root@web01 ~]#mkdir /usr/local/web-tool
​
将解压好的包移动到刚刚新建的目录下并改名
[root@web01 ~]#mv nginx-1.26.2 /usr/local/web-tool/nginx
​
进入目录
[root@web01 ~]#cd /usr/local/web-tool/nginx
[root@web01 nginx]#ls
auto  CHANGES  CHANGES.ru  conf  configure  contrib  html  LICENSE  man  README  src
​
检查与编译
[root@web01 nginx]#./configure 
checking for OS
 + Linux 4.19.90-52.15.v2207.ky10.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 7.3.0 (GCC) 
​
……
​
creating objs/Makefile
​
Configuration summary
  + using system PCRE2 library
  + OpenSSL library is not used
  + using system zlib library
​
  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"
  
安装编译
[root@web01 nginx]#make
make -f objs/Makefile
make[1]: 进入目录“/usr/local/web-tool/nginx”
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/event/quic -I src/os/unix -I objs \
    -o objs/src/core/nginx.o \
    src/core/nginx.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/event/quic -I src/os/unix -I objs \
    -o objs/src/core/ngx_log.o \
    src/core/ngx_log.c
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/event/quic -I src/os/unix -I objs \
    -o objs/src/core/ngx_palloc.o \
    src/core/ngx_palloc.c
……
​
[root@web01 nginx]#sudo make install
make -f objs/Makefile install
make[1]: 进入目录“/usr/local/web-tool/nginx”
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin' \
    || mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx' \
    || mv '/usr/local/nginx/sbin/nginx' \
        '/usr/local/nginx/sbin/nginx.old'
cp objs/nginx '/usr/local/nginx/sbin/nginx'
test -d '/usr/local/nginx/conf' \
    || mkdir -p '/usr/local/nginx/conf'
cp conf/koi-win '/usr/local/nginx/conf'
cp conf/koi-utf '/usr/local/nginx/conf'
cp conf/win-utf '/usr/local/nginx/conf'
test -f '/usr/local/nginx/conf/mime.types' \
    || cp conf/mime.types '/usr/local/nginx/conf'
cp conf/mime.types '/usr/local/nginx/conf/mime.types.default'
test -f '/usr/local/nginx/conf/fastcgi_params' \
    || cp conf/fastcgi_params '/usr/local/nginx/conf'
​
​
启动nginx查看是否安装成功
[root@web01 nginx]#/usr/local/nginx/sbin/nginx
进入浏览器输入IP+端口(端口默认80)

发现无法访问页面???

关闭防火墙

contos7以后系统默认使用fairewalld防火墙,不需要默认关闭iptables
但是银河麒麟是两种防火墙同时使用的,小屁最早陷入了思维误区,一直没想到iptables的问题,经原厂工程师的提醒关闭iptables防火墙就可以访问啦!!!
关闭两道防火墙之后记得关闭开机自启呦~~~~
[root@web01 nginx]#systemctl stop firewalld.service 
[root@web01 nginx]#systemctl stop iptables
[root@web01 nginx]#systemctl disable firewalld.service 
[root@web01 nginx]#systemctl disable iptables
当然在生产环境不建议这么玩(可以学习一下防火墙开口的策略)

 

四、Nginx服务管理

[root@web01 nginx]#cat nginx.conf 
# 核心区块
user  nginx;                # 启动nginx的虚拟用户 默认已经存在了
worker_processes  auto;     # 启动子进程的数量 auto以cpu的内核数为准
error_log  /var/log/nginx/error.log notice; # 错误日志所在的日志
pid        /var/run/nginx.pid;              # 进程PID所存放的目录
# 事件模块
events {
 worker_connections  25532;              # 进程的最大连接数
}
 # http模块
http {
include       /etc/nginx/mime.types;    # 媒体类型
default_type  application/octet-stream; # 默认如果媒体类型中不存在,则自动下载该页面
log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                    '"$http_user_agent" "$http_x_forwarded_for"';
access_log  /var/log/nginx/access.log  main;   # nginx的访问日志
sendfile       on;       #文件高效传参
#tcp_nopush    on;      
keepalive_timeout  65;      #长连接的超时时间                    
#gzip  on;                    #是否开启压缩
include /etc/nginx/conf.d/*.conf;              # 包含了conf.d目录下所有的.conf  将*.conf内容移动到了当前的文件中
}
主机配置文件:
[root@web01 conf.d]#nginx.conf
#可以放在最后倒数第二行
server {
        listen 80;
        server_name www.game.com;
        location / {
                root /code/;
                index index.html index.htm;
        }
# 包含了conf.d目录下所有的.conf  将*.conf内容移动到了当前的 
}
修改完成之后使用nginx -t检查语法
[root@web01 ~]#/usr/local/nginx/sbin/nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
​
重载nginx(可以重启,但是不建议那么做,重载是热加载,重启是关闭之后再启动)
/usr/local/nginx/sbin/nginx -s reload
​
查看nginx版本
[root@web01 ~]#/usr/local/nginx/sbin/nginx -v
nginx version: nginx/1.26.2
​
第五步:检查服务端口是否开启
[root@web01 conf.d]#netstat -tnulp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address       
tcp        0      0 0.0.0.0:80          0.0.0.0:*
​
​
​
Nginx启动方式:两种启动方式(编译安装需要自己写脚本,我写了但是有点问题等写好再粘过来)
systemctl start nginx   #systemctl启动进程
systemctl stop nginx    #停止进程
​
​
​
第二种:没有被systemctl所管理:使用绝对路径运行
#启动脚本是在
# /usr/local/nginx/sbin/nginx
#启动,
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
#停止
/usr/local/nginx/sbin/nginx -s stop
#重载
/usr/local/nginx/sbin/nginx -s reload
#杀掉nginx
/usr/local/nginx/sbin/nginx -s quit
​
​
[root@web01 ~]#/usr/local/nginx/sbin/nginx
[root@web01 ~]#netstat -tnulp|grep 80
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      22956/nginx: master 

五、部署一个好看的前端界面

[root@web01 ~]#vim /usr/local/nginx/conf/nginx.conf
#倒数第二行写入下面的内容
……
#}
        server {
                listen 81;
                #server_name www.game.com;
                location / {
                        root /code/heavenly-music-master;
                        index index.html index.htm;
                }
# 包含了conf.d目录下所有的.conf  将*.conf内容移动到了当前的 
        }
#注意要放到最后一行花括号“}”里
}
​
下载代码
https://gitee.com/ymhkali/heavenly-music/repository/archive/master.zip
​
我下载到了/root目录下
[root@web01 ~]#ls
公共  视频  文档  音乐  anaconda-ks.cfg            initial-setup-ks.cfg
模板  图片  下载  桌面  heavenly-music-master.zip  nginx-1.26.2.tar.gz
​
解压代码包
[root@web01 code]#unzip /root/heavenly-music-master.zip -d /code/
Archive:  /root/heavenly-music-master.zip
bc49cdda7c39e0c2224655e28ccb5d74a068259d
   creating: /code/heavenly-music-master/
   creating: /code/heavenly-music-master/CSS/
  inflating: /code/heavenly-music-master/CSS/album.css  
  inflating: /code/heavenly-music-master/CSS/index.css  
  inflating: /code/heavenly-music-master/CSS/my_music.css  
  inflating: /code/heavenly-music-master/CSS/play.css  
  inflating: /code/heavenly-music-master/CSS/playlist_detail.css  
……
  inflating: /code/heavenly-music-master/images/音乐小图标1.png  
  inflating: /code/heavenly-music-master/images/音乐背景.jpg  
  inflating: /code/heavenly-music-master/images/音乐背景图片.jpg  
  inflating: /code/heavenly-music-master/index.html  
[root@web01 code]#ls
heavenly-music-master
[root@web01 code]#cd heavenly-music-master/
[root@web01 heavenly-music-master]#ls
CSS  Files  images  index.html  JS  LICENSE  README.md
​
重载
[root@web01 code]#/usr/local/nginx/sbin/nginx -s reload

今天对nginx的编译安装和服务部署讲解就告一段落了,下次分享一点深入的nginx知识~~~~

我的nginx安装参考了这位作者,可以去看一看他的博客:麒麟系统—— openKylin 安装 Nginx_麒麟系统安装nginx-CSDN博客


想成为大佬,就要从小白开始,从0开始,一点一点的积累,慢慢成长,明天你就是大佬!!想学习更多麒麟操作系统的知识,关注小屁,让你成为运维老鸟~~~~~ 


原文地址:https://blog.csdn.net/weixin_62408089/article/details/144616700

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!