1 单个域名转发(本地项目):nginx.conf
注:可以引入多个config文件
include /www/server/panel/vhost/nginx/*.conf;
多个文件跟上面的代码类似
2 单个域名转发(域名转发单个IP):nginx.conf
server
{
listen 80;
server_name zilaishui.fsgyhlw.com;
#PHP-INFO-START PHP引用配置,可以注释或修改
#清理缓存规则
location / {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#location 位置带/与不带/ 无影响
#这里是别的IP 注意这个斜杠是需要的
#转发要注意带/与不带的区别
#转发要带/,才能去掉访问的路径,不然多一层目录找不到资源
proxy_pass http://222.74.86.186:9088/;
}
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
}
3 单个域名做多个IP配置,是根据后缀区分
server {
listen 80;
server_name xxxxx.com;
keepalive_timeout 3600s;
proxy_read_timeout 3600s;
# proxy_protocol on;
proxy_connect_timeout 60s;
proxy_send_timeout 500s;
client_header_buffer_size 512k;
large_client_header_buffers 4 512k;
proxy_pass_request_headers on;
underscores_in_headers on;
client_max_body_size 1024m;
client_body_buffer_size 10m;
proxy_buffers 4 512k;
proxy_busy_buffers_size 512k;
#location 位置带/与不带/ 无影响
#这里是别的IP 注意这个斜杠是需要的
#转发要注意带/与不带的区别
#转发要带/,才能去掉访问的路径,不然多一层目录找不到资源
location /A/ {
proxy_pass http://1.111.111.111:80/;
}
#location 位置带/与不带/ 无影响
#这里是别的IP 注意这个斜杠是需要的
#转发要注意带/与不带的区别
#转发要带/,才能去掉访问的路径,不然多一层目录找不到资源
location /B/ {
proxy_pass http://1.111.111.111:8000/;
}
}
4 启动本地项目出现 403 forbidden
一、启动用户和nginx工作用户不一致所致
查看nginx的启动用户:打开nginx.conf文件
vi conf/nginx.conf
user nginx;
改为
user root;
二、nginx.conf中缺少index的指定的文件。
查看nginx的配置:打开nginx.conf文件
server {
listen 80;
server_name localhost;
index index.html;
root /opt/html/;
}
如果在/opt/html/下面没有index.html的时候,会报403 forbidden。
三、权限问题,如果nginx没有操作权限,也会出现403错误。
解决办法:修改/opt/html/目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
chmod -R 777 /opt/html/
四、SELinux设置为开启状态(enabled)的原因。
查看当前selinux的状态。
/usr/sbin/sestatus
将SELINUX=enforcing 修改为 SELINUX=disabled 状态。
vi /etc/selinux/config
#SELINUX=enforcing
SELINUX=disabled #注释之前,替换为这个
重启生效。
5 nginx proxy_pass代理 出现403
proxy_set_header Host $host; 代表转发时不改变请求头“Host”的值。所以转发过去,对方api.dalu.com不识别,所以返回403. 修改配置