centos7 nginx@1.16.1

用yum进行安装必要程序

如果你Linux用的很熟练的话,我想这些程序你一定已经用yum安装过了,但是如果你还不熟悉Linux,你可以直接用yum进行安装就可以了。

yum -y install gcc gcc-c++ autoconf pcre-devel make automake
yum -y install wget httpd-tools vim

基于Yum的方式安装Nginx

我们可以先来查看一下yum是否已经存在,命令如下:

yum list | grep nginx
查看源支持版本

如果没有想要的版本需要修改源

vim /etc/yum.repos.d/nginx.repo
 
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1


yum install nginx

查看nginx 版本
nginx -v

查看文件安装位置
rpm -ql nginx

nginx 默认端口为80 我们想要在 访问需要允许centos 防火墙放开80 端口
 

CentOS 7 快速开放端口:

CentOS升级到7之后,发现无法使用iptables控制Linuxs的端口,baidu之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口:

开启端口


[root@centos7 ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent

查询端口号80 是否开启:

[root@centos7 ~]# firewall-cmd --query-port=80/tcp

重启防火墙:

[root@centos7 ~]# firewall-cmd --reload

查询有哪些端口是开启的:

[root@centos7 ~]# firewall-cmd --list-port

命令含义:


--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

 这样就可以在浏览器中访问远程ip 下的80 端口。

nginx 启动命令
1.
nginx
2.
systemctl start nginx.service
nginx 停止命令
立即停止服务  nginx  -s stop

从容停止服务  nginx -s quit
systemctl 停止 systemctl stop nginx.service

重启Nginx服务

有时候我们需要重启Nginx服务 systemctl restart nginx.service

重新载入配置文件  nginx -s reload

 
查询服务启动状态
ps aux | grep nginx

查看端口号

在默认情况下,Nginx启动后会监听80端口,从而提供HTTP访问,如果80端口已经被占用则会启动失败。我么可以使用netstat -tlnp命令查看端口号的占用情况 

nginx 判断是pc 还是手机访问 指向不同访问目录 

location / {
root /usr/share/nginx/pc;
if ($http_user_agent ~* 'Android|webOS|iPhone|iPod|BlackBerry'){
root /usr/share/nginx/mobile;
}
index index.html;
}

nginx部分内置参数
$args                      请求中的参数;
$binary_remote_addr        远程地址的二进制表示
$body_bytes_sent           已发送的消息体字节数
$content_length            HTTP请求信息里的"Content-Length"
$content_type              请求信息里的"Content-Type"
$document_root             针对当前请求的根路径设置值
$document_uri              与$uri相同
$host                      请求信息中的"Host",如果请求中没有Host行,则等于设置的服务器名;    
$http_cookie               cookie 信息 
$http_referer              来源地址
$http_user_agent           客户端代理信息
$http_via                  最后一个访问服务器的Ip地址
$http_x_forwarded_for      相当于网络访问路径。    
$limit_rate                对连接速率的限制          
$remote_addr               客户端地址
$remote_port               客户端端口号
$remote_user               客户端用户名,认证用
$request                   用户请求信息
$request_body              用户请求主体
$request_body_file         发往后端的本地文件名称      
$request_filename          当前请求的文件路径名
$request_method            请求的方法,比如"GET"、"POST"等
$request_uri               请求的URI,带参数   
$server_addr               服务器地址,如果没有用listen指明服务器地址,使用这个变量将发起一次系统调用以取得地址(造成资源浪费)
$server_name               请求到达的服务器名
$server_port               请求到达的服务器端口号
$server_protocol           请求的协议版本,"HTTP/1.0"或"HTTP/1.1"
$uri                       请求的URI,可能和最初的值有不同,比如经过重定向之类的

gzip的配置项

Nginx提供了专门的gzip模块,并且模块中的指令非常丰富。

  • gzip : 该指令用于开启或 关闭gzip模块。
  • gzip_buffers : 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。
  • gzip_comp_level : gzip压缩比,压缩级别是1-9,1的压缩级别最低,9的压缩级别最高。压缩级别越高压缩率越大,压缩时间越长。
  • gzip_disable : 可以通过该指令对一些特定的User-Agent不使用压缩功能。
  • gzip_min_length:设置允许压缩的页面最小字节数,页面字节数从相应消息头的Content-length中进行获取。
  • gzip_http_version:识别HTTP协议版本,其值可以是1.1.或1.0.
  • gzip_proxied : 用于设置启用或禁用从代理服务器上收到相应内容gzip压缩。
  • gzip_vary : 用于在响应消息头中添加Vary:Accept-Encoding,使代理服务器根据请求头中的Accept-Encoding识别是否启用gzip压缩。

gzip最简单的配置

http {
   .....
    gzip on;
    gzip_types text/plain application/javascript text/css;
   .....
}

gzip on是启用gizp模块,下面的一行是用于在客户端访问网页时,对文本、JavaScript 和CSS文件进行压缩输出。

配置好后,我们就可以重启Nginx服务

 
原文地址:https://www.cnblogs.com/caoruichun/p/11483153.html