Skip to main content

Nginx

目标

通过 Nginx 代理转发功能实现域名访问gitlab、nexus、sonarqube、jenkins。

安装配置

# 安装
yum install nginx
# 默认配置文件
/etc/nginx/nginx.conf
# 默认配置文件同级目录下的`conf.d`文件夹是自定义配置目录,需在 nginx.conf 中加入如下代码,如配置文件过长时,可再此目录下根据系统或业务分别创建配置文件,例如jenkins.conf
include /etc/nginx/nginx.conf/*.conf;

配置文件说明

server {
# 端口监听
  listen      443 ssl;;
  # 域名监听
server_name jenkins.hostname.com;
# 配置ssl证书 (证书需要单独购买,阿里云可购买,下载之后路径按照实际的路径书写)
ssl_certificate /ssl/ssl-name.com.pem;
ssl_certificate_key /ssl/ssl-name.com.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

  # 拦截请求 “/” 代表拦截所有请求
location / {
    # 代理服务器
proxy_pass          http://192.168.XX.XX:99XX;
    # 当应用服务器发生错误时尝试将请求转发给下一个应用服务器
proxy_next_upstream http_500 http_501 http_502 http_503 http_504;
    # 存储用户的真是IP地址
proxy_set_header    X-Real-Ip       $remote_addr;
# 当请求经过多个代理服务器时,X-Forwarded-For 会记录所有经过的IP地址
    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
# 转发时使用https协议
proxy_set_header X-Forwarded-Proto https;
  }
}

server {
listen 80;
server_name jenkins.hostname.com;
# 对http请求重定向成 https
rewrite ^/(.*) https://jenkins.hostname.com/$1 redirect;
}

相关命令

# 启动
nginx
# 停止
nginx -s stop
# 重启
nginx -s reload
# 检查配置文件 (通过此命令查看当前nginx的配置文件路径及是否有规范错误)
nginx -t