Nginx 配置文件位置
Nginx 的配置文件默认在
/usr/local/nginx/conf/nginx.conf
,打开这个文件,可以看到:
1 | http { |
这表明默认情况下 nginx 会自动包含
/usr/local/nginx/conf/conf.d/*.conf
和
/usr/local/nginx/conf/sites-enabled/*
。
默认情况下,在 /usr/local/nginx/conf/sites-enabled/
下有一个默认站点,这个站点也就是 nginx 安装之后的默认站点:
1 | $ cd /usr/local/nginx/conf/sites-enabled/sites-enabled |
打开 /usr/local/nginx/conf/sites-enabled/default
可以看到如下内容:
1 | server { |
按照这个文档的建议:
1 | In most cases, administrators will remove this file from sites-enabled/ and leave it as reference inside of sites-available where it will continue to be updated by the nginx packaging team. |
最好是在
/usr/local/nginx/conf/sites-enabled/sites-available/
下建立站点的配置文件,这些站点就是所谓的"可用站点"。然后在 link 到
/usr/local/nginx/conf/sites-enabled/sites-enabled
下开启站点,这些开启的站点就是所谓"启用站点"。
通过建立链接来控制可用站点的启用。
虚拟主机
反向代理
在实际使用中,由于web服务器启动于不同进程,因此需要指定不同的端口,也就意味着必然有web应用要使用80之外的端口,这样在地址栏中就必须出现端口号,非常影响用户体验。
比较好的方式,通过使用不同的域名或者二级域名,然后通过nginx反向代理的方式转发请求给到实际负责处理的服务器。
创建虚拟主机 frp.zhouyuqian.com
目标:http://frp.zhouyuqian.com 应该指向当前机器上运行于 7500 端口的 frps 服务。
在 /usr/local/nginx/conf/sites-enabled/sites-available/
下新建 frp.zhouyuqian.com
文件,内容如下:
http
1 | server { |
https
1 | server { |
将 frp.zhouyuqian.com
站点文件链接到
/usr/local/nginx/conf/sites-enabled/sites-enabled/
目录:
1 | sudo ln -s /usr/local/nginx/conf/sites-enabled/sites-available/frp.zhouyuqian.com /usr/local/nginx/conf/sites-enabled/sites-enabled/frp.zhouyuqian.com |
修改完成之后,使用命令检测配置修改结果并重新装载配置:
1 | sudo nginx -t |
加
/
与不加/
在配置proxy_pass代理转发时,如果后面的url加
/
,表示绝对根路径;如果没有/
,表示相对路径例如
- 加
/
1
2
3
4 server_name shaochenfeng.com
location /data/ {
proxy_pass http://127.0.0.1/;
}访问 http://shaochenfeng.com/data/index.html 会转发到 http://127.0.0.1/index.html
- 不加
/
1
2
3
4 server_name shaochenfeng.com
location /data/ {
proxy_pass http://127.0.0.1;
}访问 http://shaochenfeng.com/data/index.html 会转发到 http://127.0.0.1/data/index.html
WSS
在 nodered 的服务中用到了 wss 服务,如果 nginx 代理没有启用 wss,就会一直出现 “丢失与服务器的连接,重新连接...”。
WSS表示WebSocket + Https,通俗点说,就是安全的WebSocket。
支持WSS请求核心 (加在 server
- location
中)
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Remote_addr $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Reference
[1] https://skyao.gitbooks.io/learning-nginx/content/configure/reverse/action_no_port.html
[2] https://www.bioinfo-scrounger.com/archives/Nginx_configure/
[3] https://www.cnblogs.com/binghe001/p/14752404.html
[4] https://blog.csdn.net/qq_40650378/article/details/119676781