博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Nginx 学习笔记
阅读量:6216 次
发布时间:2019-06-21

本文共 3174 字,大约阅读时间需要 10 分钟。

nginx 服务器配置

前置工作

安装必要程序

yum -y install gcc gcc-c++ autoconf pcre-devel make automakeyum -y install wget httpd-tools vim复制代码

配置 yum 源

vim /etc/yum.repos.d/nginx.repo# 将以下内容添加进去[nginx]name=nginx repobaseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/  #OS和OSRELEASE 根据自己的系统和版本号填写 如 /centos/7gpgcheck=0enabled=1# 开始安装yum install nginx# 检查是否安装成功nginx -v复制代码

查看 nginx 安装目录

rpm -ql nginx

查看 nginx 的总配置文件

vim /etc/nginx/nginx.conf

nginx 服务的启动与停止

  • 启动方式
    • nginx 直接启动
    • systemctl start nginx.service
  • 查看是否启动
    • ps aux | grep nginx
  • 停止方式
    • nginx -s stop 立即停止
    • nginx -s quit 从容停止
    • killall nginx 直接杀死
    • systemctl stop nginx.service
  • 重启服务
    • systemctl restart nginx.service
  • 重新载入配置文件
    • nginx -s reload
  • 查看端口号占用情况
    • netstat -tlnp

nginx 的配置文件

配置入口

  • vim /etc/nginx/conf.d/default.conf
  • vim /etc/nginx/nginx.conf

配置跨域支持

vim /etc/nginx/nginx.conf# 加入以下代码http {  add_header Access-Control-Allow-Origin *;  add_header Access-Control-Allow-Headers X-Requested-With;  add_header Access-Control-Allow-Methods GET,POST,OPTIONS;  ...}复制代码

配置协商缓存

  • etag on; //开启 etag 验证
  • expires 7d; //设置缓存过期时间为 7 天

在服务器上开启 Gzip 传输压缩

  • gzip on;
  • gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php application/vnd.ms-fontobject font/ttf font/opentype font/x-woff image/svg+xml;

访问权限的控制

location / {  allow 12.34.567.890;  deny all;}复制代码

上述配置表示只允许 IP 为12.34.567.890 的主机进行访问。

location = /admin {  deny all;}复制代码

= 根据其模式后进行精确匹配 ~ 后面跟正则匹配符(~指区分大小写的正则匹配,~*指不区分大小写的正则匹配) @ 内部访问符,一般用于错误页面

location ~ \.php$ {  deny all;}复制代码

禁止访问所有 php 页面

基于端口号配置虚拟主机

原理

nginx 监听多个端口,根据不同的端口号,来区分不同的网站。

配置地方

  • 可以在主配置文件 /etc/nginx/nginx.conf
  • 也可以在 /etc/nginx/conf.d/default.conf
  • 还可以在  conf.d 文件夹下新建一个配置文件
# 新建一个 server,监听8081,此时有两个server {  listen  8081;  server_name  localhost;  root  /usr/share/nginx/html/html8081;  index index.html;}复制代码

此时在浏览器访问 80 和 8081 端口,看到结果不同。

基于 IP 配置虚拟主机

与上面类似,这次改 IP;

server {  listen 80;  server_name 94.191.37.216;  root /usr/share/nginx/html/html8001;  index index.html;}复制代码

配置以域名为划分的虚拟主机(主要更改 server_name)

  • default.conf
server {  listen   80;  server_name   silence-jk.club;  ...}复制代码
  • com.conf
server {  listen   80;  server_name   silence-jk.com;  location / {    root /usr/share/nginx/html/dist;    index index.html index.htm;  }}复制代码

正向代理与反向代理

  • 正向代理:给客户端做代理,访问客户端不能访问的页面
  • 反向代理:给服务端做代理,收到客户请求后给客户端返回服务端设置好的内容(服务端想给客户端返回的)

反向代理演示

  • 修改配置文件
server {  listen 80;  server_name silence-jk.club;  location / {    proxy_pass http://silence-jk.com; # 反向代理   }}复制代码

其他反向代理指令

proxy_set_header :在将客户端请求发送给后端服务器之前,更改来自客户端的请求头信息。proxy_connect_timeout:配置Nginx与后端代理服务器尝试建立连接的超时时间。proxy_read_timeout : 配置Nginx向后端服务器组发出read请求后,等待相应的超时时间。proxy_send_timeout:配置Nginx向后端服务器组发出write请求后,等待相应的超时时间。proxy_redirect :用于修改后端服务器返回的响应头中的Location和Refresh。复制代码

nginx 适配 PC 或移动设备

内置变量 $http_user_agent

可获取客户端 userAgent 来判断是 PC 还是移动端

操作步骤

  • 进入 /usr/share/nginx/
  • 创建 pc 和 mobile 两个文件夹用来存放 pc 和 移动端页面
  • 进入 /etc/nginx/conf.d/default.conf 添加以下内容
server{  ...    location / {    root /usr/share/nginx/pc;    if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {      root /usr/share/nginx/mobile;    }    index index.html;  }}复制代码

参考资料

转载于:https://juejin.im/post/5bdbf1dae51d4504f8621106

你可能感兴趣的文章
Flymeos插桩适配教程
查看>>
还在用PS磨皮去皱?看看如何用神经网络高度还原你的年轻容貌!
查看>>
大端模式与小端模式、网络字节顺序与主机字节顺序
查看>>
微信支付申请90%的商户都卡在这儿了,申请微信支付,商户功能设置详细说明...
查看>>
高仿Instagram 页面效果android特效
查看>>
2016 年总结
查看>>
将String转化成Stream,将Stream转换成String
查看>>
java路径Java开发中获得非Web项目的当前项目路径
查看>>
【工具使用系列】关于 MATLAB 遗传算法与直接搜索工具箱,你需要知道的事
查看>>
Kali-linux Arpspoof工具
查看>>
PDF文档页面如何重新排版?
查看>>
基于http协议使用protobuf进行前后端交互
查看>>
bash腳本編程之三 条件判断及算数运算
查看>>
php cookie
查看>>
linux下redis安装
查看>>
弃 Java 而使用 Kotlin 的你后悔了吗?| kotlin将会是最好的开发语言
查看>>
JavaScript 数据类型
查看>>
量子通信和大数据最有市场突破前景
查看>>
StringBuilder用法小结
查看>>
对‘初学者应该选择哪种编程语言’的回答——计算机达人成长之路(38)
查看>>