nginx配置知识点即常见问题解决
常用命令
重新加载配置文件(热重启)nginx
- nginx -s reload
查看配置文件路径
- nginx -t
查看错误日志路径
- 知道nginx.conf路径后,通过
cat /opt/homebrew/etc/nginx/nginx_frist.conf | grep error
#error_log logs/error.log;
nginx index权限问题
1.先查看nginx进程所属的用户及组
ps aux | grep nginx
root 30576 0.0 0.0 408784128 2800 ?? Ss 12:30上午 0:00.00 nginx: master process nginx
greg 30823 0.0 0.0 408626880 1328 s000 S+ 12:47上午 0:00.01 grep nginx
nobody 30788 0.0 0.0 409343232 1936 ?? S 12:42上午 0:00.01 nginx: worker process
2.查看拒绝访问的文件权限信息
ls -lh
total 16
drwxr-xr-x@ 4 greg staff 128B 8 21 13:30 assets
-rwxr-xr-x@ 1 greg staff 456B 8 21 13:30 index.html
-rwxr-xr-x@ 1 greg staff 1.5K 8 21 13:30 vite.svg
3.用户不一样,修改nginx的进程所属用户
在nginx.confg第一行 改成
user greg staff
4.重启nginx
sudo nginx -s reload
nginx常见配置
proxy_pass #代理服务
proxy_redirect off; #是否允许重定向
proxy_set_header Host $host; #转发时传header参数
proxy_set_header X-Forwarded-For $remote_addr; #设置请求的ip地址
proxy_connect_timeout 90; #连接代理服务超时时间
proxy_send_timeout 90; #请求发送最大时间
proxy_read_timeout 90; #读取最大时间
#缓存相关
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
配置负载均衡(后端项目配置)
配置集群,这段代码写在http块中
upstream backend {
server 127.0.0.1:8000 weight=2; # weight设置权重
server 127.0.0.1:8001 weight=1;
}
#配置在server块中
location / {
proxy_pass http://backend/; # backend是上面配好的;注意 http://xxx 和 http://xxx/的区别
# 分别是相对路径和绝对路径
}
常见问题
查看nignx的conf文件在哪,可通过如下命令获取:
nginx -t
后端用Django时,如何配置前端的跨域请求
# 改为True即为可跨域设置Cookie
CORS_ALLOW_CREDENTIALS = True
# 允许所有 域名/IP 跨域
CORS_ALLOW_ALL_ORIGINS = True
# 允许所有的请求头
CORS_ALLOW_HEADERS = ('*')
我们设置CORS_ALLOW_ALL_ORIGINS为True,以允许所有来源跨域访问我们的应用程序。
如果您想允许特定的来源,请使用CORS_ORIGIN_WHITELIST参数来指定。
nignx默认的主配置文件在/etc/nginx/nginx.conf中,这个路径下的nginx.conf文件中
写了许多include xxx/xxx/xxx;例如 /etc/nginx/conf.d/*.conf
上面路径下的所有以.conf结尾的文件都将作为子配置文件
使用nginx容器时,在配置文件中listen 了多个端口,在运行容器时,就需要将监听的端口映射出来