nginx路径变量(nginx 修改路径)
nginx 修改路径
LNMP相关软件安装目录 Nginx 目录: /usr/local/nginx/ MySQL 目录 : /usr/local/mysql/ MySQL数据库所在目录:/usr/local/mysql/var/ PHP目录 : /usr/local/php/
nginx 路径
一、 nginx 简单使用说明:
1.登录官网 http
2.解压所下载文件到指定的盘符
3.启动服务器,步骤如下:
打开 dos 命令窗口,切换到 nginx 的目录下。
输入启动命令:start nginx
打开浏览器输入网址:http://localhost:80(80 端口可以省略)
二、nginx 运行原理:
Nginx 由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个 location block(location 是 Nginx 配置中的一个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完成相应的工作。
nginx指定路径
Nginx在不依赖第三方模块的前期下,主要的功能有:
①、正向代理
正向代理,是在用户端的。比如需要访问某些国外网站,我们可能需要购买vpn。并且vpn是在我们的用户浏览器端设置的(并不是在远端的服务器设置),浏览器先访问vpn地址,vpn地址转发请求,并最后将请求结果原路返回来。
②、反向代理
客户端向服务器发送请求时,会首先经过 Nginx 服务器,由服务器将请求分发到相应的 WEB 服务器。正向代理是代理客户端,而反向代理则是代理服务器,Nginx 在提供反向代理服务方面,通过使用正则表达式进行相关配置,采取不同的转发策略,配置相当灵活,而且在配置后端转发请求时,完全不用关心网络环境如何,可以指定任意的IP地址和端口号,或其他类型的连接、请求等。
③、负载均衡
当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况.
④、动静分离
在Web开发中,通常来说,动态资源其实就是指那些后台资源,而静态资源就是指HTML,JavaScript,CSS,img等文件。一般来说,都需要将动态资源和静态资源分开,将静态资源部署在Nginx上,当一个请求来的时候,如果是静态资源的请求,就直接到nginx配置的静态资源目录下面获取资源,如果是动态资源的请求,nginx利用反向代理的原理,把请求转发给后台应用去处理,从而实现动静分离。在使用前后端分离之后,可以很大程度的提升静态资源的访问速度,同时在开过程中也可以让前后端开发并行可以有效的提高开发时间,也可以有些的减少联调时间。
nginx 路径替换
nginx代理出现403异常,可通过以下几个原因排查:
一、由于启动用户和nginx工作用户不一致所致
1.1查看nginx的启动用户,发现是nobody,而为是用root启动的
命令:ps aux | grep "nginx: worker process" | awk'{print $1}'
1.2将nginx.config的user改为和启动用户一致,
命令:vi conf/nginx.conf
二、缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。
1. server {
2. listen 80;
3. server_name localhost;
4. index index.php index.html;
5. root /data/www/;
6. }
如果在/data/www/下面没有index.php,index.html的时候,直接文件,会报403 forbidden。
三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。
解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
1. chmod -R 777 /data
2. chmod -R 777 /data/www/
四、SELinux设置为开启状态(enabled)的原因。
4.1、查看当前selinux的状态。
1. /usr/sbin/sestatus
4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。
1. vi /etc/selinux/config
2. #SELINUX=enforcing
3. SELINUX=disabled
4.3、重启生效。reboot。
1. reboot
nginx路径配置
部署静态资源的方式:
代码 「同步」 到服务器上
执行 `./manage.py collectstatic`
配置 Nginx path 到 对应的静态资源目录上。
题主可以贴下你的 Nginx 配置。另,线上不要用 Django 来 Serve 静态资源。
nginx 路径匹配规则
添加网站是通过编辑nginx.conf文件来实现的
首先打开nginx.conf
在http块中添加一个server块
在server块中配置站点的信息
使用listen指令配置nginx监听的端口,默认为80
使用server_name指令配置nginx站点的主机名(域名),用来区分请求是要发给哪个站点的
使用root设置站点的根目录
配置完后保存并使用nginx-sreload重新加载配置文件即可
nginx 路径重写
https配置步骤:
1、申请SSL证书;
2、在Nginx服务器上面安装SSL证书:
(1)将证书文件(.crt文件)放到指定目录下,例如:/usr/local/nginx/conf/cert
(2)将私钥文件(.key文件)放到指定目录,例如/usr/local/nginx/conf/ssl
(3)若为CA机构签发证书,需要将中间证书文件放到指定目录下,例如/usr/local/nginx/conf/certs
3、修改Nginx配置文件:
(1)打开/etc/nginx/nginx.conf文件
(2)在http部分增加如下配置
ssl on;
ssl_certificate /usr/local/nginx/conf/cert/xxx.crt;
ssl_certificate_key /usr/local/nginx/conf/ssl/xxx.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 5m;
(3)如果是CA证书,还需要增加配置
ssl_client_certificate /usr/local/nginx/conf/certs/xxx.crt;
4、重新加载Nginx配置文件:nginx -s reload
5、测试配置是否正确:
(1)curl -k https://www.xxx.com (测试https是否正常)
(2)openssl s_client -connect www.xxx.com:443 (检查ssl证书是否安装正确)
nginx改变路径url
在 nginx 中,可以使用 "server_name" 和 "rewrite" 指令来实现域名跳转。
首先,需要在 nginx 配置文件中定义一个虚拟主机,并在其中使用 "server_name" 指令指定要跳转的域名。然后,使用 "rewrite" 指令重写请求的 URL,将其重定向到指定的地址。
例如,如果要将请求 "example.com" 重定向到 "www.example.com",可以使用以下配置:
server {
listen 80;
server_name example.com;
rewrite ^ http://www.example.com$request_uri? permanent;
}
这样当输入域名 example.com 后会直接跳转到 www.example.com 这个地址。
nginx 变量
第一种:Nginx自己的错误页面
Nginx访问一个静态的html 页面,当这个页面没有的时候,Nginx抛出404,那么如何返回给客户端404呢?
看下面的配置,这种情况下不需要修改任何参数,就能实现这个功能。
server {
listen 80;
server_name www.test.com;
root /var/www/test;
index index.html index.htm;
location / {
}
# 定义错误页面码,如果出现相应的错误页面码,转发到那里。
error_page 404 403 500 502 503 504 /404.html;
# 承接上面的location。
location = /404.html {
# 放错误页面的目录路径。
root /usr/share/nginx/html;
}
}
第二种:反向代理的错误页面
如果后台Tomcat处理报错抛出404,想把这个状态叫Nginx反馈给客户端或者重定向到某个连接,配置如下:
upstream www {
server 192.168.1.201:7777 weight=20 max_fails=2 fail_timeout=30s;
ip_hash;
}
server {
listen 80;
server_name www.test.com;
root /var/www/test;
index index.html index.htm;
location / {
if ($request_uri ~* ‘^/$’) {
rewrite .* http://www.test.com/index.html redirect;
}
# 关键参数:这个变量开启后,我们才能自定义错误页面,当后端返回404,nginx拦截错误定义错误页面
proxy_intercept_errors on;
proxy_pass http://www;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-FOR $proxy_add_x_forwarded_for;
}
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
}
第三种:Nginx解析php代码的错误页面
如果后端是php解析的,需要加一个变量
在http段中加一个变量
fastcgi_intercept_errors on就可以了。
指定一个错误页面:
error_page 404 /404.html;
location = /404.html {
root /usr/share/nginx/html;
}
指定一个url地址:
error_page 404 /404.html;
error_page 404 = http://www.test.com/error.html;
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.