第九章 nginx部署
一、云服务器准备
1.品牌:阿里云、百度云等
2.服务器系统:CentOS7.0 以上 64位,拿到公网IP
3.开通所需要的端口:比如80,8080等
一、CentOS设置
基本操作
启动 Systemctl start firewalld.service 停止 Systemctl stop firewalld.service 重启 Systemctl restart firewalld.service ||firewall-cmd reload 开机启动 Systemctl enable firewalld 开机禁用 Systemctl disable firewalld 查看防火墙状态 Firewall-cmd --state
端口操作
查看已开放端口 Firewall-cmd --list-ports 开启端口 Firewall-cmd --zone=public --add-port=80/tcp --permanent 关闭端口 Firewall-cmd --zone=public --remove-port=80/tcp --permanent 查某端口状态 Firewall-cmd --query-port=80/tcp 重启防火墙 Firwall-cmd --reload
三、Nginx 安装
1.Window + r 打开终端 cmd 回车
2.连接服务器:ssh root@ip 回车后输入密码
3.nginx安装
安装 yum install nginx 卸载 yum remove nginx 查看是否安装成功 nginx -v 查看安装文件位置 nginx -t 指定配置文件 nginx -t “目录”
4.下载nginx配置文件
scp root@ip:”配置文件目录” “本地路径” 事例: scp root@39.101.184.90:/ect/nginx/nginx.conf C:/xxxx
5.上传nginx配置文件
scp “本地路径” root@ip:”配置文件目录” 事例: scp C:/xxxx root@39.101.184.90:/ect/nginx/nginx.conf
6.上传dist包文件夹
scp -r ./dist/* root@ip:/目录地址
7.开启服务器文件夹权限
Chmod -R 777 xxxx
8.nginx其他命令
查找路径 whereis nginx 启动 Service nginx start 查看版本 nginx -v 停止 nginx -s stop 退出 nginx -s quit 重启加载配置 nginx -s reload
四、Iptables配置
CentOS 7 中默认是firewall防火墙,如果使用iptables需要先关闭firewall防火墙
安装iptables
检查是否安装 service iptables status 安装iptables yum install -y iptables 安装iptables-services yum install -y iptables-services 注册iptables服务 systemctl enanble iptables.service 开启服务 systemctl start iptable,service 查看状态 systemctl status iptable,service
Iptables 配置
#配置filter表 ###允许 22 80 443 端口进入 iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCPET iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCPET iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 443 -j ACCPET
VIM 配置
i 键:编辑内容 esc :退出当前操作 Shift + q:退出 wq :保存并退出
五、Nginx基础配置
nginx 文件结构
1、全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。 2、events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。 3、http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。 4、server块:配置虚拟主机的相关参数,一个http中可以有多个server。 5、location块:配置请求的路由,以及各种页面的处理情况。
上面是nginx的基本配置,需要注意的有以下几点:
1、几个常见配置项:
- 1.$remote_addr 与 $http_x_forwarded_for 用以记录客户端的ip地址;
- 2.$remote_user :用来记录客户端用户名称;
- 3.$time_local : 用来记录访问时间与时区;
- 4.$request : 用来记录请求的url与http协议;
- 5.$status : 用来记录请求状态;成功是200;
- 6.$body_bytes_s ent :记录发送给客户端文件主体内容大小;
- 7.$http_referer :用来记录从那个页面链接访问过来的;
- 8.$http_user_agent :记录客户端浏览器的相关信息;
2、惊群现象:一个网路连接到来,多个睡眠的进程被同时叫醒,但只有一个进程能获得链接,这样会影响系统性能。
3、每个指令必须有分号结束。