nginx 前端背后的 Artifactory pro 服务器
Artifactory pro server behind an nginx frontend
我正在尝试为我们的人工服务器设置 ssl。为此,我希望将 nginx 配置为反向代理。到目前为止,我已经完成了以下工作
-- 使用其 docker 图像安装 artifactory pro
docker run --name artifactory-registry -p 8081:8081 -v $ARTIFACTORY_HOME/data -v $ARTIFACTORY_HOME/logs -v $ARTIFACTORY_HOME/backup -v $ARTIFACTORY_HOME/etc jfrog-docker-reg2.bintray.io/jfrog/artifactory-pro:latest
-- 使用 sudo apt-get install nginx
安装 nginx
我可以在 http://localhost:8081/artifactory/webapp/#/home 访问网络应用程序
以及 $ARTIFACTORY_HOME/tomcat/conf/server.xml
下的配置文件
<Service name="Catalina">
<Connector port="8081"/>
<!-- This is the optional AJP connector -->
<Connector port="8019" protocol="AJP/1.3"/>
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps"/>
</Engine>
</Service>
从网上找到的资料来看,nginx作为反向代理需要进行以下配置
server {
listen 80;
server_name yourdomain.com;
root /etc/tomcat7/webapps/apple;
proxy_cache one;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
}
这个路径中的'server_name'和'root'应该是什么?另外,如何测试此设置的反向代理?
通常您会在其默认 HTTPs 端口 (443) 上配置 SSL。
查看 this page 使用 SSL 配置 nginx。
server_name
是您将连接到 nginx 的主机(例如从浏览器)。通常你会有一个来自你公司的 DNS 地址(比如 artifactory.mycompany.com
)并且你会使用它,但是如果一切都是本地的,你可以只输入 localhost
。
这是端口 443 上有效的 SSL 配置:
server {
listen 443;
server_name artifactory.mycompany.com;
access_log /var/log/nginx/artifactory.access.log;
error_log /var/log/nginx/artifactory.error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/artifactory.crt;
ssl_certificate_key /etc/nginx/ssl/artifactory.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
location /artifactory {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8081;
proxy_pass_header Server;
proxy_read_timeout 90;
}
}
只需将您的 SSL 证书放在配置的位置即可。
正在连接到 https://artifactory.mycompany.com from your browser should now work (or https://localhost(如果您将其用于 server_name
)。
我正在尝试为我们的人工服务器设置 ssl。为此,我希望将 nginx 配置为反向代理。到目前为止,我已经完成了以下工作
-- 使用其 docker 图像安装 artifactory pro
docker run --name artifactory-registry -p 8081:8081 -v $ARTIFACTORY_HOME/data -v $ARTIFACTORY_HOME/logs -v $ARTIFACTORY_HOME/backup -v $ARTIFACTORY_HOME/etc jfrog-docker-reg2.bintray.io/jfrog/artifactory-pro:latest
-- 使用 sudo apt-get install nginx
我可以在 http://localhost:8081/artifactory/webapp/#/home 访问网络应用程序 以及 $ARTIFACTORY_HOME/tomcat/conf/server.xml
下的配置文件<Service name="Catalina">
<Connector port="8081"/>
<!-- This is the optional AJP connector -->
<Connector port="8019" protocol="AJP/1.3"/>
<Engine name="Catalina" defaultHost="localhost">
<Host name="localhost" appBase="webapps"/>
</Engine>
</Service>
从网上找到的资料来看,nginx作为反向代理需要进行以下配置
server {
listen 80;
server_name yourdomain.com;
root /etc/tomcat7/webapps/apple;
proxy_cache one;
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
}
这个路径中的'server_name'和'root'应该是什么?另外,如何测试此设置的反向代理?
通常您会在其默认 HTTPs 端口 (443) 上配置 SSL。 查看 this page 使用 SSL 配置 nginx。
server_name
是您将连接到 nginx 的主机(例如从浏览器)。通常你会有一个来自你公司的 DNS 地址(比如 artifactory.mycompany.com
)并且你会使用它,但是如果一切都是本地的,你可以只输入 localhost
。
这是端口 443 上有效的 SSL 配置:
server {
listen 443;
server_name artifactory.mycompany.com;
access_log /var/log/nginx/artifactory.access.log;
error_log /var/log/nginx/artifactory.error.log;
ssl on;
ssl_certificate /etc/nginx/ssl/artifactory.crt;
ssl_certificate_key /etc/nginx/ssl/artifactory.key;
ssl_session_timeout 5m;
ssl_protocols SSLv3 TLSv1;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
ssl_prefer_server_ciphers on;
location /artifactory {
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Ssl on;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://localhost:8081;
proxy_pass_header Server;
proxy_read_timeout 90;
}
}
只需将您的 SSL 证书放在配置的位置即可。
正在连接到 https://artifactory.mycompany.com from your browser should now work (or https://localhost(如果您将其用于 server_name
)。