Linux系统中使用Nginx实现反向代理
1. Nginx的安装
1.1. 配置nginx安装包源;
sudo rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
如果不确定是否安装过nginx,可以用以下命令进行查询。
rpm -qa | grep nginx
配置完成后,可以用以下命令查询配置成功后的源。
cd /cd etc/yum.repos.d/ls
1.2. 安装nginx;
yum install -y nginx
1.3. 启动nginx;
systemctl start nginx
启动后,在浏览器中输入服务器地址,如果可以出现欢迎页面,即表示安装成功。
1.4. 设置开机自启动nginx;
sudo systemctl enable nginx
执行上面的命令后,如果想要查看设置开机启动是否成功,可以用以下命令进行查询。
systemctl list-unit-files | grep nginx
2. Nginx反向代理配置
2.1. 关闭SELinux;
vi etc/selinux/config
执行上面的命令打开SELinux的配置文件,按 i 键进入编辑模式,将SELINUX=enforcing 改为 SELINUX=disabled,然后按esc退出编辑模式,输入:wq 保存退出,执行以下命令使配置生效。
soure etc/selinux/config
如果配置没有生效,建议重启Linux。
init 6
2.2. 开启防火墙端口;
查询开启的端口号。
firewall-cmd --zone=public --list-ports
开启80端口号。
firewall-cmd --zone=public --add-port=80/tcp --permanent
2.3. 配置反向代理;
查询nginx配置文件。
find / -name nginx.conf
执行以上命令后,便可以看到nginx主配置文件的路径了,如果想看主配置文件的内容,可以用以下命令。
cat /etc/nginx/nginx.conf
在nginx.conf主配置文件最后一行可以看出,该文件引入了其它的子配置文件,而这些子配置文件才是我们需要关注的。
进入到该目录下,查看引入的配置文件。
cd etc/nginx/conf.d/lscat default.conf
如果想要对某个网站应用程序加入nginx的服务,只需要复制default.conf这个文件,修改文件里的
server_name与location的内容,其中server_name为真实网站的域名,location的代码如下所示:
server {listen 80; # server_name 的值为真实网站的域名server_name www.baidu.com;location / {# 设置主机头和客户端真实地址,以便服务器获取客户端真实IPproxy_set_header Host $host;proxy_set_header X- Real - IP $remote_addr;proxy_set_header X - Forwarded - For $proxy_add_x_forwarded_for;# 禁用缓存proxy_buffering off;# 反向代理的地址,端口号为真实网站的监听端口proxy_pass http://127.0.0.1:3001;}# 配置socket.io(如果不需要,可以取消)location /socket.io { proxy_pass http://127.0.0.1:3001;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_http_version 1.1;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $host;}error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}
}
将修改完的复制文件重命名,与网站的域名相对应,如网站的域名为www.baidu.com,文件则命名为www_baidu_com,然后与default.conf放到同一个目录下。
要把多个网站的服务加入nginx中,则需要按上面的规则新建多个配置文件。
2.4. 重启nginx服务;
systemctl restart nginx
如果无法启动,用以下命令检查错误,修复后再重启nginx。
nginx -t
如果还无法启动,可以先停止nginx,再启动。
systemctl stop nginxsystemctl start nginx
2.5. 未知错误的解决方案;
1. 重启操作系统后重新连接;
inint 6
2. 检查防火墙是否启动;
systemctl is-active firewalld
如果结果为active则代表已启动。
3. 检查nginx是否启动;
systemctl is-active nginx
如果结果为active则代表已启动。
4. 检查SELinux是否禁用;
cat /etc/selinux/config
如果SELINUX=disabled则为禁用状态。
5. 网站服务没有启动;
cd /home/www_root/www_baidu_com/pm2 start app.js -name www_baidu_com
如果有多个网站,则需要分别启动,启动完成后用以下命令检测一下。
pm2 list
如果显示表格中的服务均显示online则代表全部启动成功了。
6. 防火墙中的80端口没有开启;
firewall-cmd --zone=public --add-port=80/tcp --permanentfirewall-cmd --reload
3. 域名测试
如果是在本地搭建的虚拟机,为了测试nginx是否配置成功,可以用以下方法。
找到“C:\Windows\System32\drivers\etc\hosts”文件,添加域名映射。
# IP地址为虚拟机的地址,域名为网站域名
192.168.1.128 www.baidu.com
这样在浏览器中输入www.baidu.com域名,便会访问192.168.1.128的虚拟机服务器,再经过配置的www_baidu_com.conf这个nginx服务,最终会转发到了 127.0.0.1:3001这个地址。
Linux系统中使用Nginx实现反向代理相关推荐
- linux 添加重定向域名,Linux系统中Nginx的安装并进行域名认证和重定向
Linux系统中Nginx的安装并进行域名认证和重定向 本文主要介绍Linux系统中Nginx的安装并进行域名认证和重定向,希望通过本知识点的讲解对大家今后的学习和工作有所帮助,下面进行具体介绍: 1 ...
- nginx配置反向代理过程中遇到的坑 配置好之后报404问题
项目场景: nginx配置反向代理路径 问题描述 在配置nginx反向代理的过程中,路径可以匹配上但是一直报404,找不到路径.nginx配置如下: location /business {add_h ...
- WAF学习之一——Nginx与反向代理
文章目录 反向代理 什么是反向代理 反向代理与正向代理 工作流程 优点 Nginx模块 模块划分 模块处理 nginx作为反向代理的使用 作内容服务器的替身 作为内容服务器的负载均衡器 实例 1)环境 ...
- WEB请求处理二:Nginx请求反向代理
上一篇<WEB请求处理一:浏览器请求发起处理>,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建立TCP连接,发送HTTP请求.本文将讲述请求到达反向代理服务器的一个处理 ...
- WEB 请求处理二:Nginx 请求 反向代理
上一篇<WEB请求处理一:浏览器请求发起处理>,我们讲述了浏览器端请求发起过程,通过DNS域名解析服务器IP,并建立TCP连接,发送HTTP请求.本文将讲述请求到达反向代理服务器的一个处理 ...
- Nginx高性能反向代理web服务器
基础 Nginx简介 背景介绍 Nginx("engine x")一个具有高性能的[HTTP]和[反向代理]的[WEB服务器],同时也是一个[POP3/SMTP/IMAP代理服务器 ...
- 【推荐】如何用 Nginx 构建反向代理缓存服务器?
作者:一盏烛光,贤牛特邀工程师. 防伪码:曾经沧海难为水,除却巫山不是云. 代理服务可简单的分为正向代理和反向代理: 正向代理: 用于代理内部网络对 Internet 的连接请求(如×××/NAT), ...
- 使用nginx实现反向代理
一.什么是正向代理和反向代理 (1)什么是正向代理 正向代理是一个位于客户端和原始服务器之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后由代理向原始服务器 ...
- Nginx配置反向代理,一篇搞定!
欢迎关注方志朋的博客,回复"666"获面试宝典 来源:blog.csdn.net/zxd1435513775/article/ details/102508463 一.引言 其他话 ...
最新文章
- python处在哪个阶段_python 基础复习
- C++——智能指针——auto_ptr、shared_ptr、unique_ptr
- MongoDB用户授权和管理
- Silverlight中的ControlTemplate(2)
- Ubuntu 16.04安装Memcached(单机)
- 2018亚太CDN峰会开幕,阿里云王海华解读云+端+AI的短视频最佳实践
- 背水一战 Windows 10 (55) - 控件(集合类): SemanticZoom, ISemanticZoomInformation
- Python入门学习笔记(6)
- EM算法在二维高斯混合模型参数估计中的应用
- java解释器是什么_java编译器和解释器
- dns缓存时间 linux,如何在Linux服务器上刷新DNS缓存
- 整理了20个最全的设计师学习网站,推荐收藏!
- 概率图模型--马尔可夫随机场
- 用Linux开发嵌入式项目拢共分几步?
- 多少 80 后因为一台文曲星而走上了程序员之路
- 『数字信号处理实践』仅利用ArduinoUNO通过脉宽调制生成DTMF
- Android5g手机,这几款5G手机,入手三年不卡,不妨试一下
- linux三种用户界面,Linux的图形用户界面-你会选择哪个?
- 马氏距离 java实现_马氏距离(Mahalanobis Distence) [python]
- 移位运算(计算机组成原理15)