文章目录

  • 序言
  • 安装Nginx
  • 启动Nginx
  • Nginx操作常用命令
  • Nginx配置文件解析
  • 反向代理配置

序言

最近搭了一个博客网站,但是在访问的时候需要额外加上客户界面的端口号,显得比较low,所以想用nginx实现端口代理,访问80端口之后,自动转发到指定端口,这样间接的隐藏了访问的端口

安装Nginx

简要的介绍一下我安装nginx的步骤,已安装的可忽略

  • 首先查看一下安装的版本
yum list | grep nginx


最后一列前缀含有@表明是已安装的

  • 安装nginx
yum install nginx
或者
yum -y install nginx

加上 -y 参数,即为全自动安装,因为在安装期间,会等待用户输入y/n,指导程序是否继续执行;加上y参数之后可完成自动安装。

  • 安装完成之后,可以查看当前的nginx版本
 nginx -v

  • 相关文件夹
    使用rpm -ql nginx查询Nginx的安装目录,如下图:
    注:1、/etc/nginx/conf.d/ 文件夹,是我们进行子配置的配置项存放处,/etc/nginx/nginx.conf 主配置文件会默认把这个文件夹中所有子配置项都引入;
    2、/usr/share/nginx/html/ 文件夹,通常静态文件都放在这个文件夹,也可以根据你自己的习惯放其他地方;

启动Nginx

  • 查看防火墙设置

如果当前机器启用了防火墙,可以把防火墙关掉,或者在防火墙中添加相应的开放端口,下面附上防火墙相关的命令

systemctl start firewalld  # 开启防火墙
systemctl stop firewalld   # 关闭防火墙
systemctl status firewalld # 查看防火墙开启状态,显示running则是正在运行
firewall-cmd --reload      # 重启防火墙,永久打开端口需要reload一下# 添加开启端口,--permanent表示永久打开,不加是临时打开重启之后失效
firewall-cmd --permanent --zone=public --add-port=8888/tcp# 查看防火墙,添加的端口也可以看到
firewall-cmd --list-all
  • 设置nginx开机自启
systemctl enable nginx
  • 启动Nginx
systemctl start nginx
# linux中服务的启动都可以使用这样的形式,当然也会有停止、重启等,如:systemctl stop nginx、systemctl restart nginx等

这个是使用的系统命令进行服务的启动,当然nginx也自带相关的服务命令

Nginx操作常用命令

  • Nginx自带命令
nginx -s reload  # 向主进程发送信号,重新加载配置文件,热重启
nginx -s reopen  # 重启 Nginx
nginx -s stop    # 快速关闭
nginx -s quit    # 等待工作进程处理完成后关闭
nginx -T         # 查看当前 Nginx 最终的配置
nginx -t -c <配置路径>    # 检查配置是否有问题,如果已经在配置目录,则不需要-c
  • 使用系统命令
systemctl start nginx    # 启动 Nginx
systemctl stop nginx     # 停止 Nginx
systemctl restart nginx  # 重启 Nginx
systemctl reload nginx   # 重新加载 Nginx,用于修改配置后
systemctl enable nginx   # 设置开机启动 Nginx
systemctl disable nginx  # 关闭开机启动 Nginx
systemctl status nginx   # 查看 Nginx 运行状态

Nginx配置文件解析

如前面文件所示,Nginx的主配置文件为etc/nginx/nginx.conf,可以使用 cat命令命令进行查看cat -n nginx.conf

-n 参数在查看时,会显示行号

当然也可以直接使用vim命令进行编辑,vi nginx.conf,输入i即可进行编辑

  • 配置文件目录
main        # 全局配置,对全局生效
├── events  # 配置影响 Nginx 服务器或与用户的网络连接
├── http    # 配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置
│   ├── upstream # 配置后端服务器具体地址,负载均衡配置不可或缺的部分
│   ├── server   # 配置虚拟主机的相关参数,一个 http 块中可以有多个 server 块
│   ├── server
│   │   ├── location  # server 块可以包含多个 location 块,location 指令用于匹配 uri
│   │   ├── location
│   │   └── ...
│   └── ...
└── ...

一个 Nginx 配置文件的结构就像 nginx.conf 显示的那样,配置文件的语法规则:

配置文件由指令与指令块构成;
每条指令以 ; 分号结尾,指令与参数间以空格符号分隔;
指令块以 {} 大括号将多条指令组织在一起;
include 语句允许组合多个配置文件以提升可维护性;
使用 # 符号添加注释,提高可读性;
使用 $ 符号使用变量;
部分指令的参数支持正则表达式;

  • 典型配置参数
