Nginx系列:安装与配置

环境

  • MacOS Mojave 10.14
  • Ubuntu18.04
  • homebrew

1 安装

1.0 MacOS

1.0.1 安装

# 安装homebrew
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# 安装Nginx
brew install nginx

1.0.2 Nginx路径

序号路径描述
1/usr/local/nginx/nginx.confNginx配置文件路径
2/usr/local/var/www服务器默认路径
3/usr/local/Cellar/nginx/1.13.12安装路径

1.2 Ubuntu

1.2.1 方式1:直接安装

sudo  apt-get install nginx

1.2.2 Nginx路径

序号路径描述
1/usr/sbin/ngxin主程序
2/etc/nginx/nginx.confNginx配置文件路径
3/usr/share/nginx/静态文件
4/var/log/nginx日志

1.2.3 方式2:源码安装

安装依赖:

# 安装依赖gcc, g++
sudo apt-get install build-essential
sudo apt-get install libtool
# 依赖pcre
sudo apt-get install libpcre3 libpcre3-dev
# 依赖zlib
sudo apt-get install zlib1g-dev
# 依赖SSL
sudo apt-get install openssl
# 选择路径
cd /usr/
# 获取Nginx源
wget http://nginx.org/download/nginx-1.14.2.tar.gz
tar -zxvf nginx-1.14.2.tar.gz
cd nginx-1.14.2
# 配置
.configure --prefix=/usr/local/nginx
# 编译
make
# 安装
sudo make install
# 配置软连接
sudo ln -s /usr/local/niginx/sbin/nginx /usr/bin/nginx
# 通过nginx启动
nginx

2 配置

2.1 初级使用

2.1.0 版本

nginx -v
# 结果
nginx version: nginx/1.14.0 (Ubuntu)

2.1.2 检查配置文件是否有语法错误

  • 命令
sudo nginx -t
  • 结果
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

检查配置文件语法并获取配置文件路径。

2.1.3 启动

sudo nginx

2.1.4 访问

# 默认端口
http://localhost:8080

2.1.5 访问

Nginx

图1.0 Ngnix访问默认端口

2.1.5 修改端口

  • /etc路径
cd /etc/nginx/
vim nginx.conf
server {
listen 8080;
}
  • /usr路径
cd /usr/local/nginx/
vim nginx.conf
server {
listen 8080;
}

2.1.6 重载

sudo nginx -s reload

2.1.7 停止

sudo nginx -s stop

2.1.8 代理

server {
	listen 8080 default_server;
	server_name localhost;
	location / {
		# 通过localhost:8080代理baidu
		proxy_pass https://www.baidu.com;
	}
}

2.1.9 访问

http://localhost:8080/
跳转至,代理成功
https://www.baidu.com

2.2 location配置

2.2.1 功能

配置服务器或本地服务的代理地址;
模式说明:location model

序号模式说明
1=精准匹配
2^~uri以某个常规字符串开始
3~区分大小写的正则匹配
4~*不区分大小写的正则匹配
5!~区分大小写不匹配正则
6!~*不区分大小写不匹配正则
7/通用匹配,任何请求都会进行匹配

2.2.2 用例

server {
	listen 8080 default_server;
	server_name localhost;
	location / {# 通用匹配
		# 通过localhost:8080代理baidu
		proxy_pass https://www.baidu.com;
	}
	location = /test {# 精准匹配
		return 500;
	}
	location ^~ /test { # uri匹配
		return 500;
	}
	location ~ /Test {# 区分大小写匹配
		return 500;
	}
	location ~* /Test {# 不区分大小写匹配
		return 500;
	}
}

2.3 proxy_pass配置

功能:对代理的服务进行代理;

2.3.1 直接代理

server {
	location / {
		proxy_pass https://www.baidu.com;
	}
}

2.3.2 负载均衡

2.3.2.1 backup(备份)
upstream mysvr {# 配置代理服务器小组^_^
	server 127.0.0.1:8080;#服务器A,瞎写的,换成需要代理的
	server 192.0.0.1:8090 backup;#服务器B,瞎写的,换成需要代理的
}
server {
	location / {
		proxy_pass http://mysvr;
	}
}

工作模式:
Nginx代理两台服务器A和B,请求顺序为:AAAAA…,即服务器A正常情况下,只代理A,当服务器A宕机了,则启动服务器B,请求模式:BBBB…,一直代理B.

2.3.2.2 weight(加权)
upstream mysvr {# 配置代理服务器小组^_^
	server 127.0.0.1:8080 weight=1;#服务器A,瞎写的,换成需要代理的
	server 192.0.0.1:8090 weight=2;#服务器B,瞎写的,换成需要代理的
}
server {
	location / {
		proxy_pass http://mysvr;
	}
}

工作模式:
Nginx代理两台服务器A和B,根据配置的权重分发给不同服务器不同数量的请求.如果不设置,默认为1.
以上配置的请求顺序为:ABBABB…

2.3.2.3 ip_hash
upstream mysvr {# 配置代理服务器小组^_^
	server 127.0.0.1:8080;#服务器A,瞎写的,换成需要代理的
	server 192.0.0.1:8090;#服务器B,瞎写的,换成需要代理的
	ip_hash;
}
server {
	location / {
		proxy_pass http://mysvr;
	}
}

工作模式:
相同的客户端IP请求相同的服务器.

3 url资源路径配置

通过location将主机文件配置为URL链接,需要将autoindex置为on。

http{
    server {
		listen 8000;
		server_name localhost;
		location / {
			root "/home/xdq/test/remote_folder";
			index index.html index.html index.php l.php;
			autoindex on;
			allow all;

			add_header Access-Control-Allow-Origin *;
			add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
			add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
		}
		error_page 500 502 503 504 /50x.html;
		location = /50x.html{
			root html;
		}
	}
}

访问:

http://ip:8000/

即定位到文件路径:/home/xdq/test/remote_folder

4 卸载Nginx

  • 停止Nginx服务
sudo service nginx stop
  • 卸载
# 卸载删除除了配置文件以外的所有文件
sudo apt-get remove nginx nginx-common
# 卸载所有东东,包括删除配置文件
sudo apt-get purge nginx nginx-common 
# 在上面命令结束后执行,主要是卸载删除Nginx的不再被使用的依赖包
sudo apt-get autoremove 
#卸载删除两个主要的包
sudo apt-get remove nginx-full nginx-common

[参考文献]
[1]https://yq.aliyun.com/articles/79214
[2]https://blog.csdn.net/zjuwwj/article/details/72773704
[3]https://www.cnblogs.com/knowledgesea/p/5199046.html


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天然玩家

坚持才能做到极致

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值