ubuntu server18上搭建nginx并配置代理

34 篇文章 1 订阅

前言

最近需要往服务器上堆多个web服务。架构类似百度,一个网站首页www.baidu.com .然后有其他子网站,比如 ai.baidu.com
于是用到了nginx

正文

nginx就不介绍了,随便百度一下就可以了,我这里用作代理服务器,也就是当需要访问网站首页时帮我转发到web服务A。而当我需要访问其子网站时,帮我转发到web服务B

网站A 监听端口8080
网站B 监听端口8081
配置nginx监听80,外部浏览器请求根据域名来访问A和B。

1 安装

sudo apt install nginx

2 配置nginx

首先关闭默认配置

当nginx启动时会发现80端口被占用,默认是nginx的首页。现在去掉它
编辑/etc/nginx/nginx.conf ,注释掉默认的sites-enabled/*,感兴趣的可以看看sites-enabled目录下的配置

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	#include /etc/nginx/sites-enabled/*;

重启nginx,此时80不再被占用

sudo systemctl restart nginx.service

配置监听80,根据server_name转发到不同站点

在http下添加server, 一个server对应一个代理

http{
		#首页,直接配置静态网页
        server{
                listen 80;
                server_name xxx.com;
                location / {
                        root /home/ubuntu/xxx;
                        index index.html;
                }
        }


        #子网站,配置转发
        server{
                listen 80;
                server_name sub.xxx.com;

                location / {
                        proxy_pass      http://localhost:8081; # 转发
                }
        }

}

发现403 forbidden

打印一下nginx的错误日志:

 cat /var/log/nginx/error.log
 2020/10/19 18:44:04 [error] 20136#20136: *1 "/xxxx/index.html" is forbidden (13: Permission denied), client: 61.140.208.239, server: xxx.com, request: "GET / HTTP/1.1", host: "xxx.com"

发现这个文件没有权限,看了一下有读权限,然后是上网搜资料,最后发现nginx还要配置用户名,配置的user必须和启动的user一致

[解决] 修改 /etc/nginx/nginx.conf ,将第一行user 项 修改为root(我的启动是root)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值