user  nginx;                        # 运行用户,默认即是nginx,可以不进行设置
worker_processes  1;                # Nginx 进程数,一般设置为和 CPU 核数一样
error_log  /var/log/nginx/error.log warn;   # Nginx 的错误日志存放目录
pid        /var/run/nginx.pid;      # Nginx 服务启动时的 pid 存放位置events {use epoll;     # 使用epoll的I/O模型(如果你不知道Nginx该使用哪种轮询方法,会自动选择一个最适合你操作系统的)worker_connections 1024;   # 每个进程允许最大并发数
}http {   # 配置使用最频繁的部分,代理、缓存、日志定义等绝大多数功能和第三方模块的配置都在这里设置# 设置日志模式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;   # Nginx访问日志存放位置sendfile            on;   # 开启高效传输模式tcp_nopush          on;   # 减少网络报文段的数量tcp_nodelay         on;keepalive_timeout   65;   # 保持连接的时间,也叫超时时间,单位秒types_hash_max_size 2048;include             /etc/nginx/mime.types;      # 文件扩展名与类型映射表default_type        application/octet-stream;   # 默认文件类型include /etc/nginx/conf.d/*.conf;   # 加载子配置项server {listen       80;       # 配置监听的端口server_name  localhost;    # 配置的域名location / {root   /usr/share/nginx/html;  # 网站根目录index  index.html index.htm;   # 默认首页文件deny 172.168.22.11;   # 禁止访问的ip地址,可以为allallow 172.168.33.44;# 允许访问的ip地址,可以为all}error_page 500 502 503 504 /50x.html;  # 默认50x对应的访问页面error_page 400 404 error.html;   # 同上}
}

server 块可以包含多个 location 块,location 指令用于匹配 uri,语法:

location [ = | ~ | ~* | ^~] uri {...
}

指令后面:

=精确匹配路径,用于不含正则表达式的 uri 前,如果匹配成功,不再进行后续的查找;
^~ 用于不含正则表达式的 uri 前,表示如果该符号后面的字符是最佳匹配,采用该规则,不再进行后续的查找;
~ 表示用该符号后面的正则去匹配路径,区分大小写;
~* 表示用该符号后面的正则去匹配路径,不区分大小写。跟 ~优先级都比较低,如有多个location的正则能匹配的话,则使用正则表达式最长的那个;
如果 uri 包含正则表达式,则必须要有 ~~* 标志。

反向代理配置

  • 反向代理
    反向代理是工作中最常用的服务器功能,经常被用来解决跨域问题,下面简单介绍一下如何实现反向代理。

解释一下跨域
当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域

打开并编辑nginx.conf文件

