搭建 Nginx 服务
搭建 Nginx 服务
今日内容
- 上一篇测试
- c出现问题
- web 服务
- 部署 Nginx
内容详细
上一篇测试
NFS共享文件步骤 - 服务端 [root@backup ~]# yum install nfs-utils rpcbind -y [root@backup ~]# mkdir /backup [root@backup ~]# vim /etc/exports /backup 172.16.1.0/20(rw,sync,all_squash,anonuid=666,anongid=666) [root@backup ~]# groupadd www -g 666 [root@backup ~]# useradd www -u 666 -g 666 -M -r -s /sbin/nologin [root@backup ~]# chown -R www.www /backup [root@backup ~]# systemctl start nfs-server rpcbind - 客户端 [root@backup ~]# yum install nfs-utils -y [root@backup ~]# mount -t nfs 172.16.1.31:/backup /opt 2、安装WEb服务的步骤 [root@backup ~]# yum install httpd php php-devel -y [root@backup ~]# cd /var/www/html
出现的问题
1、nfsnobody 2、NFS挂载无法持久化 1、通过开机自启动脚本挂载 [root@web01 html]# vim /etc/rc.local /usr/bin/mount -t nfs 172.16.1.31:/web/upload /var/www/html/upload [root@web01 html]# chmod +x /etc/rc.d/rc.local 2、通过/etc/fstab配置文件 [root@web02 ~]# vim /etc/fstab # 挂载点 挂载的目录 类型 设置默认权限 0 不备份 1 备份 0 不检查 1 检查 172.16.1.31:/web/upload /var/www/html/upload nfs defaults 0 0 [root@web02 ~]# mount -a
web 服务
1、web 服务简介
web就是B/S架构 Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件,让全世界浏览;可以放置数据文件,让全世界下载。 WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 Web服务器是可以向发出请求的浏览器提供文档的程序: B/S(Brower/Server,浏览器/服务器)模式又称B/S结构,是Web兴起后的一种网络结构模式。Web浏览器是客户端最主要的应用软件。 B/S架构采取浏览器请求,服务器响应的工作模式用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息;而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中;从Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的Internet。
2、网络模型
网络模型 select poll epoll
3、web 服务器软件
1、apache 2、Nginx 官网:https://nginx.org/ 软件:https://nginx.org/download/
部署 Nginx
1、安装
1、yum 安装 登录 Nginx 官网 nginx.org 选择 download --> 稳定版本下载 [root@web01 ~]# vim /etc/yum.repos.d/nginx.repo [root@web01 ~]# yum install nginx -y [root@web01 ~]# systemctl stop httpd [root@web01 ~]# systemctl start nginx
2、二进制安装
3、编译安装
[root@web01 ~]# wget https://nginx.org/download/nginx-1.20.2.tar.gz [root@web01 ~]# tar -xf nginx-1.20.2.tar.gz [root@web01 nginx-1.20.2]# ./configure [root@web01 nginx-1.20.2]# make [root@web01 nginx-1.20.2]# make install
2、平滑增加 Nginx 模块
增加模块必须重新编译。 [root@web01 ~]# tar -xf nginx-1.20.2.tar.gz [root@web01 ~]# cd nginx-1.20.2 [root@web01 nginx-1.20.2]#./configure --with-http_ssl_module [root@web01 nginx-1.20.2]#make [root@web01 nginx-1.20.2]#make install
3、Nginx 的命令
1、-v : 打印版本号 [root@web01 ~]# nginx -v nginx version: nginx/1.20.2 2、-V : 打印版本号和配置项 [root@web01 ~]# nginx -V nginx version: nginx/1.20.2 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/etc/nginx 3、-t : 检查配置文件 [root@web01 ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 4、-T : 测试配置文件并启动 5、-q :打印错误日志 6、-s : 操作进程 stop :停止 quit :退出 reopen :重启 reload :重载 7、-p : 指定nginx的工作目录 8、-e : 指定错误日志路径 9、-c : 指定配置文件的路径 10、-g : 设置一个全局的Nginx配置项 [root@web01 ~]# nginx -g 'daemon off;'
4、Nginx 配置文件
存放目录 /etc/nginx/nginx.conf 配置分为 全局配置 和 模块配置 1、全局配置 1、user : 指定 Nginx 启动用户 2、worker_processes : 定义 Nginx 的 worker 进程数 auto == CPU数量 3、error_log : 错误日志路径 4、pid : pid 的存放文件路径 user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; 2、模块配置 # events : 模块配置 1、events : 模块配置 1.1、worker_connections :每一个worker进程最多同时接入多少个请求 2.2、use : 指定Nginx的网络模型(select、poll、epoll) 2、http : web服务的模块 2.1、include : 加载外部的配置项(可以降低当前配置文件的复杂度) 2.2、default_type : 如果找不到文件的类型,则按照指定默认类型处理 2.3、log_format : 定义日志格式 log_format json '{"@timestamp":"$time_iso8601",' '"host":"$server_addr",' '"service":"nginxTest",' '"trace":"$upstream_http_ctx_transaction_id",' '"log":"log",' '"clientip":"$remote_addr",' '"remote_user":"$remote_user",' '"request":"$request",' '"http_user_agent":"$http_user_agent",' '"size":$body_bytes_sent,' '"responsetime":$request_time,' '"upstreamtime":"$upstream_response_time",' '"upstreamhost":"$upstream_addr",' '"http_host":"$host",' '"url":"$uri",' '"domain":"$host",' '"xff":"$http_x_forwarded_for",' '"referer":"$http_referer",' '"status":"$status"}'; access_log /var/log/nginx/access.log json ; 2.4、sendfile : 高效读取文件 2.5、keepalive_timeout : 长连接保持连接的 HTTP 1.0 短链接 HTTP 1.1 长连接 2.6、server : 网址模块 2.6.1、listen : 监听的端口 2.6.2、server_name : 定义域名 2.6.3、location : 访问路径( '/' 表示访问任何地址都会到这里) 6.6.3.1、root : 指定网址路径 6.6.3.2、index : 指定网址的索引文件 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; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; } # server 模块 目录 : /etc/nginx/conf.d/default.conf 作用 : 指定输入相应域名时 'server_name localhost;' 会进入对应的(访问路径)网页目录 和 首页 'root /usr/share/nginx/html; index index.html index.htm;' server { listen 80; server_name localhost; #access_log /var/log/nginx/host.access.log main; location / { root /usr/share/nginx/html; index index.html index.htm; }
5、搭建游戏网站
超级玛丽 1、创建访问目录 mkdir /opt/super_Maro [root@web01 opt]# mkdir super_Maro 2、上传游戏原代码 xftp 上传 或 lrzsz 拖拽 3、编辑网站的配置文件( *.conf ) 网站的配置文件创建在 /etc/nginx/conf.d/ 目录下 配置文件命名 : *.conf [root@web01 conf.d]# vim /etc/nginx/conf.d/game.conf server { listen 80; server_name game.maro.com; location / { root /opt/super_Maro; index index.html; } } 3、测试配置文件是否正常 [root@web01 conf.d]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 4、重启Nginx [root@web01 conf.d]# systemctl restart nginx 5、域名解析 C:\Windows\System32\drivers\etc\hosts 172.16.1.7 game.maro.com
注意
如果修改了 域名解析文件 hosts 还是用不了 该域名访问相应网址
应该时 Notepad++ 没有权限保存修改结果,给予权限多保存几次就可以了

附录(nginx 配置文件)
/etc/nginx/nginx.conf [root@web01 nginx]# cat nginx.conf user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } 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; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; }
6 
浙公网安备 33010602011771号