php网站开发入门,竞争对手网站,上海高品质网站建设,公司品牌策划设计文章目录 Nginx概念安装下载上传安装包执行准备条件指定安装位置编译和安装启动服务创建启动脚本 linux文件目录nginx运行原理nginx配置域名概念和原理域名配置 Nginx
概念
Nginx 是一个高性能的HTTP和反向代理web服务器#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是… 文章目录 Nginx概念安装下载上传安装包执行准备条件指定安装位置编译和安装启动服务创建启动脚本 linux文件目录nginx运行原理nginx配置域名概念和原理域名配置 Nginx
概念
Nginx 是一个高性能的HTTP和反向代理web服务器同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点俄文Рамблер开发的公开版本1.19.6发布于2020年12月15日。 其将源代码以类BSD许可证的形式发布因它的稳定性、丰富的功能集、简单的配置文件和低系统资源的消耗而闻名。2022年01月25日nginx 1.21.6发布。 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件IMAP/POP3代理服务器在BSD-like 协议下发行。其特点是占有内存少并发能力强事实上nginx的并发能力在同类型的网页服务器中表现较好。
安装
下载上传安装包
可以直接通过此链接直接下载 http://nginx.org/download/nginx-1.11.1.tar.gz
或者通过命令进行直接下载到linux上面
wget http://nginx.org/download/nginx-1.11.1.tar.gz将nginx-1.21.6.tar.gz软件上传到 /usr/local文件夹下面并解压 tar -zxvf nginx-1.21.6.tar.gz
执行准备条件
yum install -y gcc 安装C语言库
yum install -y pcre pcre-devel 安装perl库
yum install -y zlib zlib-devel 安装zlib库 指定安装位置
进入nginx文件以后执行 ./configure --prefix/usr/local/nginx
编译和安装
make make install
启动服务
进入进入安装好的目录 /usr/local/nginx/sbin cd /usr/local/nginx/sbin/
./nginx 启动
./nginx -s stop 快速停止
./nginx -s quit 优雅关闭在退出前完成已经接受的连接请求
./nginx -s reload 重新加载配置 注意如果启动了以后不能生效记得关闭防火墙。
systemctl stop firewalld
systemctl disable firewalld
一般在公司里面是不会直接将防火墙关闭的这样会导致黑客端口扫描找到相关的漏洞
firewall-cmd --zonepublic --add-port80/tcp --permanent
创建启动脚本
vi /usr/lib/systemd/system/nginx.service
[Unit]
Descriptionnginx - web server
Afternetwork.target remote-fs.target nss-lookup.target [Service]
Typeforking
PIDFile/usr/local/nginx/logs/nginx.pid
ExecStartPre/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload/usr/local/nginx/sbin/nginx -s reload
ExecStop/usr/local/nginx/sbin/nginx -s stop
ExecQuit/usr/local/nginx/sbin/nginx -s quit
PrivateTmptrue [Install]
WantedBymulti-user.target重新加载系统服务 systemctl daemon-reload
启动服务 systemctl start nginx.service systemctl restart nginx.service
开机启动 systemctl enable nginx.service
linux文件目录 sbin: 存放二进制启动文件conf存放配置文件logs存放日志文件html存放静态页面uwsgi_temp:存放的是临时文件
修改html中的index.html文件重新启动nginx
注意/usr/lib/systemd/system/nginx.service 文件复制以后要看看格式是否正确如果不对则可能导致重启失败。
nginx运行原理 1 系统启动以后就会有一个nginx的主进程
2 主进程读取nginx.conf配置文件确认文件的位置
3 主进程创建多个work进程
4 当用户请求进来以后work进程就可以读取解析用户的请求并返回信息。
nginx配置
从nginx服务器上将nginx.conf配置文件下载到本地 将注释后的代码先删除得到一个最简化的配置文件如下
worker_processes 1;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;location / {root html;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}
}worker_processes 1; 配置worker进程的数量这个数字跟cpu的核心数相关nginx优化的一个参数 worker_connections 1024; 一个worker进程的最大连接数。 include 引入其他的文件 mime.types 这个文件的作用是当用户请求资源文件的时候我们将不同文件根据后缀告诉用户解析方式其实当用户浏览器拿到服务器给的资源的时候即使给了后缀名浏览器也是不能完全解析的需要在请求头的地方告诉浏览器解析方式。比如png格式的文件需要image/png的方式解析。 keepalive_timeout 65; 保持长连接的时长。 server 配置资源文件的相当于一个完整的服务器站点 vhost可以通过端口号来区分。 listen 80; 站点监听的端口 server_name 域名; 站点的域名是一个网路能解析的域名 location 用来匹配uri的 域名端口/uri root html; 当用户的请求和location的uri匹配的时候要进入的目录资源 index index.html index.htm;当用户的请求和location的uri匹配的时候默认的请求主页
错误提示 error_page 500 502 503 504 /50x.html; location /50x.html { root html; } 当服务器发生内部错误的时候比如500,502…就会将请求转发到 /50x.html从html目录中找到 50x.html文件 域名
概念和原理
域名(Domain Name)是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称用于在数据传输时标识计算机的电子方位(有时也指地理位置地理上的域名指代有行政自主权的一个地方区域)。域名使一个IP地址有面具 。一个域名的目的是成为便于记忆和沟通的一组服务器的地址(网站电子邮件FTP等)世界上第一个注册的域名是在1985年1月注册的。
DNS(Domain Name System域名系统)因特网上作为域名和IP地址相互映射的一个分布式数据库能够使用户更方便的访问互联网而不用去记住能够被机器直接读取的IP数串。通过主机名最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上使用端口号53。在RFC文档中RFC 2181对DNS有规范说明RFC 2136对DNS的动态更新进行说明RFC 2308对DNS查询的反向缓存进行说明。
通俗的说因为我们的IP地址都一连串的数字不好记忆所以我们用一个很好记的一串单词来代替ip地址。然后通过DNS服务器来记录我们域名和IP的对应关系以后我们访问IP的时候就可以通过域名的方式间接的去访问我们的IP地址了。
域名配置
以下以腾讯云为案例 https://console.dnspod.cn/dns/hanmh2020.work/record 配置域名和ip的对应关系然后启动解析 在linux home目录下创建www文件夹 在www文件夹下面创建 www文件夹保存主站点信息vod文件夹保存视频站点 在www和vod文件夹下面分别创建index.html并写入信息 修改配置文件
worker_processes 1;events {worker_connections 1024;
}http {include mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name www.xxxxxx.work;location / {root /home/www/www;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}server {listen 88;server_name vod.xxxxxx.work;location /{root /home/www/vod;index index.html index.htm;}error_page 500 502 503 504 /50x.html;location /50x.html {root html;}}
}
注意这里的域名修改成自己的 访问 http://www.hanmh2020.work:88/ 和 http://vod.hanmh2020.work:88/ www.hanmanhong2022.cloud vod.hanmanhong2022.cloud:88
注意可以使用 .,$d 删除整个配置文件里的内容。
说明这里其实配置了两个虚拟主机两个主机可以各自管理自己的文件互不影响。
下期续写 反向代理以及动静分离和反向代理以及动静分离以及Nginx跨域问题