server {39           listen       80; # 监听的端口40          listen       [::]:80 default_server;41          server_name  localhost; # 域名42          root         /usr/share/nginx/html;43   44          # Load configuration files for the default server block.45          include /etc/nginx/default.d/*.conf;46  47          location / {48          proxy_pass http://localhost:8080;49         }50 }

在location中设置proxy_pass参数值,即为指定域名的跳转地址;当访问本地的80端口时,nginx服务器会自动的转发请求到8080端口。
注意:在修改完之后,需要重新加载配置文件,nginx -s reload

当然,不止是在本机的不同端口进行转发,也可以转发到另外一台服务器上面,把上面的proxy_pass的值设为http://www.baidu.com,访问本地即可访问百度首页。

  • 实战

比如我们监听 9001 端口,然后把访问不同路径的请求进行反向代理:

把访问 http://127.0.0.1:9001/edu 的请求转发到 http://127.0.0.1:8080
把访问 http://127.0.0.1:9001/vod 的请求转发到 http://127.0.0.1:8081
这种要怎么配置呢,首先同样打开主配置文件,然后在 http 模块下增加一个 server 块:

server {listen 9001;server_name localhost;location ~ /edu/ {proxy_pass http://127.0.0.1:8080;}location ~ /vod/ {proxy_pass http://127.0.0.1:8081;}
}

参考转自:
Nginx 从入门到实践,万字详解!

使用Nginx配置反向代理,完成端口转发相关推荐

  1. nginx配置反向代理和负载均衡完结篇

    具体安装配置参考之前的文章 https://blog.csdn.net/weixin_44001965/article/details/102723855 文章目录 一,nginx操作的常用命令 ng ...

  2. Nginx配置反向代理访问内部服务

    Nginx可以提供高性能的反向代理服务,将客户机请求转发给内部网络中隐藏在幕后的真正的服务器,并将从服务器上得到的结果数据返回给Internet上请求的客户端,在用户看来,Nginx扮演的就是真实服务 ...

  3. Windos环境用Nginx配置反向代理和负载均衡

    Windos环境用Nginx配置反向代理和负载均衡 引言:在前后端分离架构下,难免会遇到跨域问题.目前的解决方案大致有JSONP,反向代理,CORS这三种方式.JSONP兼容性良好,最大的缺点是只支持 ...

  4. nginx配置反向代理浏览器输入地址后点击登陆URL发生变化的处理

    今天项目上需要再用NGINX配置反向代理需求如下: 现在有A服务器只做为nginx服务器,B服务器作为代码服务器,用户访问A要实际上访问的是B的程序. 处理方式就是用nginx的方向代理处理即可: 打 ...

  5. nginx配置反向代理过程中遇到的坑 配置好之后报404问题

    项目场景: nginx配置反向代理路径 问题描述 在配置nginx反向代理的过程中,路径可以匹配上但是一直报404,找不到路径.nginx配置如下: location /business {add_h ...

  6. 淘淘商城第89讲——nginx配置反向代理

    什么是反向代理? 我们经常听说反向代理这个概念,既然有反向代理,那么就应该有正向代理,那什么是正向代理呢?如下图所示,所谓的正向代理是指当用户发起请求时无法直接访问到某个网站(比如我们经常要访问外网) ...

  7. Nginx配置反向代理,一篇搞定!

    欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/zxd1435513775/article/ details/102508463 一.引言 其他话 ...

  8. windows版 nginx配置反向代理实例教程 跳转tomcat和php网站

    抄自 https://www.cnblogs.com/j-star/p/8785334.html 个人理解 nginx端口设置为80,简称n tomcat端口设置为其他,例如8080,简称t php网 ...

  9. Nginx配置——反向代理

    文章目录 0. 引言 1.何为反向代理? 2. Nginx配置文件 2.1 第一部分:全局块 2.2 第二部分:events 块 2.3 第三部分:http 块 2.3.1 全局 server 块 2 ...

  10. nginx笔记 安装nginx 配置 反向代理 多虚拟主机

    1,检测linux上是否 通过yum安装了nginx rpm   -qi  nginx 2.安装nginx之前的依赖包 yum install gcc patch libffi-devel pytho ...

最新文章

  1. python3 串行并列实际应用
  2. 沙溪理工学校计算机,学雷锋树新风——沙溪理工学校计算机部开展学雷锋活动...
  3. mysql的tcp链接过程_tcp建立连接和断开连接过程
  4. 传输层端口号的范围是多少?被分为哪两部分_第三章, 传输层
  5. jQuery学习(五)—课堂实训题专栏
  6. 环境变量PATH cp命令 mv命令 文档查看cat/more/less/head/tail
  7. PHP根据配置设置可变变量
  8. 单例模式中的懒汉模式和饿汉模式
  9. Ubuntu 16.04 Kalibr安装使用
  10. msfvenom生成muma
  11. matlab 画表格函数,excel表格数据曲线图模拟函数-如何在excel中绘制函数图像?
  12. Android Studio Module 中的So 文件和 App So文件合并问题
  13. 也来谈谈人工智能的罪与罚
  14. sign-file: certs/signing_key.pem: 解决方法
  15. 如何用python整理表格_Python 自动整理 Excel 表格
  16. js过滤检测敏感词汇
  17. mooc大数据技术原理与应用,对mooc的使用体验
  18. 【题解】Comet OJ 夏季欢乐赛(2019)A 完全k叉树⭐⭐ 【思维】
  19. 一套用了 70 年的计算机架构 —— 冯·诺依曼架构
  20. 如何简单快速的破解PDF加密文档

热门文章

  1. 华创e路航固件_华创e路航地图升级工具 v1.0 官方版(图文)
  2. 2022年最新最全软件测试面试题大全
  3. 随机过程及其在金融领域中的应用 第二章 习题 及 答案
  4. 清除dnf垃圾进程 .bat文件
  5. VS2017\VS2019\VS2022项目多余文件(中间文件\临时文件)一键清理BAT
  6. 虚拟机 Bochs新版本试用DOS、UCDOS、Win3.2 -- Bochs 2.6.11于2020年1月5日发布!
  7. 地震数据读写segyio的脑图(c语言接口)
  8. 禁用某个程序,试试镜像劫持吧!
  9. 深度学习识别手写字体数字
  10. 飞机航线的获取、配准、制作与统计距离