• nginx学习笔记1


    nginx在官方网站提供了软件下载,官网地址:http://nginx.org/en/download.html,目前Nginx发布3种类型的版本:

    1.Mainline version:开发版本

    2.Stable version:稳定版本

    3.Legacy versions:早期版本

    在Windows系统上通过virtualbox虚拟机安装的centos7作为学习的服务器,使用xshell连接虚拟机。

    一.Nginx安装前相关准备工作

    1.将下载好的nginx压缩包通过xftp上传到虚拟机的目录中。如下图所示:

    2.切换到解压的目录,将压缩包解压

    [shell@shell-learn myusr]$ tar -zxvf /mytools/nginx-1.16.0.tar.gz 

    3.将用户切换到root用户:

    [shell@shell-learn nginx-1.16.0]$ su root

    4.nginx目录结构介绍

    src目录:存放Nginx的源代码

    man目录:存放Nginx的帮助文档

    html目录:存放默认网站文件

    contrib目录:存放其他机构或组织贡献的文档资料

    conf目录:存放Nginx服务器的配置文件

    auto目录:存放大量的脚本文件,和configure脚本程序相关

    configure文件:Nginx自动安装脚本,用于检查环境,生成编译代码需要的makefile文件

    CHANGES、CHANGES.ru、LICENSE、README都是Nginx服务器的相关文档资料

    5.Nginx相关依赖包

    pcre-devel:为Nginx模块(如rewrite)提供正则表达式库

    zlib-devel:为Nginx模块(如gzip)提供数据压缩用的函数库

    openssl-devel:为Nginx模块(如ssl)提供密码算法、证书以及SSL协议等功能

    安装命令:

     yum -y install pcre-devel openssl-devel

    由于openssl-devel依赖于zlib-devel,在通过安装openssl-devel时会自动解决依赖,因此不需要安装zlib-devel

    二.Nginx编译安装

    1.切换到解压目录

    [root@shell-learn myusr]$ cd nginx-1.16.0/

    2.配置Nginx的编译选项,指定安装目录

    [root@shell-learn nginx-1.16.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module

    其他模块暂时用不到,当用到的时候重新编译Nginx,并使用--with-选项添加需要的模块即可。

    编译时候,出现错误:./configure: error: C compiler cc is not found ,需要安装编译插件:

    [root@shell-learn nginx-1.16.0]#yum -y install gcc-c++

    3.通过make命令编译和安装Nginx

    [root@shell-learn nginx-1.16.0]# sudo make && make install

    三.Nginx的启动和停止

    1.启动Nginx

    [root@shell-learn nginx-1.16.0]# cd /usr/local/nginx/sbin
    [root@shell-learn sbin]# ./nginx

    2.查看Nginx运行状态

    [root@shell-learn sbin]# ps aux|grep nginx

    root 6324 0.0 0.1 45952 1128 ? Ss 09:08 0:00 nginx: master process ./nginx
    nobody 6325 0.0 0.1 46412 1904 ? S 09:08 0:00 nginx: worker process
    root 6328 0.0 0.0 112708 984 pts/0 R+ 09:09 0:00 grep --color=auto nginx

    前两行分别是Nginx主进程和工作进程,第三行是grep Nginx命令。主进程以root用户运行,而工作进程以nobody用户运行,进程ID分别是6324 和 6325。

    3.停止Nginx服务

    立即停止服务:

    [root@shell-learn sbin]# ./nginx -s stop

    从容停止服务:

    [root@shell-learn sbin]# ./nginx -s quit

    通过kill或者killall命令杀死进程:

    kill Nginx的主进程的PID

    killall nginx

    4.查看端口号占用

    netstat -tlnp

    四.访问测试

    1.安装iptables防火墙

    在CentOS 7中防火墙由firewalld来管理,我们这里使用iptables管理方式。


    停止firewalld服务:


    systemctl stop firewalld

    systemctl mask firewalld


    安装iptables-services:

    yum install iptables-services


    启动iptables服务
    systemctl start iptables
    设置开机启动:

    systemctl enable iptables

    2.配置iptables防火墙,实现开放80端口的访问

    [root@shell-learn ·]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

    参数说明:

    -I INPUT:表示在INPUT(外部访问规则)中插入一条规则

    -p tcp:指定数据包匹配的协议(tcp、udp、icmp等),这里指定tcp协议

    --dport 80:用于指定数据包匹配的目标端口号,这里指定80端口

    -j ACCEPT:指定对数据包的处理操作(ACCEPT、DROP、REJECT、REDIRECT等),这里指定ACCEPT操作

    3.查看防火墙状态

    [root@shell-learn ·]# service iptables status

    4.需要将临时生效的配置保存

    [root@shell-learn ·]# service iptables save

    5.重启iptables 防火墙

    [root@shell-learn ·]# service iptables restart

    6.访问Nginx主页

    在windows系统中通过浏览器进行访问:http://nginx服务器的ip地址

    五.添加到环境变量

    1.查看环境变量

    [root@shell-learn ·]# echo $PATH

    /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/shell/.local/bin:/home/shell/bin

    其中/bin和/sbin放置常用程序;sbin表示需要管理员权限;/usr/bin和/usr/sbin放置一些工具软件的可执行程序;/usr/local/bin和/usr/local/sbin放置用户自行安装的可执行程序。

    2.通过软链接将nginx程序链接到/usr/local/sbin目录中

    [root@shell-learn ·]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx

    创建软链接后,就可以在任意目录下直接使用nginx命令来控制nginx服务。

    六.添加到系统服务

    在centos系统中,service命令实际上是调用了/etc/init.d目录下的shell脚本,因此将nginx添加到系统服务中时,需要在/etc/init.d目录中编写一个文件名称为nginx的shell脚本。

    #! /bin/bash
    #Startup script for the nginx Web Server
    DAEMON=/usr/local/nginx/sbin/nginx
    case "$1" in
    start)
    echo "Starting Nginx daemon..."
    $DAEMON && echo "SUCESS"
    ;;
    stop)
    echo "Stopping Nginx daemon..."
    $DAEMON -s quit && echo "SUCESS"
    ;;
    reload)
    echo "Reloading Nginx daemon..."
    $DAEMON -s reload && echo "SUCESS"
    ;;
    restart)
    echo "Restart Nginx daemon..."
    $DAEMON -s quit
    $DAEMON && echo "SUCESS"
    ;;
    *)
    echo "Usage: service nginx {start|restart|reload|stop|test|show}"
    ;;
    esac

    保存脚本,并为nginx脚本添加可执行权限

    [root@shell-learn ·]# chmod +x /etc/init.d/nginx

    七.设置开机自启动

    若nginx服务实现开机启动,就需要在/etc/init.d/nginx脚本文件中添加对chkconfig的支持,打开脚本文件,在第二行的位置新增如下内容:

    #chkconfig: 35 85 15

    其中35表示nginx服务允许的启动级别是3和5,若暂时不开启任何启动级别,可以使用“-”代替。85和15用于设置nginx服务的启动(S)顺序和关闭(K)顺序。数值小的先执行,数值大的后执行。该值是用户自定义取值范围在0-99之间。

    使用chkconfig命令执行添加nginx服务自启动操作,具体命令如下:

    [root@shell-learn ·]# chkconfig --add nginx

    通过chkconfig --list查看添加后的效果。

    重新启动Linux系统,测试nginx服务是否能够开机自启动。

  • 相关阅读:
    遗传算法的几种改进
    python3中让程序暂停运行的语句
    python内存增长问题
    关于编程思路
    关于程序中delay函数带来的繁琐问题
    python一切皆对象的理解
    Inspector did not run successfully.
    ProtocolError: <ProtocolError for 127.0.0.1/RPC2: 401 Unauthor.
    决策树的升入浅出-视频
    -bash: /opt/cslc/jdk1.8.0_144/bin/jps: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
  • 原文地址:https://www.cnblogs.com/web424/p/11048420.html
Copyright © 2020-2023  润新知