注意:就是 / 反斜杠不要丢掉了,否则就不是一个完整的访问路径,会抛出 404 错误。
nginx.conf 配置文件
# 修改成同一个用户组下面运行
user root admin;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
#log_format main '$remote_addr - $remote_user [$time_local] "$request" '
# '$status $body_bytes_sent "$http_referer" '
# '"$http_user_agent" "$http_x_forwarded_for"';
#access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
#gzip on;
# 代理转发的具体目标服务器
upstream myserver {
server localhost:9292;
server localhost:8000;
}
server {
listen 8080;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
# 注意配置一定是有个 / 开始和 / 结尾的,不然直接报错
# 当你访问 http://localhost:8080/ 注意这个 / 斜杠,表示如果这样访问就代理转发到 http://localhost:9292/ 地址去
# 所以当你访问本地服务器 http://localhost:8080/goods2 连接是,直接转发到了 http://localhost:9292/goods2
location / {
# 这里 root 访问哪个路径下面的资源
#root /Users/gongweiming/Pictures/pap.er;
# 自动开启目录
#autoindex on;
# 代理转发
# 注意配置一定是有个 / 开始和 / 结尾的,不然直接报错
proxy_pass http://myserver/;
}
# 注意配置一定是有个 / 开始和 / 结尾的,不然直接报错
# 当你通过 nginx 路径访问 http://localhost:8080/baidu/ 的时候直接代理转发到百度页面
location /baidu/ {
# 注意配置一定是有个 / 开始和 / 结尾的,不然直接报错
proxy_pass https://www.baidu.com/;
}
# 注意配置一定是有个 / 开始和 / 结尾的,不然直接报错
# proxy_pass 自动代理转发 URL 访问
# 原来不加 nginx 的访问路径是: http://localhost:9292/goods2 或者 http://localhost:8000/goods2
# 加了 ngxin 配置访问 http://localhost:8080/gwm/goods2
# nginx 自动转发转发到: http://myserver/goods2 ,其中 myserver 默认轮询选择
# localhost:9292 或者 localhost:8000 最后访问路劲还是变成 http://localhost:9292/goods2 或者 http://localhost:8000/goods2
# 注意这里有个坑,myserver/ 后面一定要有个 / 反斜杠,少了反斜杠,就相当于这个 URL http://localhost:9292goods2
# 这个连接肯定是不能访问的,所以一定要注意这个问题,一定要看最终拼接的 URL 路径是否正确。
location /gwm/ {
# 注意配置一定是有个 / 开始和 / 结尾的,不然直接报错
proxy_pass http://myserver/;
}
}
include servers/*;
}
然后通过命令重新启动 nginx,就可以看到效果,修改静态资源是不需要重启的,直接刷新页面就可以看见效果。
sudo nginx -s reload
然后访问如下:
也可以通过以下访问,因为 nginx.conf 中我们配置了两个方式可以代理转发到具体的服务器上(/ 和 /gwm/)