这里用Nginx主要是方便反向代理,配置简单,可以把域名
、端口
配置在一起。
我这里的需求配置是:
- gogs(git)
- 个人博客(halo)
- Jenkins(自动化流水线)
- 其他主页
- 其他h5游戏
基本配置
常规路径:
/etc/nginx/
下
/nginx.conf
为主配置
/conf.d/
下为其他一般会有个default.conf
主配置nginx.conf
说明:
user root; # 操作的用户 一般设置成root开放全部
worker_processes 1; # 工作进程数
error_log /var/log/nginx/error.log warn; # 错误日志
pid /var/run/nginx.pid;
events {
worker_connections 1024; # 一个工作进程最大连接
}
# 主配置开始
http {
include /etc/nginx/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 /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
gzip on; #开启压缩
#从这里开始配置自己的
#默认加载conf.d下全部的,这里我自己选择配置
#include /etc/nginx/conf.d/*.conf;
# 80端口设置
#include 的方式就是把[配置文件]的内容直接复制到此处
#所以有[结构]和[顺序]的影响
include /etc/nginx/conf.d/default.conf;
#include /etc/nginx/conf.d/game_server.conf;
include /etc/nginx/conf.d/halo_jw.conf;
include /etc/nginx/conf.d/gogs.conf;
include /etc/nginx/conf.d/jenkins.conf;
include /etc/nginx/conf.d/h5game.conf;# h5游戏
include /etc/nginx/conf.d/huihuihome.conf; # huihui 主页
}
default.conf
配置的是请求ip
时nginx
默认映射的内容。这里直接屏蔽了。
基本的配置结构如下
# 开始
server {
listen 80; # 监听端口
server_name aaa.bbb.com; # 要映射的域名
# 以location为开头的指的是定位
location / { #这个代表根路径(指aaa.bbb.com)
return 403;# 直接返回403,也可以是400、502...
}
location ^~ /dddd{
# 把请求(aaa.bbb.com/dddd)
# 直接对应到下边别名的位置
alias /usr/local/dddd/game/zodiac_card;
}
location = /50x.html{
# 精确匹配到/50x.html
# 直接返回root指向目标
root /usr/share/nginx/html;
}
#alias与root有区别,alias指向目录为绝对位置,root是相对位置,细节请度娘
}
##配置普通代理
有时我们只需要让域名
映射到,服务器对应的一个目标文件夹里的index.html
如下:
server {
listen 80;
server_name hh.hhhw.xyz;
location / {
root /usr/local/index/hhh;
}
}
通过不用url名字
来识别对应的指向:
server {
listen 80;
server_name game.bbb.com;
location ^~ /game1 {
alias /usr/local/ccc/game1;
}
location ^~ /game2 {
alias /usr/local/ccc/game2;
}
}
这里指解析game.bbb.com
后面如果是/game1
(game.bbb.com/game1)的话,全部绝对指向到目标文件夹。
这样可以把好几个不同的h5小游戏对应到对应的同一个域名上。
反向代理
服务器对外只暴露80
端口,用域名
来区分来反向代理到其他端口或文件路径。
比如我的博客反向代理配置halo_jw.conf
# 负载均衡
# 设置一个[名字](blog.hhh.xyz)
# 对应一个[服务地址](server 127.0.0.1:8090)
upstream blog.hhhw.xyz {
server 127.0.0.1:8090;
}
server {
listen 80;
server_name www.hhhw.xyz hhhw.xyz blog.hhhw.xyz;
location / {
# 代理
proxy_pass http://blog.hhhw.xyz;# 这里时负载均衡的名字
# 代理设置 请求头等
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
各种尝试结果还是403的原因
四、SELinux设置为开启状态(enabled)的原因。
4.1、查看当前selinux的状态。
- /usr/sbin/sestatus
4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。
-
vi /etc/selinux/config
-
#SELINUX=enforcing
-
SELINUX=disabled
4.3、重启生效。reboot。
评论