安装 和运行
sudo apt-get install nginx
sudo systemctl status nginx
sudo systemctl enable nginx
sudo systemctl start nginx
配置文件说明
默认在 /etc/nginx
下
主要是 nginx.conf
, sites-available/
, sites-enabled/
其中,
nginx.conf
一般不用修改,除非你明确知道你要改的是什么。
sites-enabled/
中的文件是 sites-available/
中的文件的链接,Linux 常见的做法,你懂的。
默认有个default,也就是会起个80 的web服务器。
如果你想再起8080,8081 两个服务器,只需要要在 sites-available/
中把default 复制两份,文件名随便,但要在sites-enabled/
加入这个两个文件的链接,然后修改这两个文件的内容,主要是端口。最后重启一下nginx 就可以了。
另外, apache2 的配置也是这样的。
反向代理配置
概念
先是,为什么叫“反向”代理?
这里是我偷到的一张图:
左侧是我们一般使用的代理,是运行在客户端的,常见的比如浏览器可以设置代理服务器。
右侧则是反向代理,运行在服务端,主要用来做服务端的负载均衡?
另一个容易想到的差别,正向代理访问的服务器是客户端指定的,而反向代理则是代理服务器指定,代理服务器代理的web服务器提供无差别的服务。
常用的翻墙工具的流程又和一般的正向代理有些不同。
— | — |
---|---|
正向 | 客户端-> 代理 -> 客户端指定的 web |
反向 | 客户端-> 代理 -> 代理指定的web |
翻墙代理 | 客户端->客户端工具->服务端工具-> 客户端指定的web |
具体配置
修改 sites-available 下相应的文件
upstream mysvr {
server 192.168.10.121:3333;
server 192.168.10.122:3333;
}
server {
...
location ~*^.+$ {
proxy_pass http://mysvr; #请求转向mysvr 定义的服务器列表
}
}
这里比较神奇的大概就是proxy_pass 这个指令,这个指令和一些参数结合可以作为正向代理。
resolver 8.8.8.8;
server {
listen 8088;
location / {
proxy_pass http://$http_host$request_uri;
}
}
参考:
代理概念 和 nginx基础配置
nginx 反向代理 设置
更详细的proxy 参数的配置
nginx 正向代理 设置