Files
2025-12-29 13:38:39 +08:00

1294 lines
51 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 172.25.101.113:
## nacos
/data/nacos
```
bash deploy.sh
```
## redis
```
systemctl start redis
```
## harbor
```
cd /data/harbor
docker-compose start
```
## minio
```
docker start minio
```
```new password for admin
uiPah2iok,e;giew
```
## tomcat
```
cd /usr/local/apache-tomcat-8.5.69
./bin/startup.sh
```
# 172.25.101.39
## wyn
```
docker start wyn
```
## pyresb
```
cd /opt/apps
bash deploy.sh
```
## nginx
```
cd /usr/local/nginx
./sbin/nginx
```
# mysql
172.25.1.45
```
root/Gzzn!37622
py_credit/Credit@gzzn2021
pyresbs/pyresb123@Admin
```
```old root
Gzzn!37622
```
```
ALTER USER 'pyresbs'@'%' IDENTIFIED BY 'pyresbs2024@Admin';
```
```
pyresbs2024@Admin
```
```
ALTER USER 'root'@'%' IDENTIFIED BY 'Gzzn37622@2024';
```
```
SET PASSWORD FOR 'root'@'%' = 'Gzzn37622@2024';
SET PASSWORD FOR 'root'@'localhost' = 'Gzzn37622@2024';
```
```
FLUSH PRIVILEGES;
```
new root:
```
Gzzn37622@2024
```
```
ALTER USER 'py_credit'@'%' IDENTIFIED BY 'Credit@gzzn2024';
```
```
Credit@gzzn2024
```
Harbor 公开镜像仓库未授权访问 CVE-2022-46463
限制公开访问,进入“项目设置”→“配置管理”→“项目仓库”中的“公开”,取消勾选。
证书:
```bash
#!/bin/bash
# 配置变量
CERT_PATH="/etc/letsencrypt"
DATA_PATH="/var/lib/letsencrypt"
LOG_PATH="/var/log/certbot"
WEBROOT_PATH="/var/www/certbot"
# 颜色输出函数
print_info() {
echo -e "\033[0;34m[INFO] $1\033[0m"
}
print_success() {
echo -e "\033[0;32m[SUCCESS] $1\033[0m"
}
print_error() {
echo -e "\033[0;31m[ERROR] $1\033[0m"
}
# 创建必要的目录
create_directories() {
local dirs=(
"$CERT_PATH"
"$DATA_PATH"
"$LOG_PATH"
"$WEBROOT_PATH"
)
for dir in "${dirs[@]}"; do
if [ ! -d "$dir" ]; then
print_info "Creating directory: $dir"
mkdir -p "$dir"
if [ $? -eq 0 ]; then
print_success "Created $dir successfully"
else
print_error "Failed to create $dir"
return 1
fi
else
print_info "Directory already exists: $dir"
fi
done
}
# 设置权限
set_permissions() {
print_info "Setting directory permissions..."
# 设置基本目录权限
chmod 755 "$CERT_PATH" "$DATA_PATH" "$LOG_PATH" "$WEBROOT_PATH"
# 如果证书目录已存在,设置证书文件权限
if [ -d "$CERT_PATH/live" ]; then
find "$CERT_PATH/live" -type d -exec chmod 755 {} \;
find "$CERT_PATH/live" -type f -exec chmod 644 {} \;
find "$CERT_PATH/live" -name "privkey.pem" -exec chmod 600 {} \;
fi
print_success "Permissions set successfully"
}
# 创建日志文件
create_logfile() {
local logfile="$LOG_PATH/certbot.log"
if [ ! -f "$logfile" ]; then
print_info "Creating log file: $logfile"
touch "$logfile"
chmod 644 "$logfile"
print_success "Created log file successfully"
else
print_info "Log file already exists: $logfile"
fi
}
# 主函数
main() {
print_info "Starting initialization..."
# 检查是否为 root 用户
if [ "$EUID" -ne 0 ]; then
print_error "Please run as root"
exit 1
fi
# 执行初始化步骤
create_directories || exit 1
set_permissions || exit 1
create_logfile || exit 1
print_success "Initialization completed successfully"
}
# 执行主函数
main
```
```bash
#!/bin/bash
# 域名配置
DOMAIN="pyqys.panyu.gd.cn"
EMAIL="zhiqiang@windy.me"
# 路径配置
CERT_PATH="/etc/letsencrypt"
DATA_PATH="/var/lib/letsencrypt"
LOG_PATH="/var/log/certbot"
WEBROOT_PATH="/var/www/certbot"
# 颜色输出函数
print_info() {
echo -e "\033[0;34m[INFO] $1\033[0m"
}
print_success() {
echo -e "\033[0;32m[SUCCESS] $1\033[0m"
}
print_error() {
echo -e "\033[0;31m[ERROR] $1\033[0m"
}
```
```bash
#!/bin/bash
# 配置
DOMAIN="httpyqys.panyu.gd.cn"
EMAIL="zhiqiang@windy.me"
CERT_PATH="/etc/letsencrypt"
DATA_PATH="/var/lib/letsencrypt"
# 申请证书
docker run -it --rm \
-v "${CERT_PATH}:${CERT_PATH}" \
-v "${DATA_PATH}:${DATA_PATH}" \
certbot/certbot certonly \
--manual \
--preferred-challenges dns \
--email "$EMAIL" \
-d "$DOMAIN" \
--agree-tos \
--no-eff-email
```
renew
```bash
DOMAIN="httpyqys.panyu.gd.cn"
EMAIL="zhiqiang@windy.me"
CERT_PATH="/etc/letsencrypt"
DATA_PATH="/var/lib/letsencrypt"
# 申请证书
docker run -it --rm \
-v "${CERT_PATH}:${CERT_PATH}" \
-v "${DATA_PATH}:${DATA_PATH}" \
certbot/certbot renew \
--manual \
--preferred-challenges dns \
--email "$EMAIL" \
-d "$DOMAIN" \
--agree-tos \
--no-eff-email
```
original:
```nginx.conf
worker_processes 2;
error_log /var/log/nginx/error.log error;
events {
worker_connections 1024;
}
#stream {
# server {
# listen 443;
# proxy_pass mysql_server;
# }
# upstream mysql_server{
# server 172.16.0.2:3306;
#
# }
#}
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 off;
server_names_hash_bucket_size 128;
client_max_body_size 100m; #ÖҪÊÕ¸öýÆËϴ«Î¼þ´ó¡
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 65;
send_timeout 10;
keepalive_requests 10;
#server {
## listen 80;
# server_name 172.25.101.39 ;
# rewrite ^/$ http://${server_name}/portal/ ;
#}
server {
listen 80;
server_name pyqys.panyu.gd.cn localhost 127.0.0.1 _;
# deny 172.25.244.179;
# deny 172.25.200.115;
# allow all;
#rewrite ^/$ https://${host}/portal/;
rewrite ^(.*)$ https://$host$1 permanent;
set $method $request_method;
if ($http_X_HTTP_Method_Override ~* 'DELETE') {
set $method DELETE;
}
proxy_method $method;
# if ( $remote_addr ~* "172\.25\.200\.115"){
# return 302 "https://www.baidu.com/";
# }
#location ~ / {
# if ( $query_string ~* ^\/pcidss\/report.* ){
# return 400;
# }
#}
# if ($content_length = 0) {
# return 403;
# }
location /kaAV6VwL8o.txt {
alias /usr/local/nginx/html/kaAV6VwL8o.txt;
}
location /gzznGIS {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/gzznGIS;
}
location /aPicture {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/aPicture;
}
location /portal/system/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/system/;
}
location =/pyresbLogin/config/ {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location =/pyresbLogin/user/unlock {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location =/pyresbLogin/user/ {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location =/pyresbLogin/user/find/ {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /pyresbLogin/css {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /pyresbLogin/img {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /pyresbLogin/js {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location =/pyresbLogin/pyresbLogin/ {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location =/pyresbLogin/pyresbLogin/config/ {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /portal/assets {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /portal/css {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /portal/fonts {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /portal/img {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /portal/js {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location =/report/ {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /report {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location =/report/captcha/ {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /wyn/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/;
}
location /Account/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/Account/;
}
location /LicenseRegister {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/LicenseRegister;
}
location /api/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/api/;
}
location /dashboard {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/dashboard;
}
location /mobile {
alias /usr/local/nginx/html/mobile;
index index.html index.htm;
}
# mobile
location /mobile/gzznGIS {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/gzznGIS/;
}
location /mobile/aPicture {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/aPicture/;
}
location /mobile/portal/system/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/system/;
}
location /mobile/pyresbLogin {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
rewrite ^/mobile/(.*) /$1 break;
proxy_pass http://172.25.101.39:8081/pyresbLogin/;
}
location /mobile/report {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/report;
}
location /mobile/display {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/;
}
location /mobile/portal {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/portal/;
}
location /mobile/system {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/system/;
}
location /mobile/doc {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/doc/;
}
location /mobile/wyn/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/;
}
location /mobile/Account/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/Account/;
}
location /mobile/LicenseRegister {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/LicenseRegister/;
}
location /mobile/api/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/api/;
}
location /mobile/dashboard {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/dashboard/;
}
location /dmp-client {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.113:8080/dmp-client;
}
location / {
if ( $request_uri !~* ^/(Model|display|report|portal|pyresbLogin|system|doc|wyn|system|gzznGIS|dashboard|aPicture|mobile|ibls-s
erver) ){
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
# location /nacos {
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header Host $host:$server_port;
# proxy_pass http://172.25.101.113:8848/nacos;
# }
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 443 ssl;
#listen [::]:443 ssl;
#ssl on;
server_name localhost pyqys.panyu.gd.cn 172.25.101.39 127.0.0.1 _;
# deny 172.25.244.179;
# deny 172.25.200.115;
# allow all;
rewrite ^/$ http://${host}/portal/;
ssl_certificate "/opt/soft/ca/_.panyu.gd.cn/Nginx_Other_Server/_.panyu.gd.cn_chain.crt";
ssl_certificate_key "/opt/soft/ca/_.panyu.gd.cn/_.panyu.gd.cn.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1.2 TLSv1.3;
set $method $request_method;
if ($http_X_HTTP_Method_Override ~* 'DELETE') {
set $method DELETE;
}
proxy_method $method;
#location ~ / {
# if ( $query_string ~* ^\/pcidss\/report.* ){
# return 400;
# }
#}
#if ($request_method !~* GET|POST) {
# return 403;
#}
location /kaAV6VwL8o.txt {
alias /usr/local/nginx/html/kaAV6VwL8o.txt;
}
#if ($content_length = 0) {
# return 403;
#}
location /gzznGIS {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/gzznGIS;
}
location /aPicture {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/aPicture;
}
location /portal/system/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/system/;
}
location =/pyresbLogin/user/ {
if ($request_method !~ ^(GET)$)
{
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
location /wyn/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/;
}
location /Account/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/Account/;
}
location /LicenseRegister {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/LicenseRegister;
}
location /api/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/api/;
}
location /dashboard {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/dashboard;
}
#location /mobile {
# alias /usr/local/nginx/html/mobile;
# index index.html index.htm;
#}
location /mobile {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8860/;
}
# mobile
location /mobile/gzznGIS {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/gzznGIS/;
}
location /mobile/aPicture {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/aPicture/;
}
location /mobile/portal/system/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/system/;
}
location /mobile/pyresbLogin {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/pyresbLogin/;
}
location /mobile/login {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/pyresbLogin/;
}
location /mobile/report {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/report;
}
location /mobile/display {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/;
}
location /mobile/portal {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/portal/;
}
location /mobile/system {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/system/;
}
location /mobile/doc {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/doc/;
}
location /mobile/wyn/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/;
}
location /mobile/Account/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/Account/;
}
location /mobile/LicenseRegister {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/LicenseRegister/;
}
location /mobile/api/ {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:51980/api/;
}
location /mobile/dashboard {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081/display/dashboard/;
}
location /dmp-client {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_pass http://172.25.101.113:8080/dmp-client;
}
location / {
if ( $request_uri !~* ^/(Model|display|report|portal|pyresbLogin|system|doc|wyn|system|gzznGIS|dashboard|aPicture|mobile|ibls-s
erver) ){
return 403;
}
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://172.25.101.39:8081;
}
# location /nacos {
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header Host $host:$server_port;
# proxy_pass http://172.25.101.113:8848/nacos;
# }
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
# server {
# listen 51980;
# server_name wyn;
# allow all;
# deny 172.25.244.179;
# deny 172.25.200.115;
# location /wyn {
# proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# proxy_set_header X-Real-IP $remote_addr;
# proxy_set_header Host $host:$server_port;
# proxy_pass http://172.25.1.46:51980;
# }
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# root html;
# }
# }
}
#stream {
# log_format basic '$remote_addr [$time_local] '
# '$protocol $status $bytes_sent $bytes_received '
# '$session_time';
# access_log logs/stream-access.log basic buffer=32k;
# server {
# allow all;
# deny 172.25.244.179;
# deny 172.25.200.115;
# listen 51980 ;
# proxy_pass 172.25.1.46:51980;
# }
#}
```
prod:
```nginx.conf
worker_processes 2;
error_log /var/log/nginx/error.log error;
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 off;
server_names_hash_bucket_size 128;
client_max_body_size 100m;
client_body_timeout 10;
client_header_timeout 10;
keepalive_timeout 65;
send_timeout 10;
keepalive_requests 10;
# === 新增:网关 upstream,指向 swarm 服务名(内网 8080 ===
upstream gw {
server pyresb_pyresb-gateway:8080;
}
server {
listen 80;
server_name pyqys.panyu.gd.cn localhost 127.0.0.1 _;
# 80 全量跳转到 https
rewrite ^(.*)$ https://$host$1 permanent;
set $method $request_method;
if ($http_X_HTTP_Method_Override ~* 'DELETE') { set $method DELETE; }
proxy_method $method;
location /kaAV6VwL8o.txt { alias /usr/share/nginx/html/kaAV6VwL8o.txt; }
# === 以下把 8081(宿主映射到后端 8080)全部改为网关 upstream ===
location /gzznGIS { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/gzznGIS; }
location /aPicture { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/aPicture; }
location /portal/system/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/system/; }
location =/pyresbLogin/config/ { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location =/pyresbLogin/user/unlock { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location =/pyresbLogin/user/ { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location =/pyresbLogin/user/find/ { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location /pyresbLogin/css { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location /pyresbLogin/img { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location /pyresbLogin/js { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location =/pyresbLogin/pyresbLogin/ { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location =/pyresbLogin/pyresbLogin/config/ { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location /portal/assets { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location /portal/css { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location /portal/fonts { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location /portal/img { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location /portal/js { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location =/report/ { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location /report { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
location =/report/captcha/ { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
# 仍在物理网/其它端口的目标保持不变
location /wyn/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/; }
location /Account/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/Account/; }
location /LicenseRegister { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/LicenseRegister; }
location /api/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/api/; }
location /dashboard { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/dashboard; }
location /mobile { alias /usr/share/nginx/html/mobile; index index.html index.htm; }
location /mobile/gzznGIS { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/gzznGIS/; }
location /mobile/aPicture { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/aPicture/; }
location /mobile/portal/system/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/system/; }
location /mobile/pyresbLogin { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; rewrite ^/mobile/(.*) /$1 break; proxy_pass http://gw/pyresbLogin/; }
location /mobile/report { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/report; }
location /mobile/display { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/; }
location /mobile/portal { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/portal/; }
location /mobile/system { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/system/; }
location /mobile/doc { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/doc/; }
location /mobile/wyn/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/; }
location /mobile/Account/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/Account/; }
location /mobile/LicenseRegister { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/LicenseRegister/; }
location /mobile/api/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/api/; }
location /mobile/dashboard { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/dashboard/; }
location /dmp-client { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_pass http://172.25.101.113:8080/dmp-client; }
location / {
if ( $request_uri !~* ^/(Model|display|report|portal|pyresbLogin|system|doc|wyn|system|gzznGIS|dashboard|aPicture|mobile|ibls-server) ){ return 403; }
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://gw;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html { root /usr/share/nginx/html; }
}
server {
listen 443 ssl;
server_name localhost pyqys.panyu.gd.cn 172.25.101.39 127.0.0.1 _;
rewrite ^/$ http://${host}/portal/;
ssl_certificate /etc/nginx/ssl/_.panyu.gd.cn_chain.crt;
ssl_certificate_key /etc/nginx/ssl/_.panyu.gd.cn.key;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1.2 TLSv1.3;
set $method $request_method;
if ($http_X_HTTP_Method_Override ~* 'DELETE') { set $method DELETE; }
proxy_method $method;
location /kaAV6VwL8o.txt { alias /usr/share/nginx/html/kaAV6VwL8o.txt; }
# 443 下同样改到 upstream gw
location /gzznGIS { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/gzznGIS; }
location /aPicture { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/aPicture; }
location /portal/system/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/system/; }
location =/pyresbLogin/user/ { if ($request_method !~ ^(GET)$) { return 403; } proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw; }
# 仍走物理网段的保留
location /wyn/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/; }
location /Account/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/Account/; }
location /LicenseRegister { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/LicenseRegister; }
location /api/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/api/; }
location /dashboard { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/dashboard; }
location /mobile { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:8860/; }
# 其余 mobile* 同上(gw 或物理网段,已在 80 里示范)
location /mobile/gzznGIS { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/gzznGIS/; }
location /mobile/aPicture { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/aPicture/; }
location /mobile/portal/system/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/system/; }
location /mobile/pyresbLogin { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/pyresbLogin/; }
location /mobile/login { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/pyresbLogin/; }
location /mobile/report { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/report; }
location /mobile/display { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/; }
location /mobile/portal { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/portal/; }
location /mobile/system { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/system/; }
location /mobile/doc { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/doc/; }
location /mobile/wyn/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/; }
location /mobile/Account/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/Account/; }
location /mobile/LicenseRegister { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/LicenseRegister/; }
location /mobile/api/ { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://172.25.101.39:51980/api/; }
location /mobile/dashboard { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host:$server_port; proxy_pass http://gw/display/dashboard/; }
location /dmp-client { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_pass http://172.25.101.113:8080/dmp-client; }
location / {
if ( $request_uri !~* ^/(Model|display|report|portal|pyresbLogin|system|doc|wyn|system|gzznGIS|dashboard|aPicture|mobile|ibls-server) ){ return 403; }
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host:$server_port;
proxy_pass http://gw;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html { root /usr/share/nginx/html; }
}
}
```
test:
```bash
docker run --rm -v "$PWD/nginx.conf:/etc/nginx/nginx.conf:ro" nginx -t
```
```stack.yml
version: "3.9"
configs:
nginx_conf:
file: ./nginx.conf
kaAV6VwL8o:
file: ./kaAV6VwL8o.txt
secrets:
wildcard_panyu_chain_crt:
file: /opt/soft/ca/_.panyu.gd.cn/Nginx_Other_Server/_.panyu.gd.cn_chain.crt
wildcard_panyu_key:
file: /opt/soft/ca/_.panyu.gd.cn/_.panyu.gd.cn.key
services:
nginx:
image: nginx
deploy:
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints:
- node.hostname == worker1
environment:
- TZ=Asia/Shanghai
volumes:
- ./logs:/var/log/nginx
ports:
- target: 80
published: 80
protocol: tcp
mode: ingress
- target: 443
published: 443
protocol: tcp
mode: ingress
configs:
- source: nginx_conf
target: /etc/nginx/nginx.conf
mode: 0444
- source: kaAV6VwL8o
target: /usr/share/nginx/html/kaAV6VwL8o.txt
mode: 0444
secrets:
- source: wildcard_panyu_chain_crt
target: /etc/nginx/ssl/_.panyu.gd.cn_chain.crt
mode: 0400
- source: wildcard_panyu_key
target: /etc/nginx/ssl/_.panyu.gd.cn.key
mode: 0400
healthcheck:
test: ["CMD", "nginx", "-t"]
interval: 30s
timeout: 5s
retries: 3
networks:
- pyresb # 关键:加入现有 overlay
networks:
pyresb:
external: true
name: pyresb_pyresb
```