赞
踩
web(World Wide Web)即全球广域网,也称为万维网,它是一种基于超文本和HTTP的、全球性的、动态交互的、跨平台的分布式图形信息系统。
是建立在Internet上的一种网络服务,为浏览者在Internet上查找和浏览信息提供了图形化的、易于访问的直观界面,其中的文档及超级链接将Internet上的信息节点组织成一个互为关联的网状结构。
nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev.
nginx [engine x]是一个HTTP和反向代理服务器,邮件代理服务器和通用TCP/UDP代理服务器,最初由Igor Sysoev编写。
nginx是一个做网站服务器的软件,是静态的网站
nginx可以作反向代理服务 --》4层 7层
正向代理:代理客户端
反向代理:代理服务器,隐藏后端真实的服务器
HTTP:就是一个传输网页的协议,在浏览器和web服务器(nginx,tomcat等)软件之家间通信
到nginx或者centos的官方去下载nginx的软件包安装
这种方式安装优点:快建,方便,高效
nginx是c语言编写的,将源码编译成二进制程序,然后安装,需要自己解决软件之间的依赖关系,会需要指定很多的配置,难度大,可以定制开启需要的功能--》可以定制功能和指定安装路径
编译安装经典的三部曲:
1,编译前的配置:定制的方案
./configure ...... --》生成一个叫makefile的文件
2,编译:将源代码编译成二进制程序
3,编译安装:将已经编译好的二进制程序安装(cp)到指定的路径
- #查看Ubuntu的版本
- root@nginx:~# cat /etc/issue
- Ubuntu 20.04 LTS \n \l
-
- # 查看内核版本
- root@nginx:~# uname -r
- 5.4.0-121-generic
- # 1.curl是Linux里的字符界面的浏览器
- root@sc-docker:~# curl -O http://nginx.org/download/nginx-1.23.1.tar.gz
- % Total % Received % Xferd Average Speed Time Time Time Current
- Dload Upload Total Spent Left Speed
- 100 1078k 100 1078k 0 0 275k 0 0:00:03 0:00:03 --:--:-- 275k
-
- # 2.wget 也是一个下载软件,也支持http协议,可以去网站下载软件
- root@sc-docker:~# apt install wget -y
-
- root@sc-docker:~# wget http://nginx.org/download/nginx-1.23.1.tar.gz
- sudo ufw stop
-
- # 设置防火墙开启不启动
- sudo ufw disable
- # 第一步:新建用户和组
- id sc || useradd sc -s /sbin/nologin
-
- # 第二步:新建/sc9,下载nginx软件(curl是Linux里字符界面的浏览器)
- mkdir /sc9 -p
- cd /sc9
- # 一般设置这样的帐号是给启动服务的账号所用的,这只是让服务启动起来,但是不能登录系统。
-
- curl -O http://nginx.org/download/nginx-1.23.1.tar.gz
-
- #第三步:解压,进入解压后的文件夹
- tar xf nginx-1.23.1.tar.gz
- cd nginx-1.23.1
-
- # 第四步:编译前的配置
- ./configure --prefix=/usr/local/sc99 --user=sc --group=sc --with-http_ssl_module --with-threads --with-http_v2_module --with-http_stub_status_module --with-stream --with-http_geoip_module --with-http_gunzip_module
-
- # 根据需要开启某些功能或关闭某些功能
- # --prefix=PATH set installation prfix 指定安装路径
- # --without-http disable HTTP server 禁用http
-
- # --with-mail enable POP3/IMAP4/SMTP proxy module 开启
- # --with-http_ssl_module enable ngx_http_ssl_module 开启
-
- #第五步:解决软件的依赖关系,需要安装的软件包
- apt install libgd-dev libgeoip-dev libpcre3 libpcre3-dev libssl-dev gcc make -y
-
- # 第六步:编译安装
- make && make install
-
- #第七步:修改PATH变量
- echo "PATH=$PATH:/usr/local/sc99/sbin" >> /root/.bashrc
- #执行修改了环境变量的脚本
- source /root/.bashrc
-
- #第八步:编写systemctl unit
- root@nginx:/usr/lib/systemd/system# pwd
- /usr/lib/systemd/system
-
- root@nginx:/usr/lib/systemd/system# vim nginx.service
- [Unit]
- Description=nginx - high performance web server
- Documentation=http://nginx.org/en/docs/
- After=network-online.target remote-fs.target nss-lookup.target
- Wants=network-online.target
-
- [Service]
- Type=forking
- PIDFile=/usr/local/sc99/logs/nginx.pid
- ExecStart=/usr/local/sc99/sbin/nginx -c /usr/local/sc99/conf/nginx.conf
- ExecReload=/bin/kill -s HUP $MAINPID
- ExecStop=/bin/kill -s TERM $MAINPID
-
- [Install]
- WantedBy=multi-user.target
-
- #第九步:重新加载nginx的配置
- root@nginx:/usr/lib/systemd/system#systemctl daemon-reload
-
- root@nginx:/usr/lib/systemd/system#systemctl start nginx
- #!/bin/bash
-
- #关闭和设置下次开机不启动防火墙
- sudo ufw stop
- sudo ufw disable
-
- #关闭selinux
- apt-get remove selinux
- sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config
-
- #解决软件的依赖关系,需要安装的软件包
- apt install epel-release -y
- apt -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc-c++ autoconf automake make psmisc net-tools lsof vim geoip geoip-devel wget
-
- #新建lilin用户和组
- id lilin || useradd lilin -s /sbin/nologin
-
- #下载nginx软件
- mkdir /lilin99 -p
- cd /lilin99
- wget https://nginx.org/download/nginx-1.21.4.tar.gz
-
- #解压软件
- tar xf nginx-1.21.4.tar.gz
- #进入解压后的文件夹
- cd nginx-1.21.4
-
- #编译前的配置
- ./configure --prefix=/usr/local/sclilin99 --user=lilin --group=lilin --with-http_ssl_module --with-threads --with-http_v2_module --with-http_stub_status_module --with-stream --with-http_geoip_module --with-http_gunzip_module
-
- #如果上面的编译前的配置失败,直接退出脚本
- if
- (( $? != 0 ));then
- exit
- fi
-
- #编译,启动2个进程去编译,这样速度快
- make -j 2
-
- #编译安装
- make install
-
- #修改PATH变量
- echo "PATH=$PATH:/usr/local/sclilin99/sbin" >> /root/.bashrc
-
- #执行修改了环境变量的脚本
- source /root/.bashrc
-
- #编写systemctl unit
- cat >>/usr/lib/systemd/system/nginx.service <<EOF
- [Unit]
- Description=nginx - high performance web server
- Documentation=http://nginx.org/en/docs/
- After=network-online.target remote-fs.target nss-lookup.target
- Wants=network-online.target
- [Service]
- Type=forking
- PIDFile=/usr/local/sclilin99/logs/nginx.pid
- ExecStart=/usr/local/sclilin99/sbin/nginx -c /usr/local/sclilin99/conf/nginx.conf
- ExecReload=/bin/kill -s HUP $MAINPID
- ExecStop=/bin/kill -s TERM $MAINPID
- [Install]
- WantedBy=multi-user.target
- EOF
-
- # 重新加载nginx的配置
- systemctl daemon-reload
-
- systemctl start nginx
stop firewall和设置下次开机不启动firewalld
- service firewalld stop
- systemctl disable firewalld
临时停止selinux和永久停止selinux
- setenforce 0
- sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/sysconfig/selinux
第一步:新建lil用户和组
id lil || useradd lil -s /sbin/nologin
一般设置这样的帐号是给启动服务的账号所用的,这只是让服务启动起来,但是不能登录系统。
第二步:新建/lil99,下载nginx软件
- mkdir /lil99 -p
- cd /lil99
- wget https://nginx.org/download/nginx-1.23.1.tar.gz
第三步:解压软件,进入解压后的文件夹
- tar xf nginx-1.23.1.tar.gz
- cd nginx-1.23.1
第四步:编译前的配置
./configure --prefix=/usr/local/sclil99 --user=lil --group=lil --with-http_ssl_module --with-threads --with-http_v2_module --with-http_stub_status_module --with-stream --with-http_gunzip_module
第五步:解决软件的依赖关系,需要安装的软件包
yum install zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc-c++ autoconf automake make psmisc net-tools lsof -y
第六步:编译安装
make && make install
第七步:修改PATH变量
1.临时修改
PATH=$PATH:/usr/local/sclil99/sbin
2.永久修改
- vim /root/.bashrc
-
- PATH=$PATH:/usr/local/sclil99/sbin
需要重启系统:reboot
第八步:编写systemctl unit
- [root@nginx system]# pwd
- /usr/lib/systemd/system
-
- [root@nginx system]# vim nginx.service
- [Unit]
- Description=nginx - high performance web server
- Documentation=http://nginx.org/en/docs/
- After=network-online.target remote-fs.target nss-lookup.target
- Wants=network-online.target
-
- [Service]
- Type=forking
- PIDFile=/usr/local/sclil99/logs/nginx.pid
- ExecStart=/usr/local/sclil99/sbin/nginx -c /usr/local/sclil99/conf/nginx.conf
- ExecReload=/bin/kill -s HUP $MAINPID
- ExecStop=/bin/kill -s TERM $MAINPID
-
- [Install]
- WantedBy=multi-user.target
第九步:重新加载nginx的配置
- [root@nginx logs]# systemctl daemon-reload
-
- [root@nginx system]# systemctl start nginx
通过systemctl 来启动,重启,关闭nginx
- [root@jack nginx-1.23.1]# cd /usr/local/sclil99
- [root@jack sclil99]# ls
- conf html logs sbin
conf 存放nginx的配置文件 config
- [root@nginx logs]# cat nginx.pid
- 33222
-
- [root@nginx conf]# ls
- fastcgi.conf koi-utf mime.types scgi_params win-utf
- fastcgi_params koi-win nginx.conf uwsgi_params
nginx.conf 是nginx的主配置文件
nginx.conf的作用:其实就是给nginx进程传递参数的,告诉nginx如何按照人的要求去运行
html 存放网站的网页的目录
- [root@jack sclil99]# ls html
- 50x.html index.html
- # index.html 首页:进入某个网站看到的第一个页面
logs 存放日志
sbin 存放nginx的启动程序的
- [root@nginx logs]# ls
- access.log error.log nginx.pid
access.log 正常的访问日志
error.log 访问出错的日志
nginx.pid 里面存放master进程的进程号
每次更改了配置文件,需要重新启动nginx
- nginx -s reload
-
- systemctl restart nginx
看端口:netstat -anplut,ss -anplut,lsof -i:80
看进程:ps aux|grep nginx
直接访问
看日志:tail -f access.log
- [root@nginx ~]# kill -3 20410
-
- [root@nginx ~]# kill -term 20410
-
- [root@nginx ~]# kill -9 20410
-
- [root@nginx ~]# kill -l
- 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
- 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
- 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
- 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
- 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
- 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
- 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
- 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
- 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
- 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
- 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
- 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
- 63) SIGRTMAX-1 64) SIGRTMAX
1) SIGHUP
nohup 可以用来屏蔽hup信号
本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。
9) SIGKILL
用来立即结束程序的运行. 本信号不能被阻塞、处理和忽略
告诉Linux内核去强制杀死进程
15) SIGTERM
程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出,shell命令kill缺省产生这个信号。如果进程终止不了,我们才会尝试SIGKILL。
3) SIGQUIT
和SIGINT类似, 但由QUIT字符(通常是Ctrl-/)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。
2) SIGINT
程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。
trap 屏蔽各种信号,唯独9不能屏蔽
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。